Enaki
Escuela de formación docente intercultural bilingüe en la Amazonía peruana
Todo el ecosistema web de una institución de formación docente: un sitio público con carreras, cursos y novedades, una API para contacto y reclamos, y un aula virtual en Moodle, sobre infraestructura que monté y mantengo.
- Rol
- Diseño, frontend, backend, infraestructura y operación
- Año
- 2026
- Estado
- En producción· enaki.edu.pe

De dónde partimos
Antes
- Sitio y dominio en un hosting compartido de Punto.pe
- Nada delante del servidor: sin CDN ni filtrado de DDoS o bots
- Sin aula virtual ni backend propio
Ahora
- DNS y proxy en Cloudflare: CDN, mitigación de DDoS, protección contra bots y HTTPS forzado con TLS 1.2+
- Frontend estático en Hostinger; API y Moodle en una VPS endurecida con Docker
- El servidor solo acepta tráfico de Cloudflare: su IP nunca queda expuesta
- Respaldos diarios cifrados fuera del servidor
Arquitectura
El camino de una petición, desde el navegador hasta la base de datos.
- 01
Hostinger · enaki.edu.pe
El sitio que carga el visitante: archivos estáticos, sin servidor de aplicaciones que atacar. Cuando alguien envía un formulario o entra al aula virtual, la petición sale hacia la VPS.
- 02
Cloudflare
DNS, CDN y proxy delante de todo. Absorbe ataques DDoS, filtra bots y fuerza HTTPS antes de que una petición llegue a la VPS.
- 03
Caddy en la VPS
La única puerta de entrada a la VPS. Solo atiende rangos de IP de Cloudflare, con certificado Origin de Cloudflare (Full strict) y cabeceras de seguridad.
- 04
FastAPI · Moodle
api.enaki.edu.pe atiende contacto y reclamos; aula.enaki.edu.pe es el aula virtual. Cada uno en su propio contenedor.
- 05
PostgreSQL · MariaDB
En redes Docker privadas: sin puerto publicado ni salida a internet. Solo su propia aplicación llega a ellas.
Seguridad
Origen oculto detrás de Cloudflare
Un firewall en la cadena DOCKER-USER (Docker se salta UFW) y el propio Caddy cortan cualquier conexión que no venga de Cloudflare. Dos capas, por si una falla.
Rate limiting por IP real
Los límites usan la IP real del visitante (CF-Connecting-IP), no la del proxy: 5 mensajes por minuto en contacto y 3 reclamos cada 10 minutos.
Validación estricta
Pydantic valida cada campo con formatos peruanos (DNI, celular) y el envío de correos rechaza la inyección de cabeceras.
Superficie mínima
La API solo acepta POST desde los dominios del sitio, oculta su documentación en producción y no anuncia versiones del servidor. Sus respuestas no se pueden incrustar.
Acceso al servidor blindado
Sin login de root ni contraseñas: solo llaves SSH Ed25519, un usuario administrador con mínimos privilegios y un firewall que niega todo por defecto.
Operación
Respaldos diarios cifrados
La base y los archivos de Moodle más el PostgreSQL del sitio, cifrados con rclone crypt y subidos a Google Drive con 30 días de retención. Los pasos para restaurar están documentados junto al script.
Privacidad programada
Los mensajes de contacto se borran solos a los dos años, tal como promete la política de privacidad según la Ley de Protección de Datos Personales.
Despliegues reproducibles
Un solo Docker Compose describe todo el servidor, con versiones de imagen fijadas, health checks, logs rotados y migraciones al arrancar. La CI compila el sitio y prueba la API contra un PostgreSQL real.
Lo que construí
Aula virtual en Moodle
Imagen propia de Moodle 5 sobre PHP 8.4: raíz movida a /public como exige Moodle, las extensiones PHP que pide y su cron corriendo cada minuto.
Libro de Reclamaciones virtual
El libro que exige la ley peruana, con numeración correlativa anual protegida por un bloqueo de fila y la copia obligatoria enviada al consumidor.
Sitio público
Carreras, plan de estudios de 10 ciclos, cursos y novedades, con fuentes alojadas en el propio sitio y contenido en archivos de datos versionados en lugar de un CMS.
Correo institucional
Correo en el dominio enaki.edu.pe con SPF, DKIM y DMARC, para que los mensajes del sitio lleguen a la bandeja de entrada y no a spam.
Stack
¿Tu organización necesita un sitio así?
Diseño, construyo y opero sitios con su propio backend, seguridad e infraestructura.
Servicio relacionado: Páginas web y aplicaciones
Contáctame