Plataforma backend containerizada con Docker, PostgreSQL y CI/CD automatizado con GitHub Actions
Backend moderno listo para producción ejecutándose en contenedores Docker con FastAPI y PostgreSQL, incluyendo pipeline CI automatizado para validación de builds y healthchecks.
En resumen: Base sólida DevOps para construir, testear y escalar aplicaciones containerizadas.
Cliente → FastAPI (Docker) → PostgreSQL (Docker)
Componentes principales:
- ✅ FastAPI backend en Python (API REST)
- ✅ PostgreSQL 15 base de datos persistente
- ✅ Docker Compose orquestación multi-servicio
- ✅ GitHub Actions pipeline CI automatizado
- ✅ Healthcheck validación automática de servicio
- Docker 24.x+
- Docker Compose
- Git# 1. Clonar repositorio
git clone https://github.com/Liquenson/docker-devops-platform.git
cd docker-devops-platform
# 2. Levantar entorno
docker compose -f docker/docker-compose.dev.yml up --build -d
# 3. Verificar
curl http://localhost:8000/health| Componente | Versión | Uso |
|---|---|---|
| Python | 3.12 | Lenguaje |
| FastAPI | 0.115 | API REST |
| Uvicorn | 0.30 | Servidor ASGI |
| Componente | Uso |
|---|---|
| Docker | Contenedorización |
| Docker Compose | Orquestación |
| PostgreSQL | Base de datos |
| Herramienta | Uso |
|---|---|
| GitHub Actions | CI Pipeline |
| Docker Build | Build automático |
| Healthcheck | Validación |
docker-devops-platform/
├── app/ # Aplicación FastAPI
│ ├── Dockerfile # Imagen multi-stage
│ ├── requirements.txt
│ └── src/
│ └── main.py # API (healthcheck incluido)
│
├── docker/ # Orquestación
│ └── docker-compose.dev.yml
│
├── nginx/ # Reverse proxy (fase futura)
│ ├── Dockerfile
│ └── nginx.conf
│
├── .github/workflows/
│ └── ci.yml # Pipeline CI
│
├── .env.example
└── README.md
Cada push a main ejecuta automáticamente:
GitHub Push ↓ ┌─────────────────────────────┐ │ 1. Build Docker │ │ 2. Run Container │ │ 3. Health Check (/health) │ │ 4. Stop Container │ └─────────────────────────────┘
Validaciones:
- ✅ Build exitoso
- ✅ Contenedor funcional
- ✅ Endpoint
/healthresponde - ❌ Fallo automático si algo no funciona
| Endpoint | Método | Descripción |
|---|---|---|
/ |
GET | Mensaje de estado |
/health |
GET | Verificación de API + DB |
{
"status": "ok",
"db": "connected"
}- ✅ FastAPI con estructura limpia
- ✅ Healthcheck integrado
- ✅ Manejo de errores en DB
- ✅ Retry automático de conexión
- ✅ Multi-stage build
- ✅ Usuario no-root
- ✅ Imagen optimizada
- ✅ Separación de servicios
- ✅ CI automatizado
- ✅ Testing real (no mock)
- ✅ Versionado de dependencias
- ✅ Arquitectura reproducible
- ✅ Backend funcional
- ✅ Base de datos conectada
- ✅ Docker multi-servicio
- ✅ Pipeline CI activo
- 🚧 Reverse proxy (NGINX)
- 🚧 Docker Registry (Docker Hub / GHCR)
- 🚧 CI/CD completo (build + push)
- 🚧 Despliegue en Kubernetes
- 🚧 Observabilidad (Prometheus + Grafana)
# Crear entorno reproducible con Docker
# Implementar CI con GitHub Actions
# Validar aplicaciones automáticamente# API lista para producción
# Base de datos integrada
# Entorno consistente# Docker desde cero
# CI/CD real
# Arquitectura modernaLiquenson Ruben Alexis DevOps Engineer | Docker | Kubernetes | AWS
MIT License
- https://github.com/Liquenson/aws-terraform-devops-lab
- https://github.com/Liquenson/linux-fleet-manager
⭐ Si te aporta valor, dale una estrella al repo