ID.nl logo
Hier moet je op letten bij het kiezen van een internetprovider
© Reshift Digital
Huis

Hier moet je op letten bij het kiezen van een internetprovider

Internetproviders zijn er in overvloed. Niet voor niets overschreeuwen de aanbieders elkaar met aantrekkelijke acties, torenhoge snelheden en alles-in-één-abonnementen. Vind je het lastig om een goede keuze te maken? In dit artikel leggen we alle relevante details van elke internetprovider bloot.

Tip 01: Internetprovider

Een internetprovider is een bedrijf dat jouw woning toegang biedt tot internet. Klanten ontvangen van de betreffende aanbieder een modem. Dit apparaat zet het inkomende signaal van een traditionele kabel, telefoonlijn of glasvezelkabel om in een internetsignaal. In het modem van de internetprovider is doorgaans ook een (draadloze) router ingebouwd. Lees ook: Zo verbeter je je draadloze thuisnetwerk.

Een router verdeelt de internetverbinding over verschillende apparaten, zoals pc’s, laptops, smartphones, tablets, smart-tv’s en hifi-apparatuur. Zodra je een abonnement bij een internetprovider afsluit, ontvang je een doe-het-zelf-pakket met spullen om een werkende internetverbinding in je woning te realiseren. Als het aansluiten niet lukt, sturen de meeste internetproviders kosteloos een monteur langs.

©PXimport

Tip 02: Alles-in-één

Een belangrijke keuze bij het afsluiten van een internetabonnement is of je ook nog andere diensten wilt afnemen. De meeste internetproviders bieden namelijk ook telefonie en digitale televisie aan. Een groot voordeel is dat een compleet pakket bij één aanbieder in de meeste gevallen goedkoper is dan wanneer je voor telefonie en digitale televisie losse abonnementen afsluit. Daarnaast kun je bij verbindingsproblemen bij één partij terecht en loop je niet het risico dat bedrijven naar elkaar wijzen. Je ontvangt bovendien voor alle diensten één factuur en dat is voor de administratieve rompslomp natuurlijk wel zo prettig.

©PXimport

Tip 03: Welke aansluiting?

Internet is op maximaal drie manieren beschikbaar voor jouw woning, namelijk via de telefoonlijn, televisiekabel en glasvezel. Bij afgelegen huizen is er meestal alleen een analoge telefoonlijn aanwezig. In dat geval ligt een ADSL-abonnement voor de hand, zodat je internet via de telefoonlijn ontvangt. Een nadeel is dat de downloadsnelheid afhankelijk is van de afstand tot aan de wijkcentrale.

De beloofde snelheid van internetproviders wordt dan ook lang niet altijd gehaald. Internet via de kabel biedt in de praktijk wel een constante downloadsnelheid, omdat deze technologie geen last heeft van afstandslimieten. In theorie kan de snelheid wel afnemen wanneer veel mensen in je straat de verbinding tegelijkertijd belasten, maar dat zal niet erg vaak voorkomen. Bij kabelinternet is het overigens verplicht om ook een televisiepakket af te nemen. Kabelabonnementen zonder televisie bestaan namelijk niet. Ziggo domineert momenteel de kabelmarkt, al zijn regionaal ook een kleinere kabelaars erg actief. Wie supersnel internet wenst, kan beter kiezen voor een glasvezelverbinding. Hoewel de dekking in rap tempo verbetert, zijn er momenteel nog ‘slechts’ twee miljoen woningen aangesloten op het glasvezelnetwerk. Desalniettemin is het relatief nieuwe glasvezel sterk in opkomst.

©PXimport

Wie supersnel internet wil, kiest het best voor een glasvezelverbinding

-

Echt glasvezel?

Internetproviders steken veel geld in marketing om klanten over de streep te trekken. Vooral glasvezel is vandaag de dag een populaire marketingterm en logischerwijs willen aanbieders zich hieraan maar al te graag verbinden. Sommige bedrijven beweren zelfs een glasvezelverbinding te leveren, terwijl ze dat in werkelijkheid helemaal niet doen. Een bekend voorbeeld hiervan is nota bene kabelaanbieder Ziggo. Deze internetprovider stuurt medewerkers langs de deuren om ‘internet via glasvezel’ te verkopen, terwijl de verbinding middels deze aanbieder toch echt via de kabel woningen binnenkomt. Ziggo verdedigt deze strategie door te beweren dat het eigen netwerk grotendeels uit glasvezel bestaat. De verbinding van de wijkcentrale tot aan de huizen bestaat echter uit ouderwetse coaxkabels.

©PXimport

Tip 04: Postcodecheck

