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

Arquitectura Docker Nginx Flask

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

  1. Clona el repositorio:
    git clone https://github.com/hokuto06/nginx-flask-prod.git
  2. Configura tus variables de entorno en el archivo .env.
  3. Construye y levanta los servicios:
    docker compose up --build
  4. Accede a la app Flask en http://localhost (o el dominio configurado).
  5. 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.

A lo largo de mi carrera he aprendido que la tecnología es una herramienta poderosa para resolver problemas y mejorar la vida de las personas.
Creo en la importancia de la ética en la tecnología y en el desarrollo de soluciones que sean accesibles y sostenibles.
Creo en la educación continua y en el aprendizaje compartido
Creo en la empatía y también creo en la colaboración.
Creo en la innovación responsable y en el poder de la comunidad para impulsar cambios.

Esteban Martins