- scripts/Invoke-CloudflareApi.ps1: control de tunnel/DNS via API - scripts/Install-CoolifyAutostart.ps1 + scripts/host/: autostart de LXC 102 + tunnel tras corte - scripts/Apply-ChatwootEnterprisePatch.ps1: parche enterprise (autodetecta creds) - Deploy-SoloLeveling.ps1: deploy build-on-server verificado - docs/runbooks/cloudflare-tunnel.md y autostart-coolify.md - docs/casos/chatwoot-enterprise-patch.md (credenciales redactadas) - docs/AGENTS-coolify-apps.md + issues y reportes - deploy_skill/references/coolify-4.1.2-notes.md: hallazgos verificados (seccion 7) - package.json para verify-online.mjs del coolify-deploy skill - .gitignore: excluye .claude/ y .opencode/ (config local de herramientas)
5.0 KiB
Runbook: Auto-arranque de Coolify tras apagón
Garantiza que, después de un corte de luz y al volver a encender el servidor
Proxmox (192.168.0.200, nodo thinkcentre), el LXC 102 (Coolify) y su túnel
de Cloudflare arranquen solos, sin intervención manual.
Causa raíz que resolvió esto (2026-07-08): el LXC 102 no tenía la marca
onboot(por defecto0), así que el host encendía pero el contenedor se quedaba apagado y, con él, todo el stack. Todo lo demás dentro del LXC ya estaba bien encadenado (Dockerenabled, contenedores conrestart=always/unless-stopped,cloudflared.serviceenabled).
Arquitectura de la solución (dos capas)
-
Base nativa de Proxmox —
onboot. El LXC 102 arranca solo al encender el host, gestionado porpve-guests.service(que ya estáenabled):pct set 102 --onboot 1 --startup order=1,up=30 -
Guardián auto-reparable —
coolify-autostart.service. Un servicio systemd oneshot en el host que corre en cada arranque, después depve-guests.service, y garantiza el stack completo:/usr/local/bin/coolify-autostart.sh— script idempotente./etc/systemd/system/coolify-autostart.service— unit (WantedBy=multi-user.target).- Log:
/var/log/coolify-autostart.log.
En cada boot el guardián:
- Verifica que el LXC 102 esté
running(lo arranca si no). - Espera a que Docker responda dentro del LXC (hasta 180 s).
- Se asegura de que estén arriba:
coolify-db,coolify-redis,coolify-realtime,coolify,coolify-proxy,cloudflared(los inicia si alguno no está). - Levanta el
cloudflared.servicede systemd dentro del LXC (segundo conector al mismo túnel).
Las dos capas son complementarias:
onboothace el trabajo normal; el guardián es una red de seguridad que además auto-repara (p. ej. un contenedor conrestart=no) y deja log de lo ocurrido tras el apagón.
Los archivos fuente viven en el repo en scripts/host/ y se instalan con scripts/Install-CoolifyAutostart.ps1.
Instalar / reinstalar
# Instala onboot + guardián y lo prueba una vez (idempotente y seguro)
.\scripts\Install-CoolifyAutostart.ps1 -RunNow
Opciones:
-VerifyOnly— solo reporta estado (onboot, unit, log). No cambia nada.-SkipOnboot— instala solo el guardián, sin tocar la marcaonboot.-RunNow— tras instalar, dispara el guardián una vez y muestra el log.-Uninstall— quita el guardián (dejaonbootintacto).
El instalador empuja los archivos por SSH en base64 (normaliza CRLF→LF), inyecta
el COOLIFY_LXC correcto en el unit, activa onboot, habilita el servicio y
verifica.
Verificar estado (solo lectura)
.\scripts\Install-CoolifyAutostart.ps1 -VerifyOnly
Estado sano esperado:
onboot: 1
startup: order=1,up=30
guardian enabled: enabled
script executable: yes
Log del último arranque:
.\scripts\Invoke-ProxmoxSsh.ps1 -Command "tail -n 25 /var/log/coolify-autostart.log"
Probar sin apagar producción
No reinicies el host solo para probar (tumbaría todos los servicios). En su lugar, dispara el guardián manualmente — solo arranca cosas, nunca las detiene:
.\scripts\Invoke-ProxmoxSsh.ps1 -Command "systemctl start coolify-autostart.service; systemctl is-active coolify-autostart.service; tail -n 25 /var/log/coolify-autostart.log"
Para validar que el unit está bien formado y en el orden correcto:
.\scripts\Invoke-ProxmoxSsh.ps1 -Command "systemd-analyze verify /etc/systemd/system/coolify-autostart.service && systemctl show coolify-autostart.service -p After -p WantedBy"
After debe incluir pve-guests.service; WantedBy debe ser multi-user.target.
Rollback
# Quitar el guardián (deja onboot como esté)
.\scripts\Install-CoolifyAutostart.ps1 -Uninstall
# Y si además quieres que el LXC deje de arrancar solo:
.\scripts\Invoke-ProxmoxSsh.ps1 -Command "pct set 102 --onboot 0"
Notas
- El guardián es idempotente: correrlo con todo ya arriba no hace nada destructivo, solo lo confirma en el log.
- Hay dos conectores
cloudflaredal mismo túnel (5f0e5c5b-a180-46f2-a090-44d151006a62): el contenedor Dockercloudflared(restart=unless-stopped) y elcloudflared.servicede systemd dentro del LXC (enabled). Ambos arrancan solos; es redundante pero inofensivo. Si algún día se consolida en uno, ajustar el paso 4 del script y esta nota. Ver cloudflare-tunnel.md. coolify-sentineltienerestart=no(monitor no crítico); Coolify lo recrea, por eso no está en la lista de contenedores core del guardián.
Verificado: 2026-07-08 — instalado y probado en vivo. onboot=1,
coolify-autostart.service enabled, guardián ejecutado con éxito (LXC arriba,
Docker listo, 6 contenedores core + túnel running). systemd-analyze verify sin
warnings.