Afhankelijk van de aanwezige kabels naar jouw woning, zijn er diverse internetabonnementen beschikbaar. Relevant zijn hierbij vragen als: uit hoeveel koperdraden bestaat de telefoonlijn? Ligt er een kabel- en/of glasvezelverbinding? Dergelijke informatie is lang niet altijd even gemakkelijk te achterhalen. Om die reden bieden de meeste internetproviders een postcodecheck aan. Je vult je postcode en huisnummer in, waarna je ziet welke internetabonnementen er voor jouw adres beschikbaar zijn. Wie interesse heeft in glasvezel kan hiervoor terecht op www.eindelijkglasvezel.nl. Deze website is opgericht door Reggefiber: het bedrijf dat glasvezelnetwerken in Nederland aanlegt.

©PXimport

Tip 05: Downloadsnelheid

De snelheid van de geleverde internetverbinding bepaalt grotendeels de prijs van het abonnement. Om die reden is het belangrijk om te bepalen welke snelheid voor jouw huishouden gewenst is. Ook het internetgedrag van overige gezinsleden speelt hierbij een belangrijke rol. Gebruik je internet alleen maar om websites te openen en af en toe een video te kijken via NPO Gemist, dan volstaat een goedkoop ADSL-abonnement tot 20 Mbit/s prima. Zijn er meerdere gezinsleden die graag films streamen via diensten als Netflix en internettelevisie, dan is het slim om voor een snellere internetverbinding te kiezen.

Met een ADSL- of kabelverbinding tot 40 of 50 Mbit/s kun je in de meeste gevallen probleemloos uit de voeten. Snellere verbindingen zijn vooral interessant wanneer meerdere gezinsleden tegelijkertijd films streamen en netwerkgames spelen. Ook mensen die vaak zware filmbestanden downloaden via bittorrent of de nieuwsgroepen (usenet), weten een supersnelle internetverbinding ongetwijfeld te waarderen. Dankzij de opkomst van VDSL (zie kader) wordt internet via de telefoonlijn steeds sneller, al is dat ook afhankelijk van het aantal koperdraden naar jouw woning. De maximale snelheid die internetproviders momenteel leveren via deze technologie is 100 Mbit/s. Ziggo biedt met kabelinternet momenteel een maximale snelheid aan van 300 Mbit/s. Glasvezel gaat zelfs nog een stapje verder. Er zijn al aanbieders die een downloadsnelheid van 500 Mbit/s beloven en de limiet van deze verbinding is daarmee nog niet lang niet bereikt.

©PXimport

Tv-programma’s kijken via NPO Gemist kan prima met een ADSL-abonnement tot 20 Mbit/s

-

VDSL

In plaats van ADSL spreken veel internetaanbieders tegenwoordig van VDSL. De technologie is in grote lijnen hetzelfde en maakt datacommunicatie naar klanten mogelijk over de bestaande telefoonlijn via koperdraad. Dankzij het gebruik van glasvezelnetwerken en verbeterde koperverbindingen tussen wijkcentrales, biedt VDSL een hogere bandbreedte dan ADSL. Dit resulteert in een hogere downloadsnelheid voor de klant.

Tip 06: Uploadsnelheid

De downloadsnelheid van je internetprovider bepaalt hoe snel je websites laden en hoe snel je bestanden vanaf downloadnetwerken binnenhaalt. Vanaf jouw computer kun je ook gegevens het web op sturen. Denk hierbij bijvoorbeeld aan het uploaden van een video naar Facebook of het publiceren van een artikel (met beelden) op een eigen website. Hierbij speelt de uploadsnelheid een belangrijke rol. Deze waarde ligt bij ADSL-, VDSL- en kabelabonnementen over het algemeen een stuk lager dan de downloadsnelheid. Bij nagenoeg alle glasvezelabonnementen zijn de download- en uploadsnelheid exact gelijk. Wanneer de uploadsnelheid voor jou belangrijk is, kies je dus het beste voor glasvezel.

©PXimport

Speedtest

Ben je benieuwd welke download- en uploadsnelheid je met de huidige internetverbinding haalt? Doe dan een speedtest. Zorg er allereerst voor dat er in je woning geen apparaten zijn ingeschakeld die gegevens vanaf internet ophalen, bijvoorbeeld een smart-tv met een Netflix-stream. Kies een pc of laptop die via kabel met internet is verbonden en surf naar www.speedtest.net/nl. Klik op TEST STARTEN en wacht de uitkomst af. Voor ADSL- en VDSL-abonnementen is de afstand tot aan je wijkcentrale een bepalende factor voor de downloadsnelheid. Via www.speedtest.nl/adsl zie je precies hoe ver je van zo’n centrale bent verwijderd. Vul hiervoor je postcode in en klik op Zoek.

©PXimport

Tip 07: Eenmalige kosten

Naast de maandprijs van het abonnement, is het ook slim om nauwkeurig naar de eenmalige kosten te kijken. Sommige providers berekenen namelijk zogeheten aansluitkosten. Wanneer je de verbinding niet zelf instelt, controleer dan ook het tarief voor de monteur. De meeste providers berekenen overigens inmiddels geen aansluit- of montagekosten meer, maar dat geldt helaas niet voor alle aanbieders. Soms vraagt een internetprovider een bedrag voor een snelle levering van internet. Wanneer je bijvoorbeeld via XS4ALL binnen één dag online wilt, betaal je voor deze service eenmalig 65 euro extra. Enkele internetproviders vragen ook een borgsom voor de geleende apparatuur, zoals Fiber.

©PXimport

Tip 08: Contractduur

Besef dat je met een abonnement bij een internetaanbieder meestal een contract voor één of twee jaar aangaat. Je zit gedurende deze periode dus aan het abonnement vast. Wel is het meestal mogelijk om je abonnement op te waarderen, bijvoorbeeld wanneer je toch een hogere downloadsnelheid wilt hebben. Wil je tijdens de contractduur het abonnement evengoed beëindigen? In dat geval brengt de internetprovider hiervoor extra kosten in rekening. In het ergste geval worden de resterende maanden in één keer aan je gefactureerd. De opzegtermijn van een internetabonnement na afloop van het contract is meestal een maand. Wanneer je van de internetprovider een brief ontvangt met een aankondiging van een verhoogd tarief, ben je automatisch contractvrij. Je stapt dan kosteloos naar een andere aanbieder over voordat de verhoging ingaat.

©PXimport

Tip 09: Wifi-hotspots

Tegenwoordig fungeren de routers van bepaalde internetaanbieders ook als wifi-hotspot voor andere abonnees. Het voordeel hiervan is dat je onderweg snel een wifi-verbinding opspoort en daarmee bespaar je het verbruik van een mobiele databundel. Leden van Ziggo hebben op die manier toegang tot zo’n twee miljoen zogeheten WifiSpots. Handig wanneer je bij vrienden of familie op bezoek bent, want de kans is groot dat je zonder extra instellingen van hun internetverbinding gebruikmaakt. Inloggen is makkelijk, want je hebt hiervoor alleen maar je gebruikersnaam en wachtwoord van Ziggo nodig. Naast kabelaanbieder Ziggo biedt KPN onder de noemer Fon een soortgelijke functie aan.

©PXimport

De kans is groot dat je zonder extra instellingen van hun wifi-verbinding gebruikmaakt

-

Tip 10: Klantenservice

Bepaal voor jezelf hoe belangrijk een werkende internetverbinding is. Wanneer je vanuit huis werkt, is het bijvoorbeeld uit zakelijk oogpunt zeer vervelend als je geen verbinding met internet kunt maken. Neem in dat geval een internetprovider waarbij de klantenservice op ruime tijden bereikbaar is. KPN heeft zelfs 24 uur per dag een telefonische helpdesk voor zijn klanten klaarstaan. Gebruik je internet vooral voor privédoeleinden, dan is de bereikbaarheid van een helpdesk iets minder belangrijk.

©PXimport

Tip 11: Hardware

Voor het draadloze bereik in je woning is een goede modem/router-combinatie van essentieel belang. Zoek uit welke hardware je krijgt opgestuurd en duik in de specificaties. Belangrijk is vooral de maximale bandbreedte van de draadloze verbinding en het aantal antennes. Over het algemeen geldt: hoe meer, hoe beter! Het verdient aanbeveling om met een internetprovider in zee te gaan die een dualband-ac-router levert. Bepaalde internetproviders sturen een monteur, die na het aansluiten op jouw verzoek de wifi-dekking kan controleren. Wanneer dat onvoldoende is, plaatst de monteur een accesspoint om een betere wifi-dekking te realiseren. Uiteraard kost dat wel extra geld.

©PXimport

Tip 12: Beveiliging

Als extra dienst voorzien sommige internetproviders ook in de beveiliging van pc’s. Zo geeft Ziggo bij zijn kabelabonnementen bijvoorbeeld de virusscanner van F-Secure cadeau. Abonnees downloaden dit programma vanaf hun Mijn Ziggo-pagina. De benodigde licentiecode pluk je eenvoudig uit de accountgegevens. Een nadeel is dat de licentie van F-Secure voor slechts één pc geldig is. Voor een bedrag van 3,95 euro per maand bescherm je maximaal vijf computers. Ook andere internetproviders bieden als extra dienst een beveiligingspakket aan. Tele2 vraagt hiervoor bijvoorbeeld vier euro per maand en werkt hiervoor eveneens samen met de Finse antivirussoftware van F-Secure. Hiermee heb je ook toegang tot een ouderlijk toezicht-module, zodat je precies bepaalt welke websites er voor je kinderen toegankelijk zijn. Sinds 1 juli heeft ook KPN een extra beveiligingspakket. Voor vijf euro per maand beveilig je hiermee drie apparaten.

