Files
checklist/DEPLOYMENT.md
2025-11-19 01:09:25 -03:00

4.0 KiB

Syntria - Despliegue en Producción

📋 Requisitos Previos

  • Docker y Docker Compose instalados
  • Cuenta en Docker Hub
  • Servidor Linux/Windows con puertos 80, 8000 y 5432 disponibles

🚀 Despliegue Rápido

1. Construir y Publicar Imágenes

Windows (PowerShell):

.\build-and-push.ps1

Linux/Mac:

chmod +x build-and-push.sh
./build-and-push.sh

2. Configurar Producción

Edita .env.production con tus valores:

POSTGRES_PASSWORD=tu_password_seguro_aqui
SECRET_KEY=clave_secreta_minimo_32_caracteres
DOCKER_USERNAME=tu_usuario_dockerhub
API_URL=http://tu-dominio.com:8000
ALLOWED_ORIGINS=http://tu-dominio.com,https://tu-dominio.com

3. Desplegar en Servidor

En tu servidor de producción:

# Clonar o subir archivos necesarios
# - docker-compose.prod.yml
# - .env.production
# - init-db.sh

# Desplegar
docker-compose -f docker-compose.prod.yml --env-file .env.production up -d

# Verificar estado
docker-compose -f docker-compose.prod.yml ps

# Ver logs
docker-compose -f docker-compose.prod.yml logs -f

4. Inicializar Base de Datos

# Crear usuarios iniciales
docker exec -it syntria-backend-prod python init_db.py

🔧 Mantenimiento

Ver Logs

# Todos los servicios
docker-compose -f docker-compose.prod.yml logs -f

# Solo backend
docker-compose -f docker-compose.prod.yml logs -f backend

# Solo frontend
docker-compose -f docker-compose.prod.yml logs -f frontend

Actualizar Imágenes

# Pull nuevas versiones
docker-compose -f docker-compose.prod.yml pull

# Reiniciar servicios
docker-compose -f docker-compose.prod.yml up -d

Backup Base de Datos

# Crear backup
docker exec syntria-db-prod pg_dump -U syntria_user syntria_db > backup_$(date +%Y%m%d).sql

# Restaurar backup
docker exec -i syntria-db-prod psql -U syntria_user syntria_db < backup_20241118.sql

🌐 Acceso

🔒 Seguridad

Recomendaciones:

  1. Cambiar passwords por defecto

    • PostgreSQL password
    • SECRET_KEY (mínimo 32 caracteres aleatorios)
  2. Usar HTTPS

    • Configurar certificado SSL
    • Usar reverse proxy (Nginx/Traefik)
  3. Firewall

    • Abrir solo puertos necesarios (80, 443)
    • Cerrar puerto 5432 al público
  4. Backups automáticos

    • Configurar cron job para backups diarios

📊 Monitoreo

Health Checks

# Backend
curl http://localhost:8000/health

# Frontend
curl http://localhost

# Database
docker exec syntria-db-prod pg_isready -U syntria_user

🐳 Imágenes Docker Hub

Las imágenes están disponibles en:

  • usuario/syntria-backend:latest
  • usuario/syntria-frontend:latest

⚙️ Variables de Entorno

Backend

  • DATABASE_URL - PostgreSQL connection string
  • SECRET_KEY - JWT secret key (32+ chars)
  • OPENAI_API_KEY - OpenAI API key (opcional)
  • ENVIRONMENT - production
  • ALLOWED_ORIGINS - CORS origins

Frontend

  • VITE_API_URL - Backend API URL

🆘 Troubleshooting

Error: Connection refused

# Verificar que todos los servicios estén corriendo
docker-compose -f docker-compose.prod.yml ps

# Verificar logs
docker-compose -f docker-compose.prod.yml logs backend

Error: Database connection

# Verificar variables de entorno
docker exec syntria-backend-prod env | grep DATABASE_URL

# Verificar que postgres esté healthy
docker inspect syntria-db-prod | grep Health

Error: CORS

  • Actualizar ALLOWED_ORIGINS en .env.production
  • Incluir http:// y https:// si usas ambos

📝 Usuarios por Defecto

Después de init_db.py:

  • Admin: admin / admin123
  • Mecánico: mechanic / mechanic123

⚠️ Cambiar passwords en producción

🔄 Actualización de Versiones

  1. Hacer cambios en código
  2. Ejecutar build-and-push.ps1 con nueva versión
  3. En servidor: docker-compose pull && docker-compose up -d

📞 Soporte

Para issues y preguntas: GitHub Issues