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:
  1. Verificar que el servidor esté funcionando: ssh root@159.223.6.121 "docker ps"
  2. Verificar logs del backend: ssh root@159.223.6.121 "docker logs subastapp-backend --tail 20"
  3. 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:
  1. Verificar configuración CORS en backend/src/server.ts
  2. Agregar IP del cliente a la lista de orígenes permitidos
  3. 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:
  1. Verificar que MySQL esté ejecutándose: ssh root@159.223.6.121 "docker ps | grep mysql"
  2. Verificar logs de MySQL: ssh root@159.223.6.121 "docker logs subasta_app-mysql --tail 20"
  3. Verificar credenciales en docker-compose.yml
  4. 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:
  1. Verificar que las migraciones se ejecutaron: ssh root@159.223.6.121 "docker exec subastapp-backend npx prisma migrate status"
  2. Ejecutar migraciones: ssh root@159.223.6.121 "docker exec subastapp-backend npx prisma migrate deploy"
  3. 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:
  1. 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;'"
  2. Crear usuario de prueba si es necesario
  3. 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:
  1. Verificar archivos package.json no corruptos
  2. Usar --legacy-peer-deps si hay conflictos
  3. Limpiar cache de npm: npm cache clean --force
  4. Reconstruir imágenes Docker: docker-compose build --no-cache

Error: "TypeScript compilation failed"

Síntomas: Errores de compilación TypeScript

Solución:
  1. Verificar configuración de TypeScript en tsconfig.json
  2. Actualizar dependencias de TypeScript si es necesario
  3. Usar || true en Dockerfile para bypass temporal
  4. 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:
  1. Verificar logs del contenedor: docker logs [container-name]
  2. Verificar recursos del sistema: docker system df
  3. Limpiar recursos no utilizados: docker system prune -a
  4. Reiniciar Docker daemon si es necesario

Error: "Port already in use"

Síntomas: Puertos ocupados por otros servicios

Solución:
  1. Verificar puertos en uso: netstat -tulpn | grep :80
  2. Detener servicios conflictivos
  3. 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:
  1. Verificar que el backend esté ejecutándose
  2. Verificar configuración de proxy en nginx.conf
  3. Verificar logs de Nginx: docker logs subastapp-nginx
  4. 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:
  1. Verificar que los archivos HTML estén en el servidor
  2. Verificar configuración de Nginx para documentación
  3. Reiniciar Nginx después de cambios
  4. 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

📋 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.