Saltar a contenido

ntfy

Servicio de notificaciones push. Podés mandar alerts desde cualquier script o servicio con un simple curl. También soporta UnifiedPush.

📁 Rutas y configs

Qué Dónde
Compose /opt/docker/ntfy/compose.yaml
Config /opt/docker/ntfy/data/server.yml
Cache /opt/docker/ntfy/cache/
Usuarios/permisos (DB bcrypt) /opt/docker/ntfy/data/user.db

Contenedor: ntfy Puerto: 8521

🔐 Autenticación (habilitada)

ntfy corre con auth-default-access: deny-all en server.yml. Nadie puede publicar ni leer nada sin credenciales.

  • matias (rol admin): lee y escribe en todos los topics. Usalo en la app del celu para subscribirte.
  • homelab (usuario de servicio) + token: solo publicar en homelab-security y Alertas.
  • Token en /opt/scripts/ntfy.env (root:matias 640, NO versionado): NTFY_TOKEN=tk_....

Los scripts del homelab (docker-watchdog.sh, ntfy-notify-failure.sh, security/report.py, ntfy-upgrade-notify.sh) sourcean ese .env y mandan el header Authorization: Bearer $NTFY_TOKEN.

Operaciones

# Listar usuarios y permisos
docker exec ntfy ntfy user list
docker exec ntfy ntfy access list

# Cambiar password del admin (matias)
docker exec -e NTFY_PASSWORD=NUEVA ntfy ntfy user change-pass matias

# Crear otro token para el usuario de servicio
docker exec ntfy ntfy token add --label="nombre" homelab

🚀 Cómo usar

# Notificación simple (con auth del admin desde el celu/hombre)
curl -u "matias:TUPASS" -d "Hola mundo" https://ntfy.matias7235.com.ar/mitopic

# Publicar con token de servicio (scripts)
. /opt/scripts/ntfy.env
curl -H "Authorization: Bearer $NTFY_TOKEN" \
     -H "Title: Alerta" -H "Priority: high" \
     -d "El servidor se está quemando" \
     https://ntfy.matias7235.com.ar/Alertas

Los topics se crean automáticamente al primer uso — no hay que preconfigurarlos, pero sí hay que dar permiso (ntfy access <user> <topic> <read|write>) porque el default es deny-all.

📱 Apps

  • Android: ntfy (F-Droid: io.heckel.ntfy)
  • iOS: ntfy
  • Web: https://ntfy.matias7235.com.ar (pedirá login)

En la app, agregá el servidor https://ntfy.matias7235.com.ar, logueate como usuario matias y subscribite a los topics. Topics en uso: Alertas (caídas systemd/docker), homelab-security (reportes de seguridad/updates).

🔔 Integración con Uptime Kuma

Uptime Kuma publica a ntfy; si arma notificaciones a topics con auth, configurá usuario/token en el webhook de Kuma (Basic auth o header Authorization: Bearer).

🔐 Seguridad

  • ✅ Expuesto públicamente vía Caddy (ntfy.matias7235.com.ar)
  • ✅ Auth habilitada (default deny-all) — sin credenciales no se publica ni se lee.
  • Logs de acceso en /opt/docker/cady/logs/sensitive.access.log (fail2ban caddy-auth).