©PXimport

Als extra dienst voorzien sommige internetproviders ook in de beveiliging van pc’s

-

Tip 13: Spotify

Nog een andere leuke extra voor wie van muziek houdt: internetprovider KPN heeft een deal gesloten met Spotify. Wanneer je een abonnement op Alles-in-1 Standaard of Premium afsluit, heb je kosteloos toegang tot Spotify Premium. Gunstig, want hiermee stream je miljoenen nummers naar al je apparaten en heb je daarbij geen last van advertenties. Bij andere pakketten krijg je 2,50 euro korting op een maandabonnement bij deze Zweedse muziekdienst. Normaal kost Spotify Premium een tientje per maand. Naast KPN biedt ook XS4ALL Spotify-abonnementen aan voor zijn klanten bij Alles-in-1 Smart, Plus of Pro.

©PXimport

Kooptips

Het aanbod met internetabonnementen is zeer groot, dus er is voor ieder wat wils. We geven je drie voorzetjes. Tele2 Internet Light Prijs: € 22,- per maand Wanneer je internet via ADSL wilt ontvangen, kun je het Internet Light-abonnement van Tele2 overwegen. De kosten hiervoor vallen erg mee, terwijl je internetverbinding toch maximaal 20 Mbit/s ondersteunt. Dat is ruim voldoende om websites te bezoeken, e-mails te openen en zelfs films via Netflix te streamen. Voorwaarde is wel dat de woning niet ver van de wijkcentrale is gelegen, zodat de downloadsnelheid op peil blijft. Het eerste kwartaal kost dit abonnement overigens tien euro per maand. Ziggo Complete Prijs: € 45,95 per maand Het instapabonnement van Ziggo heeft al een gegarandeerde downsnelheid van 40 Mbit/s. Dat is snel genoeg om met meerdere personen binnen de woning te internetten en enkele streams te openen. Wil je Netflix-films in HD-kwaliteit streamen, dan is hiervoor zo’n 5 Mbit/s vereist. In een huishouden met enkele gezinsleden is er dus capaciteit genoeg. Daarnaast is deze internetverbinding ook prima geschikt om af en toe eens een filmpje te downloaden. Ziggo Complete bevat naast een internetaansluiting ook een abonnement voor digitale televisie. De eerste drie maanden betaal je 34,95 euro per maand. XS4ALL Internet Pro Prijs: € 61,- per maand Filmfanaten downloaden zeer regelmatig blu-ray-films van 25 of misschien wel 50 GB. Met een snelle verbinding staan deze zware videobestanden vlot op je systeem. Om de wachttijden te beperken, is glasvezel hiervoor uitermate geschikt. Is jouw woonwijk aangesloten op het glasvezelnetwerk, dan is het Internet Pro-abonnement van XS4ALL een aanrader. Hiermee beschik je over een downloadsnelheid van maximaal 500 Mbit/s, waardoor je pc moeiteloos grote hoeveelheden data vanaf het web binnenslurpt. De eerste drie maanden betaal je voor dit abonnement veertig euro per maand.

▼ Volgende artikel
Pushnotificaties vanaf je thuisserver: zo werkt ntfy
© ID.nl
Huis

Pushnotificaties vanaf je thuisserver: zo werkt ntfy

Als je services op je eigen thuisserver draait, wil je daar ook eenvoudig meldingen van kunnen ontvangen. Ntfy stelt je in staat om eenvoudig pushnotificaties naar je telefoon of computer te sturen. Bovendien kun je ntfy op je eigen thuisserver draaien, zodat je alles in eigen handen hebt. In dit artikel gaan we ermee aan de slag.

Dit gaan we doen

In dit artikel zetten we een ntfy-server op die je zelf beheert. We regelen eerst de randvoorwaarden: hoe je server van buitenaf bereikbaar wordt (bijvoorbeeld via vpn of portforwarding) en hoe je https netjes afhandelt met een reverse proxy en een certificaat van Let's Encrypt. Daarna bouwen we de basis: configuratiebestand, opslagmappen en een draaiende container met Docker.

Vervolgens maken we gebruikers en rechten aan, zodat niet iedereen zomaar kan publiceren of meelezen. Je test met de webinterface en met de mobiele app, zodat je zeker weet dat meldingen ook echt binnenkomen. Tot slot koppel je ntfy aan je eigen tools: eerst met een simpele curl-oproep vanuit een shellscript, daarna met extra's zoals titel, prioriteit en tags. Als je wilt, breid je dat uit naar meldingen met bijlagen, acties (doorklikken naar een url) en integratie vanuit Python. 

Lees ook: Je oude Windows-pc als thuisserver: zo zet je Jellyfin en Syncthing op

