SubastApp - Guía de Solución de Problemas
🔧 Problemas Comunes y Soluciones
1. Problemas de Conectividad
Error: "No se puede conectar al servidor"
Síntomas: La aplicación no responde o muestra errores de conexión
Solución:
- Verificar que el servidor esté funcionando:
ssh root@159.223.6.121 "docker ps"
- Verificar logs del backend:
ssh root@159.223.6.121 "docker logs subastapp-backend --tail 20"
- Reiniciar servicios:
ssh root@159.223.6.121 "cd /home/subastapp/SubastApp && docker-compose restart"
Error: "CORS policy"
Síntomas: Errores de CORS en la consola del navegador
Solución:
- Verificar configuración CORS en
backend/src/server.ts
- Agregar IP del cliente a la lista de orígenes permitidos
- Reiniciar el backend después de cambios
2. Problemas de Base de Datos
Error: "Database connection failed"
Síntomas: Errores de conexión a MySQL
Solución:
- Verificar que MySQL esté ejecutándose:
ssh root@159.223.6.121 "docker ps | grep mysql"
- Verificar logs de MySQL:
ssh root@159.223.6.121 "docker logs subasta_app-mysql --tail 20"
- Verificar credenciales en
docker-compose.yml
- Reiniciar MySQL si es necesario:
ssh root@159.223.6.121 "docker restart subasta_app-mysql"
Error: "Table doesn't exist"
Síntomas: Errores de tablas no encontradas
Solución:
- Verificar que las migraciones se ejecutaron:
ssh root@159.223.6.121 "docker exec subastapp-backend npx prisma migrate status"
- Ejecutar migraciones:
ssh root@159.223.6.121 "docker exec subastapp-backend npx prisma migrate deploy"
- Verificar esquema de base de datos:
ssh root@159.223.6.121 "docker exec subasta_app-mysql mysql -u subasta_app_user -psubasta_app_password subasta_app -e 'SHOW TABLES;'"
3. Problemas de Autenticación
Error: "Usuario no registrado"
Síntomas: No se puede acceder con credenciales válidas
Solución:
- Verificar usuarios en la base de datos:
ssh root@159.223.6.121 "docker exec subasta_app-mysql mysql -u subasta_app_user -psubasta_app_password subasta_app -e 'SELECT * FROM Usuario;'"
- Crear usuario de prueba si es necesario
- Verificar logs de autenticación en el backend
4. Problemas de Build y Dependencias
Error: "npm ci failed"
Síntomas: Errores durante la instalación de dependencias
Solución:
- Verificar archivos
package.json
no corruptos - Usar
--legacy-peer-deps
si hay conflictos - Limpiar cache de npm:
npm cache clean --force
- Reconstruir imágenes Docker:
docker-compose build --no-cache
Error: "TypeScript compilation failed"
Síntomas: Errores de compilación TypeScript
Solución:
- Verificar configuración de TypeScript en
tsconfig.json
- Actualizar dependencias de TypeScript si es necesario
- Usar
|| true
en Dockerfile para bypass temporal - Verificar tipos en el código fuente
5. Problemas de Docker
Error: "Container failed to start"
Síntomas: Contenedores no se inician correctamente
Solución:
- Verificar logs del contenedor:
docker logs [container-name]
- Verificar recursos del sistema:
docker system df
- Limpiar recursos no utilizados:
docker system prune -a
- Reiniciar Docker daemon si es necesario
Error: "Port already in use"
Síntomas: Puertos ocupados por otros servicios
Solución:
- Verificar puertos en uso:
netstat -tulpn | grep :80
- Detener servicios conflictivos
- Cambiar puertos en
docker-compose.yml
si es necesario
6. Problemas de Nginx
Error: "502 Bad Gateway"
Síntomas: Nginx no puede conectar con el backend
Solución:
- Verificar que el backend esté ejecutándose
- Verificar configuración de proxy en
nginx.conf
- Verificar logs de Nginx:
docker logs subastapp-nginx
- Reiniciar Nginx:
docker restart subastapp-nginx
7. Problemas de Documentación Web
Error: "Documentación no se muestra correctamente"
Síntomas: Archivos markdown se muestran como texto plano
Solución:
- Verificar que los archivos HTML estén en el servidor
- Verificar configuración de Nginx para documentación
- Reiniciar Nginx después de cambios
- Usar archivos HTML renderizados en lugar de markdown
🔍 Comandos de Diagnóstico Útiles
Verificar Estado del Sistema
# Estado de contenedores
docker ps -a
# Logs de todos los servicios
docker-compose logs
# Uso de recursos
docker stats
# Espacio en disco
df -h
# Memoria disponible
free -h
Verificar Conectividad
# Test de conectividad al servidor
ping 159.223.6.121
# Test de puertos
telnet 159.223.6.121 80
telnet 159.223.6.121 443
# Test de DNS
nslookup 159.223.6.121
Verificar Base de Datos
# Conectar a MySQL
docker exec -it subasta_app-mysql mysql -u subasta_app_user -psubasta_app_password subasta_app
# Verificar tablas
SHOW TABLES;
# Verificar datos
SELECT * FROM Usuario LIMIT 5;
SELECT * FROM Item LIMIT 5;
📞 Contactos de Soporte
Equipo Técnico
- Ingeniero de Sistemas - Responsable de infraestructura
- Daniel Otón - Desarrollador
- Cursor AI - Soporte técnico
📋 Checklist de Verificación Rápida
Componente | Comando de Verificación | Estado Esperado |
---|---|---|
Docker | docker ps |
3 contenedores ejecutándose |
Backend | curl http://159.223.6.121/api/health |
Respuesta JSON |
Frontend | curl http://159.223.6.121/ |
HTML de la aplicación |
MySQL | docker exec subasta_app-mysql mysql -e "SELECT 1;" |
Resultado exitoso |
Documentación | curl http://159.223.6.121/documentacion |
HTML de documentación |
Conclusión
Esta guía cubre los problemas más comunes encontrados durante el despliegue. Para problemas específicos no cubiertos aquí, consultar los logs detallados y contactar al equipo técnico.