Ir al contenido

Despliegue

Ventana de terminal
docker compose build
docker compose up -d

Servicios levantados:

  • PostgreSQL: serconsa-postgres
  • Redis: serconsa-redis
  • Backend: serconsa-backend → http://localhost:18345
  • Frontend: serconsa-frontend → http://localhost:5176

Health checks:

  • Backend: GET http://localhost:18345/api/v1/health
  • Frontend: wget http://127.0.0.1:80

Copiar backend/.env.example a backend/.env y rellenar:

Ventana de terminal
cp backend/.env.example backend/.env

Variables mínimas:

Variable Descripción Ejemplo
SECRET_KEY Clave JWT change-me
DATABASE_URL PostgreSQL async postgresql+asyncpg://serconsa:serconsa_secret@postgres:5432/serconsa
REDIS_URL Redis redis://redis:6379/0
CORS_ORIGINS Orígenes frontend http://localhost:5176,https://serconsa.ovlicuo.com
DEBUG Modo debug true
Ventana de terminal
docker compose -f docker-compose.prod.yml up -d

En producción Plesk actúa como proxy inverso. El contenedor Nginx solo se usa en entornos sin Plesk:

Ventana de terminal
docker compose -f docker-compose.prod.yml --profile production up -d nginx
  • PostgreSQL 16 alpine con health check.
  • Redis 7 con AOF y maxmemory-policy allkeys-lru.
  • Backend FastAPI con hot-reload (--reload).
  • Frontend servido por Nginx.
  • Volúmenes: postgres_data, redis_data, files_data.
  • Imágenes del registry de GitLab.
  • Sin volúmenes de código fuente montados.
  • Nginx con perfil production opcional.
Ventana de terminal
docker exec serconsa-postgres pg_dump -U serconsa serconsa > backup_$(date +%Y%m%d).sql
Ventana de terminal
docker exec -i serconsa-postgres psql -U serconsa serconsa < backup_20260101.sql
Ventana de terminal
0 2 * * * docker exec serconsa-postgres pg_dump -U serconsa serconsa > /root/backups/serconsa_$(date +\%Y\%m\%d).sql
Ventana de terminal
# Estado de servicios
docker compose ps
# Logs
docker compose logs -f backend
docker compose logs -f --tail=100

El módulo de logs del sistema registra actividad en la tabla system_logs.

Entorno URL Servidor
Desarrollo https://serconsa.ovlicuo.com Local
Producción https://serconsa.dlmapp.net 146.59.171.101

El pipeline de .gitlab-ci.yml se ejecuta solo en main:

  1. Lint de backend y frontend.
  2. Build de imágenes Docker.
  3. Deploy vía SSH al servidor de producción.

Véase también Flujo git.