ID.nl logo
Nas-schijf stuk of vol? Zo vervang je hem
© Reshift Digital
Zekerheid & gemak

Nas-schijf stuk of vol? Zo vervang je hem

Nieuwe schijven in je nas plaatsen doe je op twee momenten, als alle schijven vol zijn of als een schijf defect is. In beide gevallen moet je beseffen dat een harde schijf in een nas onderdeel is van een complex opslagsysteem. Zomaar een schijf eruit halen en een andere erin, is geen goed idee. Het vervangen van schijven in een nas doe je namelijk volgens bepaalde regels. Maar met de juiste kennis en informatie kun je een schijf in je nas zo vervangen.

Een nas is gemaakt om ergens in huis, stil zijn werk te doen. Meer dan elektriciteit en een netwerkkabel is niet nodig. En verder hoef je alleen periodiek een update te installeren of wil je misschien zelf een nieuwe package installeren. Er zijn twee gevallen waarin de nas wél meer aandacht nodig heeft en dat is als de opslag vol raakt of als de opslag defect is. Beide zijn situaties waarin je meteen aan de slag moet om de schijven te vervangen. Een klusje waar niemand echt naar uitkijkt, al was het maar omdat het geld kost en er altijd het risico is op gegevensverlies. En dat laatste wil nou net niemand meemaken. In dit artikel laten we je diverse dingen zien die je moet doen om je nas in te stellen, we gaan hierbij uit van de menustructuren van Synology en QNAP, die veel op elkaar lijken. Andere nas-fabrikanten bieden uiteraard vergelijkbare opties, maar die kunnen net anders heten.

01 Signalen ontvangen

Doordat een nas meestal buiten het zicht staat, blijven signalen dat er problemen zijn met de opslag vaak lang onopgemerkt. Snelheid is echter belangrijk, want hoe eerder je het probleem oplost hoe groter de kans dat je geen gegevens verliest. Een nas heeft maar een beperkt aantal middelen om jouw aandacht te vragen. De eerst is door een waarschuwing te sturen via e-mail of sms, maar dit werkt alleen wanneer het eerder en correct geconfigureerd is. En dat is vaak niet het geval. Wat wel altijd werkt zijn geluid- en lichtsignalen. Heeft de nas echt aandacht nodig, dan laat het allereerst elke paar seconden een duidelijk geluidsignaal horen en ook laat het de HDD-led oranje of rood te knipperen. Zie of hoor je deze waarschuwingen, kom dan direct in actie.

©PXimport

02 Eerst analyse

Log allereerst in op de webinterface van de nas. Mogelijk krijg je direct al een melding te zien over de problemen, mogelijk moet je eerst het onderdeel Meldingen of Logboeken openen. Kijk naar de Fouten en Waarschuwingen met betrekking tot de opslag. Open daarna de Opslagmanager of het Opslagbeheer en kijk naar de specifieke informatie over de configuratie van de opslag. Hierbij geldt: ‘alleen kijken en niets aanpassen’, want zeker als het gaat om een defecte schijf, kan elke wijziging het systeem verder in problemen brengen. Check ook de S.M.A.R.T.-status van de individuele schijven. S.M.A.R.T. is een systeem dat de vele tellers van een harde schijf uitleest en beoordeelt of een harde schijf nog wel gezond is. Vaak ziet S.M.A.R.T. al problemen aankomen voordat de opslag er echt door geraakt wordt. Dan ben je mooi op tijd om in te grijpen. Mocht de nas al wel in problemen zijn, via Configuratiescherm / Algemeen kun je het geluidssignaal uitschakelen.

©PXimport

03 Wat je niet moet doen

Minstens zo belangrijk als wat je wél moet doen op het moment dat er problemen zijn met een nas, is wat je juist níet moet doen. Om de gegevens op de nas te beschermen, moet je de activiteit van de nas zo veel mogelijk beperken. De kans is groot dat je wanneer je na langere tijd weer inlogt op de nas, een firmware-update wordt voorgesteld: niet doen! Updaten van packages: niet doen! Nieuwe packages installeren: niet doen! Alles wat geen bijdrage levert aan het vervangen van de schijven of het herstel van de opslag, moet wachten. Eerst moet de nas weer stabiel zijn.

