Files
lolero/docs/DEPLOY.md
T

2.7 KiB

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)

# /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
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:

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

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

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