From 71b31b211dca4472099e9cba70e844220a9edaa5 Mon Sep 17 00:00:00 2001 From: Orquestador CAS Date: Sun, 21 Jun 2026 00:06:36 +0000 Subject: [PATCH] docs(dockge): agrega documentacion de Caddy, certificados y dominios --- servidores/dockge/README.md | 156 ++++++++++++++++++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 servidores/dockge/README.md diff --git a/servidores/dockge/README.md b/servidores/dockge/README.md new file mode 100644 index 0000000..45b04bd --- /dev/null +++ b/servidores/dockge/README.md @@ -0,0 +1,156 @@ +# Dockge / Caddy — Reverse Proxy y SSL + +> Servidor `dockge` (192.168.10.74) que ejecuta **Caddy** en Docker como reverse proxy central para los servicios públicos de la red. +> +> **Estado**: ✅ Caddy corriendo, certificados renovados. + +--- + +## 1. Información General + +| Parámetro | Valor | +|---|---| +| **Hostname** | `dockge` | +| **IP LAN** | `192.168.10.74` | +| **Servicio** | Caddy v2.11.2 (contenedor Docker) | +| **Imagen** | `caddy-cloudflare:latest` | +| **Configuración** | `/etc/caddy/Caddyfile` dentro del contenedor | +| **Panel Dockge** | `http://192.168.10.74:5001` | + +### Contenedores principales + +| Contenedor | Función | Puerto expuesto | +|---|---|---| +| `caddy` | Reverse proxy + SSL automático | `443/tcp`, `80/tcp` | +| `jellyfin` | Media server | `8096/tcp`, `1900/udp`, `7359/udp` | +| `jellyseerr` | Requests de Jellyfin | `5055/tcp` | +| `bazarr` | Subtítulos | `6767/tcp` | +| `sonarr` | Series | `8989/tcp` | +| `radarr` | Películas | `7878/tcp` | +| `qbittorrent` | Torrents | `8080/tcp`, `6881/tcp+udp` | +| `prowlarr` | Indexers | `9696/tcp` | +| `dockge` | Gestor de stacks Docker | `5001/tcp` | + +--- + +## 2. Dominios Gestionados por Caddy + +### Dominios `consultoria-as.com` + +| Dominio | Backend | Estado | +|---|---|---| +| `jellyfin.consultoria-as.com` | `127.0.0.1:8096` | ✅ | +| `mediarequest.consultoria-as.com` | `127.0.0.1:5055` | ✅ | +| `immich.consultoria-as.com` | `192.168.10.78:2283` | ✅ | +| `odoo.consultoria-as.com` | `192.168.10.81:8069` | ✅ | +| `n8n.consultoria-as.com` | `192.168.10.83:5678` | ✅ | +| `metabase.consultoria-as.com` | `192.168.10.170:3000` | ✅ | +| `hacienda.consultoria-as.com` | `192.168.10.167:5172` | ✅ | +| `apihotel.consultoria-as.com` | `192.168.10.167:4000` | ✅ | +| `api-hacienda.consultoria-as.com` | `192.168.10.167:4000` | ✅ | +| `nexus.consultoria-as.com` | `192.168.10.91:5000` | ✅ | +| `git.consultoria-as.com` | `192.168.10.69:3000` | ✅ | +| `navidrome.consultoria-as.com` | `192.168.10.85:4533` | ✅ | +| `foro.consultoria-as.com` | `192.168.30.73:4567` | ✅ | +| `status.consultoria-as.com` | `192.168.10.87:3001` | ✅ | +| `cronicas.consultoria-as.com` | `192.168.10.92:3000` | ✅ | +| `pagoda.consultoria-as.com` | `192.168.10.92:3001` | ✅ | +| `mesh.consultoria-as.com` | `https://192.168.10.97:4443` | ✅ | +| `recetas.consultoria-as.com` | `192.168.10.156:8080` | ✅ | +| `afterlife.consultoria-as.com` | `192.168.10.84:3000` | ✅ | +| `3d.consultoria-as.com` | `192.168.10.104:8000` | ✅ | +| `play.consultoria-as.com` | `192.168.10.108:80` | ⚠️ Backend caído | +| `gym.consultoria-as.com` | `192.168.10.123:80` | ⚠️ Backend caído | +| `strada.consultoria-as.com` | `192.168.10.113:80` | ✅ | + +### Dominios adicionales + +| Dominio | Backend | Estado | +|---|---|---| +| `horuxfin.com`, `www.horuxfin.com` | `192.168.10.90:3000` | ⚠️ No se puede renovar certificado (token solo cubre `consultoria-as.com`) | +| `nexusautoparts.com.mx` | `192.168.10.91:80` | ✅ | +| `*.nexusautoparts.com.mx` | `192.168.10.91:80` | ✅ | +| `manager.nexusautoparts.com.mx` | `192.168.10.89:5003` | ✅ | + +--- + +## 3. Certificados SSL (Let's Encrypt vía Cloudflare DNS) + +Caddy obtiene y renueva certificados automáticamente usando el **DNS challenge** de Cloudflare. + +### Token de Cloudflare + +Ubicado en el encabezado del `Caddyfile`: + +```caddyfile +{ + acme_dns cloudflare +} +``` + +El token debe tener permisos: +- **Zone:Read** +- **DNS:Edit** +- Zona: `consultoria-as.com` + +> **Nota**: el token actual solo cubre `consultoria-as.com`. Para renovar `horuxfin.com` se necesita un token adicional con acceso a esa zona. + +### Renovación de certificados + +Caddy renueva certificados automáticamente. Para forzar una renovación manual: + +```bash +ssh root@192.168.10.74 +docker restart caddy +``` + +O recargar configuración: + +```bash +docker exec caddy caddy reload --config /etc/caddy/Caddyfile --force +``` + +### Comandos útiles + +```bash +# Ver logs de Caddy +ssh root@192.168.10.74 "docker logs caddy --tail 50" + +# Ver certificados activos +ssh root@192.168.10.74 "docker exec caddy caddy list-modules --versions" + +# Validar Caddyfile +ssh root@192.168.10.74 "docker exec caddy caddy validate --config /etc/caddy/Caddyfile" + +# Verificar expiración de un dominio +echo | openssl s_client -servername strada.consultoria-as.com -connect strada.consultoria-as.com:443 2>/dev/null | openssl x509 -noout -enddate +``` + +--- + +## 4. Problemas Resueltos (21 Jun 2026) + +- ✅ **Token de Cloudflare inválido**: se actualizó el token en el Caddyfile. +- ✅ **Certificados expirados**: se reinició Caddy y se renovaron todos los certificados de `consultoria-as.com` y `nexusautoparts.com.mx`. +- ✅ **IP incorrecta de StradaAutopartes**: se corrigió de `192.168.10.117` a `192.168.10.113`. + +### Pendientes + +- [ ] Investigar servicios caídos detrás de `play.consultoria-as.com` (192.168.10.108) y `gym.consultoria-as.com` (192.168.10.123). +- [ ] Generar token de Cloudflare para la zona `horuxfin.com` si se requiere HTTPS en ese dominio. + +--- + +## 5. Backends Caídos Detectados + +| Dominio | Backend | Problema | +|---|---|---| +| `play.consultoria-as.com` | `192.168.10.108:80` | No responde (timeout) | +| `gym.consultoria-as.com` | `192.168.10.123:80` | No responde (timeout) | + +Estos servicios generan errores `502` en Caddy porque sus backends no están accesibles. Revisar si las VMs/contenedores están apagados o cambiaron de IP. + +--- + +*Documentación Caddy / Dockge - Consultoria Alcaraz Salazar* +*Actualizado: 21 de Junio de 2026*