Despliegue y ejecucion - JuanVargas0325/Prueba GitHub Wiki

Despliegue y ejecución (Entrega 1, local)

Grupo N° completar · Integrantes

Cómo levantar y probar el sistema de forma reproducible. La Entrega 1 no exige nube: todo corre con Docker Compose sobre imágenes Linux Debian 12 (bookworm).

Requisitos

  • Docker Desktop (o Docker Engine) con Docker Compose v2.
  • No hace falta instalar Go: la compilación ocurre dentro del Dockerfile.

Servicios

Servicio Imagen Puerto expuesto Función
nginx nginx:1.27-bookworm 8080 → 80 Proxy inverso: única entrada al sistema
api backend/Dockerfile (destino api) interno 8080 API REST en Go + Gin
worker backend/Dockerfile (destino worker) — Consume la cola Asynq y genera los reportes
postgres postgres:16-bookworm interno 5432 Base de datos
redis redis:7-bookworm interno 6379 Broker de la cola

Volúmenes: datos-postgres (base de datos), datos-redis (cola) y archivos (adjuntos y PDF, compartido por la API y el worker).

Pasos

# 1. Configuración (las credenciales nunca se versionan)
cp .env.example .env
#    Editar como mínimo JWT_SECRETO (32+ caracteres), POSTGRES_PASSWORD y ADMIN_PASSWORD.

# 2. Construir y levantar
docker compose up --build -d --wait

# 3. Verificar
curl http://localhost:8080/salud

# 4. (Opcional) datos de demostración
docker compose exec -T postgres psql -U seguimiento -d seguimiento < scripts/datos_demo.sql

# 5. Recorrido completo con Newman
docker run --rm -v "$(pwd)/postman:/etc/newman" postman/newman:ubuntu run seguimiento.postman_collection.json \
  --env-var "baseUrl=http://host.docker.internal:8080" --env-var "adminPassword=<ADMIN_PASSWORD>"

Al arrancar, la API aplica las migraciones y crea el administrador inicial (ADMIN_CORREO, ADMIN_PASSWORD).

Usuarios de demostración (contraseña Demo123*): [email protected], [email protected], [email protected], [email protected].

Modelo de IA

Se elige solo con el .env (LLM_PROVEEDOR = simulado, openai o anthropic, más LLM_URL_BASE, LLM_API_KEY y LLM_MODELO). Después de cambiarlo: docker compose up -d worker. La tabla completa de proveedores está en el README.md.

Comandos útiles

Comando Para qué
docker compose logs -f api worker Ver logs
docker compose --profile monitoreo up -d Panel de la cola (Asynqmon) en http://localhost:8081
docker compose down Detener conservando los datos
docker compose down -v Detener y borrar datos y archivos
make pruebas / make pruebas-integracion / make lint / make e2e Pruebas y calidad (Git Bash, WSL, Linux o macOS)

Evidencia en el pipeline

La etapa "Despliegue con Docker Compose y pruebas de punta a punta" de GitHub Actions repite estos pasos en cada push (construye las imágenes, levanta el sistema y ejecuta la colección de Postman), así que el despliegue local queda verificado de forma automática.