Features: - React 18 + TypeScript frontend with Vite - Go + Gin backend API - PostgreSQL database - JWT authentication with refresh tokens - User management (admin panel) - Docker containerization - Progress tracking system - 4 economic modules structure Fixed: - Login with username or email - User creation without required email - Database nullable timestamps - API response field naming
48 lines
1.4 KiB
Markdown
48 lines
1.4 KiB
Markdown
# Problema: Caddy no puede acceder a los contenedores de econ
|
|
|
|
## Estado actual
|
|
|
|
Los contenedores están corriendo:
|
|
- `econ-postgres` (PostgreSQL)
|
|
- `econ-backend` (Go API, puerto 8080)
|
|
- `econ-frontend` (React/Nginx, puerto 80)
|
|
|
|
Todos están conectados a la red `caddy` pero Caddy no puede resolver sus nombres.
|
|
|
|
## Síntoma
|
|
|
|
```
|
|
dial tcp: lookup econ-frontend on 127.0.0.11:53: no such host
|
|
```
|
|
|
|
## Qué se intentó
|
|
|
|
1. Usar nombres de contenedor en Caddy (econ-frontend:80) - NO funciona
|
|
2. Usar IP del host (194.163.191.200:3002) - NO funciona (timeout)
|
|
3. Usar IP del contenedor en Caddy (172.20.0.x) - NO funciona
|
|
4. network_mode: host - Rompió nginx por depender de "backend"
|
|
|
|
## Cómo funciona Gitea (y funciona)
|
|
|
|
- Gitea está en red `gitea_gitea-network`
|
|
- Caddy tiene: `reverse_proxy gitea-gitea-1:3000`
|
|
- Funciona correctamente
|
|
|
|
## Solución a probar
|
|
|
|
1. Crear una red específica para econ (ej: `econ-network`)
|
|
2. Conectar los 3 contenedores a esa red
|
|
3. Actualizar Caddy para usar los nombres de contenedor desde esa red
|
|
|
|
O alternativamente:
|
|
- Usar `extra_hosts` en docker-compose para agregar el host al contenedor de Caddy
|
|
- Usar IP estática en la red de Caddy
|
|
|
|
## Para probar inmediatamente
|
|
|
|
Desde la VPS (fuera de contenedores):
|
|
- `curl http://localhost:3002` funciona
|
|
- `curl http://localhost:8080/health` funciona
|
|
|
|
El problema es exclusivamente la comunicación Caddy → econ-containers.
|