Docker + Nginx + Flask – Plantilla de Producción
Este proyecto es una plantilla lista para producción que integra Flask (Python), Nginx y Docker para desplegar aplicaciones web de manera eficiente, segura y escalable.
Arquitectura

Herramientas utilizadas
- Docker & Docker Compose
- Flask (Python)
- Nginx
- SQLite (por defecto, fácilmente reemplazable)
- Certbot (opcional, para HTTPS)
- GitHub Actions (CI/CD opcional)
Autor: Esteban Martins
Code:
github.com/hokuto06/nginx-flask-prod
Características principales
- Despliegue rápido y reproducible de apps Flask en producción.
- Configuración lista para HTTPS con Certbot (Let’s Encrypt).
- Proxy reverso con Nginx para servir estáticos y balancear tráfico.
- Separación de servicios en contenedores: nginx, flask, certbot.
- Variables de entorno para configuración flexible.
- Soporte para CI/CD con GitHub Actions.
- Fácil extensión para bases de datos externas (PostgreSQL, MySQL, etc).
Cómo usar
- Clona el repositorio:
git clone https://github.com/hokuto06/nginx-flask-prod.git
- Configura tus variables de entorno en el archivo
.env
. - Construye y levanta los servicios:
docker compose up --build
- Accede a la app Flask en
http://localhost
(o el dominio configurado). - Para producción, configura tus certificados SSL y variables de entorno reales.
Estructura del proyecto
nginx-flask-prod/
├── app/ # Código fuente de la app Flask
├── nginx/ # Configuración de Nginx
├── docker-compose.yml # Orquestación de servicios
├── Dockerfile # Imagen de la app Flask
├── .env.example # Variables de entorno de ejemplo
├── certbot/ # Scripts para certificados SSL
└── README.md
Resumen del flujo
Cliente → Nginx (SSL, estáticos, proxy) → Flask App → (DB opcional)
- Nginx recibe las peticiones y sirve archivos estáticos o las reenvía a Flask.
- Flask procesa la lógica de negocio y responde.
- Certbot puede gestionar certificados SSL automáticamente.
- Todo el stack es portable y reproducible vía Docker Compose.
Esta plantilla te permite desplegar aplicaciones Flask en producción de manera profesional, segura y escalable, con mínima configuración manual.