©PXimport

04 Wat staat erop?

Voordat je verder gaat, is het belangrijk te weten of er bestanden op de nas staan die je niet wilt kwijtraken en die nergens anders staan? Zo ja, dan moet je er dus echt alles aan doen om gegevensverlies te voorkomen. Is de opslagruimte wel gezond, maar gewoon te vol, dan kun je eerst proberen overbodige bestanden te verwijderen. Misschien is na een goede opschoonactie de hele schijfupgrade niet meer nodig of kan het een paar maanden worden uitgesteld. Maar als de opslag door een defecte schijf in gevaar is, moet je vooral níet gaan opschonen, omdat elke schrijfbeweging voor de defecte harde schijf het echte einde kan betekenen. Start daarom de FileStation en loop eens door de mappen en bestanden op de nas. Wat staat er en hoe belangrijk is het. Als de nas nog wel gezond is, kun je ook de nas de opslag laten inventariseren via de Opslag-analyser of een soortgelijke functie zoals Systeembronnen / Opslagbron / Opslagruimte bij QNAP.

©PXimport

05 Is er een back-up?

We raden aan éérst een back-up te maken van de gegevens op de nas (zie ook kader ‘De nas back-uppen?’), voordat je met de nas-schijven aan de slag te gaat. Dit geldt zeker wanneer de nas unieke informatie bevat, bestanden die je nergens anders meer hebt. Is de nas gezond, maar alleen de opslag vol, dan is het maken van een back-up zeker raadzaam. Is de opslag in de nas defect of nadert een schijf volgens de S.M.A.R.T.-informatie zijn einde, dan is het maken van een back-up een afweging tegen het risico dat het uitvoeren van een back-up de nas nog instabieler maakt. Gelukkig zijn er steeds meer mogelijkheden om een nas te back-uppen, bijvoorbeeld naar een externe schijf of een Tandberg Data RDX QuikStor, maar ook de cloud. Sommige van deze back-upfuncties werken direct vanuit het besturingssysteem, voor andere moet je een extra package installeren. Had je zo’n package op het moment van de problemen nog niet geïnstalleerd, dan is het niet verstandig dat alsnog te doen als de opslag corrupt of defect is.

©PXimport

De nas back-uppen?

De beste maatregel tegen gegevensverlies is ook bij een nas het hebben van een back-up. Een back-up van een nas klinkt voor sommige mensen onlogisch omdat zij de nas zelfs als back-up zien. Maar dat is het juist níet! Bij back-ups geldt de 3-2-1-regel: 3 back-ups, op 2 fysiek verschillende media, waarvan 1 buitenshuis. Staan de back-ups van alle pc’s en andere apparaten alleen op de nas, dan voldoe je niet aan regel twee en drie van een goede back-up. Door de nas ook te back-uppen los je dat op, de gegevens komen dan op een tweede apparaat dat ook nog eens buitenshuis bewaard kan worden.

©PXimport

06 Hoeveel opslagruimte

Hoewel we nog niet zover zijn om schijven te wisselen, is het wel noodzakelijk te weten hoeveel gegevens er op de nas staan. De regel is dat de nieuwe schijf (of schijven) van de nas minimaal dezelfde opslagcapaciteit moeten opleveren als er nu is. Kleiner kan niet, en evenveel opslag alleen in geval van een defecte schijf, al kun je ook dan met een grotere schijf prima uit de voeten. Als je wilt weten hoeveel opslagruimte er nu is en wordt gebruikt, kijk dan in het onderdeel Opslagbeheer of Opslagmanager, of gebruik de Synology Opslag-analyser of bij QNAP Systeembronnen / Opslagbron / Opslagruimte voor meer inzicht. Om te zien welke schijven er in de nas zitten, kijk je bij Opslagbeheer / HDD/SSD of Opslag en opslagmomenten / Opslag / Schijven.

