100 lines
2.7 KiB
Markdown
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.). |