Netwerkmonitoringsoftware, een programma dat je Docker-containers bijwerkt, een smarthomecontroller, back-upsoftware, ze hebben allemaal één ding gemeen: ze moeten je meldingen kunnen sturen als er iets gebeurt. Dat kan op verschillende manieren: via e-mail, instant messaging of pushnotificaties naar je telefoon. Dat laatste verloopt doorgaans via een gecentraliseerde dienst zoals Firebase Cloud Messaging (voorheen Google Cloud Messaging) of Apple Push Notification service.

Pushnotificaties zijn handig omdat ze bijna onmiddellijk aankomen en omdat zowel Android als iOS toestaan om in te stellen hoe je ervan op de hoogte wordt gebracht. Wil je pushnotificaties kunnen ontvangen zonder een server onder controle van een partij zoals Google of Apple, dan moet je ook hiervoor je eigen service installeren. Een opensource-project dat dit implementeert, is ntfy.

Werking van ntfy

Je ntfy-server ontvangt meldingen van je programma's via http over een REST-API en zet deze om in pushnotificaties voor de bijbehorende Android- of iOS-app of voor een webpagina op je computer. De API is in de documentatie van het project beschreven, zodat je ook je eigen software met ntfy kunt laten praten. Het project heeft ook een command-line-interface, zodat je bijvoorbeeld shellscripts op je Linux-server eenvoudig pushnotificaties kunt laten verzenden.

Ntfy gebruikt het bekende publish/subscribe-patroon. Een zender publiceert notificaties op een specifiek onderwerp door data te sturen naar een url via een http POST- of PUT-aanvraag. Het onderwerp wordt gedefinieerd door een segment van de url dat volgt op de domeinnaam. Een ontvanger kan zich dan abonneren op dit onderwerp. Elke keer dat de zender daarna een notificatie op dit onderwerp publiceert, stuurt ntfy de data naar alle ontvangers die zich op dit onderwerp hebben geabonneerd. Door ntfy op je eigen server te installeren, heb je de volledige controle over deze notificaties.

Met ntfy kun je services pushnotificaties laten verzenden naar je telefoon of computer.

Serververeisten

De mobiele app van ntfy moet met je server kunnen communiceren om te vragen of er notificaties zijn. Als je ntfy op een server in je lokale netwerk installeert, moet die dus van buitenaf bereikbaar zijn. Dat kun je met portforwarding in je modem regelen of door je telefoon buitenshuis automatisch met een VPN-server op je lokale netwerk te laten verbinden. Heeft je internetaansluiting thuis geen vast ip-adres, dan moet je ook een DynDNS-updater te draaien.

Een andere optie is om ntfy op een VPS (Virtual Private Server) te installeren. Hierop draai je dan ook een reverse proxy voor https-toegang, die een TLS-certificaat van Let's Encrypt opvraagt. Je hebt dan een domein nodig, waarvoor je een DNS A-record naar het ip-adres van je server laat verwijzen. In de rest van dit artikel gaan we uit van een installatie van ntfy op een lokale server met Debian 13 ("trixie") met behulp van Docker Compose.

Basisconfiguratie

Creëer eerst enkele directory's voor ntfy:

$ mkdir -p containers/ntfy/{cache,etc,lib}

Creëer dan het bestand containers/ntfy/etc/server.yml met de volgende configuratie voor ntfy:

base-url: "https://ntfy.example.com"

cache-file: "/var/cache/ntfy/cache.db"

attachment-cache-dir: "/var/cache/ntfy/attachments"

auth-file: "/var/lib/ntfy/user.db"

auth-default-access: "deny-all"

Vervang het domein achter base-url door het domein waarop je ntfy-server draait. Als je gebruikmaakt van een reverse proxy, dan moet dit de url zijn die door de proxy naar ntfy wordt doorgestuurd. Bovendien moet je dan ook een regel behind-proxy: true toevoegen. In de documentatie van ntfy staan voorbeeldconfiguraties voor nginx, Apache2 en Caddy.

Met auth-default-access: "deny-all" tot slot heeft standaard niemand toegang tot onderwerpen. Elke toegang moet dus expliciet worden toegestaan.

Account bij ntfy.sh

De ontwikkelaar van ntfy draait een publiek beschikbare ntfy-server op ntfy.sh. De webinterface daarvan is bereikbaar op https://ntfy.sh/app. Die kun je gratis gebruiken, bijvoorbeeld om ntfy uit te proberen, maar dat komt met beperkingen. Zo kun je geen onderwerpen reserveren en is er een maximum van 250 notificaties per dag en 2 MB per bijlage. Verder is er geen enkele vorm van authenticatie. De enige manier van beveiliging ligt dus in het geheimhouden van je onderwerpen. Die beperkingen heb je niet als je ntfy zelf installeert. Maar als je liever niet zelf een installatie onderhoudt, kun je een betaald plan nemen. Daarmee ondersteun je ook de ontwikkeling van het opensource-project. Dat begint met een Supporter-plan van 5 dollar per maand (circa 5 euro), waarmee je drie onderwerpen kunt reserveren en 2.500 notificaties mag sturen met maximum 25 MB per bijlage.

Betaal voor gebruik van de publieke ntfy-server en ondersteuning van het opensource-project.

Docker Compose

Definieer nu de container in het bestand docker-compose.yaml:

services:

  ntfy:

    image: binwiederhier/ntfy

    container_name: ntfy

    command: serve

    restart: always

    environment:

      - TZ=Europe/Amsterdam

    volumes:

      - ./containers/ntfy/cache:/var/cache/ntfy

      - ./containers/ntfy/etc:/etc/ntfy

      - ./containers/ntfy/lib:/var/lib/ntfy

    ports:

      - 80:80

Ga je voor de aanpak met een reverse proxy, dan definieer je in ditzelfde bestand ook een container voor die reverse proxy.

Start daarna de container met:

$ docker-compose up -d

Als alles goed gaat, is de webinterface van ntfy daarna bereikbaar op het ingestelde domein of ip-adres. Bovenaan links zie je een melding Notifications are disabled. Klik op Grant now om notificaties in je webbrowser toe te staan, en bevestig dit daarna in het dialoogvenster dat je webbrowser toont.

Sta notificaties in je webbrowser toe.

Lees ook: Docker op je NAS: zo draai je Plex, Home Assistant en meer

Notificaties testen

Omdat je ntfy zo geconfigureerd hebt dat alle toegang standaard wordt geblokkeerd, kun je nog niets doen in de webinterface. Je dient dus eerst gebruikers aan te maken en die de toelating te geven om op specifieke onderwerpen te publiceren of zich te abonneren. Open daarvoor een shell in de container van ntfy met de opdracht docker exec -ti ntfy /bin/sh. Als je daarna ntfy user list intypt, krijg je te zien dat anonieme, niet geauthenticeerde gebruikers geen enkele permissies hebben. Met de opdracht ntfy user add --role=admin admin voeg je dan een admin-gebruiker met de naam admin toe. Gebruikers met de rol admin kunnen op alle onderwerpen publiceren en zich erop abonneren. Geef de gebruiker een wachtwoord en bevestig.

Klik nu in de webinterface van ntfy links op Settings en dan onder Manage users op Add user. Vul de url van je ntfy-server in, de gebruikersnaam admin en het wachtwoord dat je zojuist hebt ingesteld. Klik dan links op Subscribe to topic. Kies een naam of klik op Generate name om ntfy een willekeurige naam te laten kiezen en abonneer je dan op het onderwerp met Subscribe. Klik dan op Publish notification en vul hetzelfde onderwerp in. Voer ook een titel en een bericht voor je notificatie in en klik op Send. Als alles goed gaat, verschijnt je testbericht nu in een 'conversatie' met de naam van het onderwerp, en wijst je webbrowser je op een notificatie.

Publiceer notificaties in je webbrowser.

Gebruikersrechten

De webapplicatie is leuk voor een test, maar een mobiele app is vaak handiger. De app van Ntfy voor Android en iOS stelt je in staat om op je telefoon je te abonneren op onderwerpen (publiceren is niet mogelijk) en daarvoor notificaties te ontvangen. Als je de Android-app via F-Droid installeert, is dat zonder ondersteuning voor Firebase; de versie op Google Play gebruikt wél de servers van Google. Je maakt voor je app bij voorkeur een gebruiker aan die alle onderwerpen alleen kan lezen. Dat doe je weer in de shell van de container van ntfy met ntfy user add android om de gebruiker android aan te maken (voer een wachtwoord in) en dan ntfy access android "*" read-only voor de leesrechten.

Open daarna de Android-app en tik op de drie stippen rechtsboven. Kies Settings en stel dan Default server in op het domein van je ntfy-server. Tik daarna op Manage users en Add new user en vul de url van je ntfy-server in, de gebruikersnaam android en het bijbehorende wachtwoord. Tik dan op Add user. Keer dan terug naar het hoofdscherm van de app en klik op het plusicoontje rechtsonder. Voer het onderwerp in dat je tijdens de test in stap 5 hebt gebruikt en tik op Subscribe om je erop te abonneren. Vanaf nu zal de app voor elk ontvangen bericht op dit onderwerp een notificatie tonen. Je krijgt zelfs de al verzonden berichten te zien. Overigens toont de app twee waarschuwingen. Voor betrouwbare notificaties volg je de suggesties om batterijoptimalisaties uit te schakelen en naar WebSockets over te schakelen in plaats van een http-stream.

De Android-app ontvangt een notificatie voor elk bericht dat op een geabonneerd onderwerp wordt verstuurd.

Shellscripts