©PXimport

07 Gegevensbescherming

Het volgende om uit te zoeken is de inrichting van de opslagruimte op de nas en of daarbij is gekozen voor extra bescherming van de bestanden op de nas tegen hardware-falen zoals een defecte harde schijf. Bij het configureren van de opslagruimte op een nas zijn er drie opties: jbod, raid0 en raid1 én hoger. Bij jbod en raid0 is er geen extra bescherming tegen hardware-falen. Gaat een schijf stuk, dan is de héle opslagcapaciteit verloren en daarmee alle bestanden. Bij jbod en raid0 kun je dus niet zomaar een schijf vervangen door een andere. Dat kan min of meer wel bij raid1, raid5, raid6 en raid10. Dit zijn allemaal raid-varianten waarbij de gegevens zo op de schijven zijn opgeslagen dat wanneer één van de schijven stuk gaat, je geen gegevens verliest. Maar dat geldt dus alleen voor raid1, raid5, raid6 en raid10. Heb je gegevensbescherming, dan maakt dat het straks mogelijk schijven één voor één te vervangen door nieuwe of grotere. Zonder gegevensbescherming is die optie er niet.

©PXimport

Automatische raid

Met raid kun je de gegevens op een nas beschermen tegen het falen van één of meer harde schijven. Daarvoor moet je de juiste raid-variant kiezen en dat is niet altijd even makkelijk. Een aantal nas-fabrikanten biedt daarom een ‘slimme’ raid-mogelijkheid waarbij de nas op basis van de aanwezige schijven zelf bepaalt wat de beste raid is én waarbij het ook mogelijk is schijven van verschillende grootte te gebruiken. Bij Synology heet dit SHR (Synology Hybrid Raid), bij Netgear X-RAID. Dit werkt prima, maar bij een defecte schijf heb je gevoelsmatig minder zekerheid welke raid door de nas is gekozen en wat jij dus moet doen om de schijf te vervangen. Heb je na de eerste configuratie nog geen schijven vervangen dan kun je er bijna vanuit gaan dat bij twee schijven voor raid1 is gekozen en bij vier schijven en meer voor raid5. Moet je het raid-systeem herstellen, log dan in op de webinterface van de nas en controleer de raid-indeling bij Opslagbeheer of Opslagmanager en volg de aanwijzingen van de nas om het systeem te herstellen.

08 Schijf verwijderen

Om de opslagcapaciteit uit te breiden of te herstellen in geval van een defecte schijf, zullen een of meer schijven verwijderd moeten worden. Belangrijk hierbij is of de nas, ‘hot-swappable’ is of niet. Dit kun je nakijken in de specificaties van de nas. Is de nas hot-swappable, dan hoef je de nas niet uit te schakelen om de defecte schijf eruit te halen en de nieuwe schijf te plaatsen. Is de nas niet hot-swappable, dan moet je eerst inloggen op de webinterface en via het menu de nas netjes uitschakelen. Is de nas helemaal uitgeschakeld, verwijder dan de defecte schijf, plaats de nieuwe en start de nas weer op.

©PXimport

09 Raid0 en jbod ‘uitbreiden’

Wil je de opslag uitbreiden en is er een jbod- of raid0-indeling gebruikt, dan moeten de schijven vervangen worden door nieuwe met meer opslagcapaciteit. Zodra je de eerste schijf eruit haalt, zal de nas de totale opslagcapaciteit kwijtraken en de toegang tot alle bestanden. Zodra de nieuwe schijven zijn geplaatst, is het zaak de opslagcapaciteit opnieuw in te richten en dit keer liever met een indeling die wel extra gegevensbescherming biedt. Je kunt dit wanneer de nas hot-swappable is doen terwijl de nas is ingeschakeld, maar omdat toch de hele opslag niet toegankelijk is, kun je net zo goed de nas eerst uitschakelen. Nummer elke schijf die je uit de nas haalt corresponderend met de positie die de schijf in de oude configuratie innam.

