Despliega ntfy en Pethost con un clic
Notificaciones push al móvil y al escritorio desde tus scripts, por HTTP
Qué pasa
- Inicias sesión en Pethost o creas una cuenta, con una passkey, GitHub o Google.
- ¿Aún no tienes máquina? Eliges un plan y te preparamos una. El enlace espera en tu navegador hasta que esté lista.
- Nuevo proyecto se abre en la app. Rellenas lo que pide y haces clic en Crear proyecto: Contraseña de administrador.
- En un par de minutos la app está en marcha en su propia dirección con HTTPS. Sus secretos se generan al azar para ella, y sus datos entran en el backup de cada noche.
- Es un proyecto como cualquier otro: su compose.yaml, su .env, sus logs y un terminal están en el panel, y tu agente puede cambiarlo, volver a una versión anterior o restaurarlo.
Primeros pasos
Entra como admin con la contraseña de administrador que indicaste. Los temas están cerrados para los demás: crea un usuario propio para un móvil o un script en el shell del servicio ntfy, con ntfy user add y ntfy access. En la app de ntfy, agrega https://ntfy.sam.pethost.app como servidor. Los mensajes se conservan en /var/lib/ntfy.
Qué ejecuta
La plantilla es este compose.yaml y las variables que escribe en el .env del proyecto. Pethost ejecuta el archivo tal como está escrito.
services:
ntfy:
image: binwiederhier/ntfy:v2.30.0
restart: unless-stopped
environment:
NTFY_BASE_URL: ${URL}
NTFY_LISTEN_HTTP: ":80"
NTFY_BEHIND_PROXY: "true"
NTFY_CACHE_FILE: /var/lib/ntfy/cache.db
NTFY_AUTH_FILE: /var/lib/ntfy/user.db
# Without a user nobody reads or sends: the address alone does not open a topic.
NTFY_AUTH_DEFAULT_ACCESS: deny-all
NTFY_ENABLE_LOGIN: "true"
NTFY_REQUIRE_LOGIN: "true"
ADMIN_PASSWORD: ${ADMIN_PASSWORD}
# ntfy makes its user database at the first start, and only then takes a user: it is started
# once on a port nobody reaches, the admin is added, and the server proper starts.
entrypoint:
- sh
- -c
- |
set -e
if [ ! -f /var/lib/ntfy/user.db ]; then
ntfy serve --listen-http 127.0.0.1:81 &
until wget -q -O /dev/null http://127.0.0.1:81/v1/health; do sleep 1; done
kill $$!
wait $$! || true
NTFY_PASSWORD="$$ADMIN_PASSWORD" ntfy user add --role=admin admin
fi
exec ntfy serve
volumes:
- data:/var/lib/ntfy
volumes:
data: