57 lines
2.0 KiB
Markdown
57 lines
2.0 KiB
Markdown
# Gitea (VPS Contabo) — watchdog + monitor
|
|
|
|
## Contexto
|
|
|
|
- `git.v-encore-lab.com` → **185.187.169.109** (VPS Contabo).
|
|
- Contenedor `gitea` definido en `/root/docker-compose.yml` (proyecto `root`, red `root_gitea_gitea`).
|
|
- Datos en el bind **`/root/gitea/data`** (recrear el contenedor NO los toca).
|
|
- Delante: `nginx-proxy-manager` (Gitea escucha en el 3000 interno, sin puerto publicado).
|
|
|
|
## Incidente 20-sep-2026 (502)
|
|
|
|
El contenedor `gitea` entró en **bucle de reinicio** (3595 reinicios) por una capa de
|
|
escritura corrupta: `/app/gitea/gitea: Permission denied`. La imagen y la DB estaban bien.
|
|
Se resolvió recreando el contenedor:
|
|
|
|
```bash
|
|
cd /root && docker compose up -d --force-recreate --no-deps gitea
|
|
```
|
|
|
|
## Watchdog (recrea el contenedor si vuelve a pasar)
|
|
|
|
`gitea_watchdog.sh` comprueba cada 2 min:
|
|
1. Estado del contenedor (`docker inspect`).
|
|
2. `docker exec gitea wget -qO- http://127.0.0.1:3000/api/healthz`.
|
|
|
|
Si falla **2 veces seguidas** (`MAX_FAILS=2`), recrea el contenedor con
|
|
`docker compose up -d --force-recreate --no-deps gitea`.
|
|
|
|
- Log: `/var/log/gitea-watchdog.log` (rota a 1 MB).
|
|
- Estado: `/var/lib/gitea-watchdog/fails`.
|
|
|
|
### Instalación (en el VPS)
|
|
|
|
```bash
|
|
mkdir -p /opt/gitea-watchdog /var/lib/gitea-watchdog
|
|
cp gitea_watchdog.sh /opt/gitea-watchdog/ && chmod +x /opt/gitea-watchdog/gitea_watchdog.sh
|
|
cp gitea-watchdog.service gitea-watchdog.timer /etc/systemd/system/
|
|
systemctl daemon-reload
|
|
systemctl enable --now gitea-watchdog.timer
|
|
```
|
|
|
|
Comprobar:
|
|
|
|
```bash
|
|
systemctl list-timers gitea-watchdog.timer
|
|
tail -20 /var/log/gitea-watchdog.log
|
|
```
|
|
|
|
## Monitor en Uptime-Kuma
|
|
|
|
Monitor existente `Gitea - Repositorios` (id 1): `https://git.v-encore-lab.com`, cada 60 s,
|
|
notificación **ALERTA MONITORES** (email SMTP). Se corrigió la URL (tenía un punto final:
|
|
`https://git.v-encore-lab.com.`).
|
|
|
|
> Editar el monitor en la DB: parar `uptime-kuma`, `sqlite3 /root/uptime-kuma/kuma.db "UPDATE ..."`,
|
|
> y volver a arrancarlo (Uptime-Kuma lee la DB al iniciar).
|