©PXimport

10 Raid1 en hoger uitbreiden

Is de nas ingericht met raid1 of hoger, dan is er dus gegevensbescherming. Dit werkt in je voordeel. Je kunt telkens één schijf vervangen door een nieuwe en daarna de nas de opslagcapaciteit laten herstellen. Begin met de schijf met de kleinste opslagcapaciteit of indien de schijven allemaal dezelfde capaciteit hebben, gewoon de eerste in de nas. Nadat de nieuwe schijf is geplaatst, start je de herstelprocedure van het opslagvolume. Klik op Beheren / Herstellen en volg de stappen van de wizard. De nas zal de schijf leegmaken en daarna het raid-systeem herstellen. Dit laatste kan uren duren en soms wel meer dan een dag. Laat de nas rustig zijn werk doen en wacht geduldig tot de herstelactie is afgerond. Daarna verwissel je pas de volgende schijf, opnieuw de dan kleinste of de volgende in de nas indien ze allemaal gelijk zijn. Pas als alle schijven zijn vervangen én de raid opnieuw is hersteld, kun je de volledige nieuwe opslagcapaciteit benutten.

©PXimport

11 Defecte schijf bij raid0 en jbod

Wil je niet de opslagcapaciteit uitbreiden, maar is er een schijf defect, dan is de remedie bij raid0 en jbod heel eenvoudig: uithuilen en opnieuw beginnen. Raid0 en jbod bieden géén gegevensbescherming, dus zodra een schijf echt stuk is, is alle opslag verloren. De procedure is daarmee dezelfde als voor het uitbreiden, alleen kun je nu volstaan met het vervangen van alleen de defecte schijf. Waren de schijven ongeveer gelijktijdig gekocht, houd dan rekening met de mogelijkheid dat ook een volgende schijf spoedig de geest kan geven. Alle schijven vervangen kan dan de verstandigere optie zijn.

©PXimport

12 Defecte schijf bij raid1 en hoger

De werkwijze bij een defecte schijf in geval van een raid1 of hoger, is gelijk aan die bij het uitbreiden van de opslag. Alleen vervang je nu niet de kleinste schijf, maar de defecte schijf en kun je volstaan met een schijf van gelijke opslagcapaciteit. Is de schijf geplaatst, dan moet je ook nu de herstelprocedure starten via Beheren / Herstellen en moet elke verdere actie wachten tot het volume is hersteld.

©PXimport

Bekijken via Windows

Schijven in een nas worden veelal geformatteerd met een ext3, ext4, xfs of btrfs of nog andere indeling. De nas (Linux) kan daar prima mee overweg, een Windows-computer niet. De schijven uit de nas halen en middels een usb-dockingstation of een sata-poort op het moederbord aan de computer koppelen en de bestanden kopiëren, dat kan dus niet zomaar. Daarvoor is software nodig die de onbekende schijfformattering kan lezen én de raid-informatie begrijpt. Zulke software is er, bijvoorbeeld UFS Explorer, ZAR en Home NAS Recovery. De software is niet gratis en we hebben er zelf geen ervaring mee. Om de software te gebruiken, moeten de schijven uit de nas gehaald. Schakel hiervoor de nas uit én heel belangrijk, nummer elke schijf die uit de nas komt op een manier dat de hele set altijd weer in de juiste volgorde teruggeplaatst kan worden.

Helpdesk

Gegevensverlies is erger dan een beschadigd ego. Neem in geval van twijfel of onzekerheid over een probleem met de nas gerust contact op met de helpdesk van de nas-fabrikant. Zij hebben veel ervaring met problemen die zich kunnen voordoen. Bovendien biedt een aantal nas-merken de mogelijkheid een techneut op afstand op jouw nas te laten meekijken en dingen te repareren. Bij Synology regel je dat via het Ondersteuningscentrum, QNAP heeft hiervoor de Helpdesk-functie.

©PXimport

▼ 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.