4.0 KiB
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
- Frontend: http://tu-servidor
- Backend API: http://tu-servidor:8000
- Docs API: http://tu-servidor:8000/docs
🔒 Seguridad
Recomendaciones:
-
Cambiar passwords por defecto
- PostgreSQL password
- SECRET_KEY (mínimo 32 caracteres aleatorios)
-
Usar HTTPS
- Configurar certificado SSL
- Usar reverse proxy (Nginx/Traefik)
-
Firewall
- Abrir solo puertos necesarios (80, 443)
- Cerrar puerto 5432 al público
-
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:latestusuario/syntria-frontend:latest
⚙️ Variables de Entorno
Backend
DATABASE_URL- PostgreSQL connection stringSECRET_KEY- JWT secret key (32+ chars)OPENAI_API_KEY- OpenAI API key (opcional)ENVIRONMENT-productionALLOWED_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_ORIGINSen.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
- Hacer cambios en código
- Ejecutar
build-and-push.ps1con nueva versión - En servidor:
docker-compose pull && docker-compose up -d
📞 Soporte
Para issues y preguntas: GitHub Issues