Files

100 lines
2.7 KiB
Markdown

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