Déployez ntfy sur Pethost en un clic
Notifications push vers le téléphone et le bureau depuis vos scripts, par HTTP
Ce qui se passe
- Vous vous connectez à Pethost ou créez un compte, avec une clé d’accès, GitHub ou Google.
- Pas encore de machine ? Vous choisissez une offre, et nous en préparons une pour vous. Le lien attend dans votre navigateur qu’elle soit prête.
- Nouveau projet s’ouvre sur l’application. Vous remplissez ce qu’elle demande et cliquez sur Créer le projet : Mot de passe administrateur.
- En une minute ou deux, l’application tourne à sa propre adresse en HTTPS. Ses secrets sont créés pour elle au hasard, et ses données sont dans la sauvegarde nocturne.
- C’est un projet comme les autres : son compose.yaml, son .env, ses logs et un terminal sont dans le panel, et votre agent peut le modifier, revenir à une version précédente ou le restaurer.
Premiers pas
Connectez-vous en tant qu’admin avec le mot de passe administrateur indiqué. Les topics sont fermés à tous les autres : créez un utilisateur pour un téléphone ou un script dans le terminal du service ntfy, avec ntfy user add et ntfy access. Dans l’app ntfy, ajoutez https://ntfy.sam.pethost.app comme serveur. Les messages sont conservés dans /var/lib/ntfy.
Ce qui tourne
Le template, c’est ce compose.yaml et les variables qu’il écrit dans le .env du projet. Pethost exécute le fichier tel qu’il est écrit.
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: