Stop met het gebruik van Discord voor homelab-meldingen—hier is waar ik in plaats daarvan op ben overgestapt
Discord-webhooks zijn hoe veel mensen pushmeldingen van hun thuisservers ontvangen. Als je het echter te traag vindt of als het te rommelig is om al je servermeldingen op één kanaal te krijgen, is er een nog eenvoudigere manier. Met deze tool kun je meldingen naar je telefoon sturen met een enkele curl-opdracht.
Wat is Ntfy
Een slimme service die onmiddellijk meldingen naar zoveel apparaten als je wilt verzendt
Ntfy is een gratis en open-source eenvoudige pushmeldingsdienst die je zelf op je server kunt hosten. Het accepteert HTTPS-verzoeken en stuurt ze onmiddellijk naar elk apparaat dat is verbonden met je zelf-gehoste Ntfy-server. Je kunt eenvoudige curl-commando's opnemen in scripts of cron-jobs om pushmeldingen te ontvangen.
Je kunt meldingen pushen op basis van een "onderwerp." In feite laat Ntfy je meldingen sorteren en organiseren in verschillende kanalen. Je kunt bijvoorbeeld een kanaal maken voor uptime-meldingen en een ander voor back-ups. Vervolgens kun je je op een of beide van die onderwerpen abonneren op je telefoon of tablet om pushmeldingen te ontvangen.
Het is een behoorlijk lichte setup omdat het nauwelijks middelen verbruikt, dus je kunt het op alles uitvoeren dat een Docker-container kan draaien. Om pushmeldingen te ontvangen, kun je de Ntfy-app downloaden op Android- of iOS-apparaten. Je kunt zelfs desktopmeldingen krijgen via de browserapp (toegankelijk via het serveradres).
Hoe de server op te zetten
Je hebt alleen Docker nodig
De eenvoudigste en meest praktische manier om Ntfy op een server in te stellen is via de officiële Ntfy Docker-image. Als je Docker nog niet op je server hebt geïnstalleerd, kun je het officiële Bash-script gebruiken om het te installeren.
curl -fsSL https://get.docker.com | sudo shHet is altijd een goed idee om scripts die van internet zijn gedownload dubbel te controleren voordat je ze uitvoert. Je kunt de inhoud van dat shellscript lezen door de URL te bezoeken of cat te gebruiken om de inhoud ervan af te drukken.
Met Docker geïnstalleerd, kunnen we nu een Docker-composebestand gebruiken om een lichte Ntfy-container op te zetten. Laten we een nieuwe map aanmaken om de Ntfy-container en het composebestand te bewaren.
mkdir -p ntfy/{config,cache,data}Laten we een compose-bestand maken.
nano docker-compose.ymlPlak dit in het samenstellingsbestand. Druk daarna op Ctrl+O en Enter om het op te slaan. Vervolgens Ctrl+X om de nano editor te sluiten.
services:
ntfy:
image: binwiederhier/ntfy
container_name: ntfy
command: serve
environment:
- NTFY_BASE_URL=http://192.168.1.50:9000
- NTFY_LISTEN_HTTP=:80
- NTFY_CACHE_FILE=/var/cache/ntfy/cache.db
- NTFY_AUTH_FILE=/etc/ntfy/auth.db
- NTFY_AUTH_DEFAULT_ACCESS=deny-all
volumes:
- ./cache:/var/cache/ntfy
- ./config:/etc/ntfy
ports:
- "9000:80"
restart: unless-stoppedWe kunnen nu de container starten met dit commando.
docker compose up -dControleer of de container draait en op de juiste poort draait.
docker psTechnisch gezien heb je geen Docker-container nodig om Ntfy op te zetten. Het kan worden geïnstalleerd als een eenvoudig APT-pakket dat draait als een systemd-service (dus het zal automatisch starten zodra de server opstart). Het kan echter rommelig worden als je het tussen servers wilt verplaatsen of tegen afhankelijkheidsproblemen aanloopt. Docker-containers zijn gemakkelijk te migreren en gemakkelijk te wissen, en je zult geen afhankelijkheidsproblemen tegenkomen.
Hoe Ntfy-meldingen op je telefoon te krijgen
Installeer de app en maak verbinding met uw server
Eigenlijk heb je alleen de Ntfy-app en de URL nodig om toegang te krijgen tot de Ntfy-instance die op je persoonlijke server draait. Je kunt Ntfy downloaden van F-Droid of de Google Play Store voor Android en de App Store voor iOS.
Start de app en tik op de drie puntjes bovenaan om het instellingenmenu te openen. Scroll naar beneden naar algemene instellingen en tik op Standaardserver. Het adres zou er ongeveer zo uit moeten zien. De poort is wat je hebt gekozen bij het maken van de Docker-container voor de Ntfy-server.
http://192.168.1.50:9000Klik vervolgens op Opslaan.
Je kunt nu op zoveel 'onderwerpen' of notificatiekanalen van de server abonneren als je wilt. Tik op de plusknop onderaan. Je ziet een venster 'Abonneren op onderwerp'. De naam van het onderwerp is het adres waarnaar je pushmeldingen vanaf je server zult sturen. Typ het en klik op Abonneren.
Aangezien dit allemaal via een HTTP-verbinding gebeurt, kies een unieke topicnaam die moeilijk te raden is omdat het ook als je wachtwoord zal dienen. Als je iets algemeens kiest zoals "alerts", kan theoretisch iedereen die verbonden is met je Wi-Fi-netwerk meldingen van je server ophalen door zich op hetzelfde topic te abonneren.
Het zou meteen verbinding moeten maken met de server en een meldingsketen in het hoofdmenu moeten tonen.
Als je fouten ziet, zorg er dan voor dat je het juiste server-IP en poortadres typt. Zorg er ook voor dat je verbonden bent met hetzelfde Wi-Fi-netwerk als de server. Je kunt een reverse proxy of een privé-netwerk zoals Tailscale instellen als je je meldingen wilt openen buiten je thuis-Wi-Fi-netwerk.
Laten we onze nieuwe opstelling testen.
Gebruik op uw server een curl-opdracht om een melding naar het kanaal te sturen dat u hebt geselecteerd.
curl -d "This is a test alert from my server" http://192.168.1.50:9000/jelly_alertsDe melding zou onmiddellijk in de meldingsthread moeten verschijnen, evenals in de meldingsbalk van je telefoon.
Enkele pro-tips
Je kunt prioriteitsmeldingen instellen en zelfs bestandbijlagen verzenden
Het heeft weinig zin om deze meldingen handmatig te versturen, maar je wilt deze curl-oproepen waarschijnlijk opnemen in je scripts. Bijvoorbeeld, ik heb een script opgezet dat de Asana API gebruikt om mij waarschuwingen te sturen. Je kunt een kanaal instellen voor zoveel scripts als je wilt. Je kunt ook de prioriteit van de pushmeldingen instellen met deze vlaggen.
curl \
-H "Title: Emergency" \
-H "Priority: high" \
-d "Immediate attention needed" \
http://192.168.1.50:9000/jelly_alertsConfigureer vervolgens de meldingsprioriteit voor Ntfy binnen de app-instellingen. U kunt ook lokale bestanden of download-URL's aan de pushmeldingen toevoegen.
Lichtgewicht en gemakkelijke pushmeldingen
Als je op zoek bent naar een eenvoudige en lichte manier om meldingen te sturen voor je back-ups, API-aanroepen, scripts of uptime-monitoringwaarschuwingen, dan is er niets eenvoudigers dan de basis curl-syntaxis die Ntfy gebruikt.