Nu je hebt getest dat je ntfy-server werkt, is het tijd om je eigen services notificaties te laten uitsturen. Hoe je dat precies configureert, hangt van de service af. Maar je zult altijd eerst een gebruiker met schrijfpermissies voor een specifiek onderwerp moeten aanmaken. Voor een back-upproces dat je op de hoogte moet houden van de status van je back-ups, maak je bijvoorbeeld een gebruiker aan met de opdracht ntfy user add backup in de container van ntfy. Geef die dan schrijfrechten op het onderwerp backup met ntfy access backup backup write-only.

Het publiceren van een bericht op een specifiek onderwerp behelst niet meer dan het sturen van een http POST-aanvraag naar de webserver. Dat kan bijvoorbeeld in een shellscript op je Linux-server met de opdracht curl:

curl -u backup:password -d "Backup successful" ntfy.example.com/backup

Als je in de ntfy-app op je telefoon je op dit onderwerp abonneert, ontvang je deze notificatie nadat het back-upscript is uitgevoerd. Op deze manier is het heel eenvoudig om je eigen shellscripts notificaties te laten verzenden.

Berichten met extra's

Ntfy ondersteunt talloze extra functies om je berichten te laten opvallen of om hun gedrag aan te passen. Je gebruikt deze allemaal door een http-header aan je aanvraag toe te voegen. Zo kun je aan de notificaties van je back-upscript een titel, prioriteit en tags toevoegen. De tags worden als pictogrammen getoond door de mobiele app. Een voorbeeld:

curl -u backup:password -H "Title: Backup failure" -H "Priority: urgent" -H "Tags: warning,skull" -d "Backup unsuccessful" ntfy.example.com/backup

Als de Android-app een bericht met standaardprioriteit ontvangt, doet ze je telefoon kort vibreren en speelt ze een kort geluidje af. Door de prioriteit op urgent te zetten, wordt het standaardnotificatiegeluidje vergezeld van een langer getril van je telefoon, waardoor je onmiddellijk merkt dat dit dringend je aandacht vereist.

Een ntfy-bericht met een titel, prioriteit en pictogrammen.

Plaatjes en lay-out

Ntfy kan ook plaatjes sturen, bijvoorbeeld een foto van een ip-camera die beweging detecteert, maar niet in combinatie met een tekstbericht. Om een bestand naar ntfy te uploaden met curl in een http PUT-aanvraag gebruik je de optie -T en de bestandsnaam. Met de header Filename voeg je de bestandsnaam toe die de ntfy-app je moet tonen. Dat ziet er dan als volgt uit:

curl -u admin:password -T foto.jpg -H "Filename: beweging.jpg" -H "Title: Beweging voordeur" -H "Tags: boom" ntfy.example.com/beweging

Als je een tekstbericht als Markdown opmaakt, kun je wel plaatjes in een tekst opnemen, maar dan moet je naar het bestand linken. Alleen ntfy's webinterface ondersteunt dit; de mobiele app toont gewoon de Markdown-brontekst. Een Markdown-bericht stuur je door de header Markdown: yes of Content-Type: text/markdown aan je http POST-aanvraag toe te voegen. Ntfy ondersteunt overigens alleen beperkte Markdown-functies, zoals vette en schuine tekst, lijsten, links en afbeeldingen.

Je services kunnen ook plaatjes naar ntfy sturen.

Acties

Je ontvangt de notificaties van ntfy in de app in een 'conversatie' per onderwerp. Wanneer je op een notificatie tikt, kopieert dit standaard gewoon de tekst van het bericht naar het klembord. Als je de header Click: URL toevoegt, opent de app die url wanneer je op de notificatie tikt. Zo kun je in een notificatie van je back-upscript bijvoorbeeld een link naar de webinterface van je back-upserver opnemen om het gemelde probleem snel te onderzoeken.

Je kunt ook tot drie 'actieknoppen' definiëren, die dan onderaan een notificatie verschijnen. Door op een van die knoppen te tikken, open je een website of app, activeer je een Android broadcast intent waarop andere apps dan weer kunnen reageren, of zend je een http POST-, PUT- of GET-aanvraag. De manier om dit alles te definiëren is wat omslachtig, maar wordt volledig in de documentatie van ntfy uitgelegd.

Klik op een van de knoppen van het bericht in ntfy om een actie uit te voeren.

Python-code

Curl is natuurlijk niet de enige tool waarmee je notificaties naar je ntfy-server kunt sturen. Sommige tools bieden rechtstreeks ondersteuning voor notificaties via ntfy. Dan hoef je alleen maar het domein van je server, het onderwerp, de gebruikersnaam en het bijbehorende wachtwoord in te vullen. Maar ook in je eigen Python-scripts kun je eenvoudig ondersteuning voor ntfy inbouwen. Dat gaat via het pakket Requests, waarmee je http POST-aanvragen naar de server stuurt. Een eenvoudig voorbeeld ziet er als volgt uit:

