# 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):** ```powershell .\build-and-push.ps1 ``` **Linux/Mac:** ```bash chmod +x build-and-push.sh ./build-and-push.sh ``` ### 2. Configurar Producci贸n Edita `.env.production` con tus valores: ```env 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: ```bash # 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 ```bash # Crear usuarios iniciales docker exec -it syntria-backend-prod python init_db.py ``` ## 馃敡 Mantenimiento ### Ver Logs ```bash # 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 ```bash # 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 ```bash # 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 - **Frontend:** http://tu-servidor - **Backend API:** http://tu-servidor:8000 - **Docs API:** http://tu-servidor:8000/docs ## 馃敀 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 ```bash # 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 ```bash # 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 ```bash # 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