# Deploy — lolero.cbcren.online El sitio corre en un servidor estático (`python3 -m http.server`) en el puerto **8899**, protegido por un reverse proxy **Caddy** con TLS automático. ``` Internet → Caddy (80/443, TLS automático) └─ lolero.cbcren.online → reverse_proxy 172.20.0.1:8899 └─ python3 -m http.server (systemd: lolero.service) ├─ index.html └─ logos/ (68 archivos) ``` --- ## 1. Servir los archivos (systemd) ```ini # /etc/systemd/system/lolero.service [Unit] Description=1v9 Convertite en Leyenda - static site After=network.target [Service] User=ren WorkingDirectory=/home/ren/lolero ExecStart=/usr/bin/python3 -m http.server 8899 --bind 0.0.0.0 Restart=always RestartSec=3 [Install] WantedBy=multi-user.target ``` ```bash sudo cp lolero.service /etc/systemd/system/lolero.service sudo systemctl daemon-reload sudo systemctl enable --now lolero ``` > **Nota:** `http.server` lee los archivos del disco en cada request, así que **no hace falta > reiniciar el servicio** cuando se actualiza `index.html`. El cambio se sirve solo. ## 2. Caddy (reverse proxy) El Caddyfile activo está en `/home/ren/immich/Caddyfile` (es un bind mount del contenedor `caddy-ingress`, no `/etc/caddy/Caddyfile`). Se agregó: ``` lolero.cbcren.online { reverse_proxy 172.20.0.1:8899 encode gzip header { X-Frame-Options SAMEORIGIN X-Content-Type-Options nosniff } log { output file /data/caddy/lolero.cbcren.online.log } } ``` Validar y recargar: ```bash docker exec caddy-ingress caddy validate --config /etc/caddy/Caddyfile --adapter caddyfile docker exec caddy-ingress caddy reload --config /etc/caddy/Caddyfile --adapter caddyfile ``` > `172.20.0.1` es el gateway de la red docker `caddy` (donde corre `caddy-ingress`). > Cualquier proxy hacia el host usa esa IP. ## 3. DNS Registro A: `lolero.cbcren.online → 194.163.191.200` (ya creado). Caddy emite el certificado Let's Encrypt automáticamente en el primer request. ## 4. Verificación ```bash curl -sk -o /dev/null -w "%{http_code}\n" https://lolero.cbcren.online/ # 200 curl -sk -o /dev/null -w "%{http_code}\n" https://lolero.cbcren.online/logos/T1.png # 200 ``` ## 5. Actualizar contenido Reemplazar `/home/ren/lolero/index.html` y/o `/home/ren/lolero/logos/`. No requiere restart. ## 6. Rollback ```bash sudo systemctl stop lolero # baja el servicio # el 503 de Caddy se devuelve mientras tanto; subirlo de nuevo con: sudo systemctl start lolero ``` ## Notas de puertos El puerto **8899** se eligió libre (verificado con `ss -tln`). No se tocan puertos en uso (8080, 8090, 3000, 8000, etc.).