import requests

requests.post("http://ntfy.example.com/backup",

    data="Backup unsuccessful",

    headers={

        "Authorization": "Basic Z2VicnVpa2Vyc25hYW06d2FjaHR3b29yZA==",

        "Title": "Backup failure",

        "Priority": "urgent",

        "Tags": "warning,skull"

    })

Met de header Authorization stel je http Basic-authenticatie in. De tekenreeks die na Basic komt, is een Base64-codering van de gebruikersnaam en het wachtwoord met een dubbele punt ertussen. Je creëert die codering op je Linux-systeem met de opdracht echo "Basic $(echo -n 'gebruikersnaam:wachtwoord' | base64)".

Sssssssssschattig

Speciaal voor de kleinste Python-fans

En verder

Ntfy biedt een betrouwbare manier om notificaties van allerlei services te centraliseren, terwijl je zelf de volledige controle behoudt. Het programma blinkt uit in flexibiliteit om het overal in te integreren. Als een service bijvoorbeeld geen http POST-aanvragen ondersteunt, kun je ook http GET-aanvragen doen. En als een service je niet de mogelijkheid geeft om de headers aan te passen, laat ntfy je toe om de berichten inclusief headers in JSON-formaat door te sturen. En als een service webhooks ondersteunt maar daarvoor zijn eigen JSON-formaat gebruikt, kan ntfy die met berichtsjablonen omzetten naar leesbare berichten.

Ook via e-mail is ntfy te integreren. Je kunt bijvoorbeeld berichten die op je ntfy-server aankomen automatisch laten doorsturen naar een SMTP-server om ze ook als e-mail te ontvangen. Maar ook de andere richting is voorzien: ntfy kan dan zelf een ingebouwde SMTP-server draaien, handig voor services die alleen maar notificaties via e-mail ondersteunen. Elk onderwerp op de ntfy-server heeft dan een bijbehorend e-mailadres op je domein. De service hoeft dan alleen maar een e-mail naar dat adres te sturen om berichten op dat onderwerp te publiceren op je ntfy-server. Deze en andere geavanceerde functies zijn uitgebreid gedocumenteerd op de website van ntfy.

De documentatie van ntfy is uitgebreid en praktisch. 

▼ Volgende artikel
Nieuwe FromSoftware-game The Duskbloods komt echt alleen naar Switch 2
Huis

Nieuwe FromSoftware-game The Duskbloods komt echt alleen naar Switch 2

The Duskbloods, de nieuwe game van Elden Ring- en Dark Souls-ontwikkelaar FromSoftware, zal echt alleen op Nintendo Switch 2 uitkomen.

Dat heeft de ontwikkelaar benadrukt bij het bekendmaken van zijn kwartaalcijfers (via VGC). Daarbij werd ook nog eens benadrukt dat The Duskbloods nog altijd gepland staat om ergens dit jaar uit te komen, net zoals de Switch 2-versie van Elden Ring.

Over de exclusieve Switch 2-release van The Duskbloods: "Het wordt verkocht via een samenwerking met Nintendo, met verkoopverantwoordelijkheden verdeeld per regio. De game komt alleen voor Nintendo Switch 2 beschikbaar." Daarmee is dus duidelijk gemaakt dat Nintendo een nauwe samenwerking met FromSoftware is aangegaan voor de game en dat het spel niet zomaar op andere platforms uit zal komen.

Over The Duskbloods

The Duskbloods werd begin vorig jaar aangekondigd in een speciale Nintendo Direct waarin de eerste Switch 2-games werden getoond, maar sindsdien zijn er geen nieuwe beelden van het spel uitgebracht. Zoals gezegd is de game ontwikkeld door FromSoftware, het Japanse bedrijf dat naam voor zichzelf heeft gemaakt met enorm uitdagende spellen, waaronder de Dark Souls-serie en Bloodborne. Met de openwereldgame Elden Ring scoorde de ontwikkelaar enkele jaren geleden nog een megahit.

Watch on YouTube

The Duskbloods wordt een PvPvE-game, waarbij spelers het dus tegen elkaar en tegen computergestuurde vijanden opnemen. Maximaal acht spelers doen aan potjes mee. Na het kiezen van een personage in een hub-gebied wordt men naar een gebied getransporteerd waar er met andere spelers en vijanden gevochten wordt, al kan men soms ook samenwerken om vijanden te verslaan.

Spelers besturen een 'Bloodsworn', wezens die dankzij een speciaal bloed dat in hun lichaam zit meer krachten tot hun beschikking hebben dan reguliere mensen. Ondertussen is het einde van de mensheid nabij, en bestaat de wereld uit verschillende tijdperken, wat voor een mengelmoes van stijlen zorgt.