Sinds het begin van dit jaar heb ik veel tijd geïnvesteerd in het opzetten van een aantal self-hosted tools. Self-hosted wil zeggen dat je bepaalde software, doorgaans open-source software, zelf installeert op een server die jij beheert of die van jou is. In dit artikel leg ik uit waarom, hoe en wat ik self-host en waarom het vrijheid oplevert.

Waarom self-hosten

Privacy

Alles wat je aan online diensten en 'cloud-services' gebruikt staat op een computer ergens in de wereld. Of zoals de bekende meme gaat: The cloud is just someone else's computer.  Wat er dan precies met jouw data (en meta-data) gebeurt weet je dus nooit precies. Zeker bij closed-source software, waarbij de broncode dus niet openbaar is en daardoor ook niet in te zien is wat er allemaal 'gebeurt', is het onduidelijk hoe ze om gaan met jouw gebruik van een bepaald programma. Er zijn tal van voorbeelden zoals Zoom, maar ook Facebook en Google die alle acties die je doet opslaan. Vaak kijken ze niet naar de inhoud van je berichten of foto's, maar hebben ze aan de meta-data al genoeg. Metadata gaat niet over 'wat', maar wel over met wie je communiceert, hoe vaak, hoe lang, wanneer, vanaf welke locatie of apparaat. Wanneer je zelf je software kunt hosten en dus ook de data in eigen beheer houdt, weet je zeker dat de data a) van jou blijft en b) door niemand gezien of gebruikt wordt.

(On)afhankelijkheid

Daarnaast betekent het zelf hosten van software ook dat je niet afhankelijk bent van die diensten. Wanneer er bij hen iets mis gaat, ben je in het slechtste geval je data kwijt. Of wanneer zo'n dienst er plotseling mee stopt, dan moet je zelf weer zorgen dat je ergens anders terecht kunt. Een bekend voorbeeld is Wunderlist. Dat was een sympathieke club ontwikkelaars uit Berlijn die een goede en gebruiksvriendelijke to-do app gemaakt hadden. Microsoft kocht ze op, integreerde wat van de functionaliteit in hun eigen todo-app en trok de stekker uit Wunderlist.

Nerd-factor en 'het open internet'

Tot slot vind ik het fantastisch dat er mensen over de hele wereld samen werken om hun (en jouw) 'problemen' op te lossen. Open source software staat bijna gelijk aan het samen delen en samen ontwikkelen van oplossingen. Communities als Bitbucket en Github faciliteren deze samenwerking op een prachtige manier, waardoor iedereen kan bijdragen aan open-source projecten. Wanneer ik soms door 'bug-reports' (meldingen van foutjes in een programma) browse dan vind ik het vaak prachtig om te zien hoe mensen samen aan het speuren zijn naar de fout. Waarna ze samen tot een verbetering komen die leidt tot een nieuwe versie van het programma. Diezelfde gemeenschapszin drijft het 'vrije internet'. Er zijn gelukkig nog steeds veel plekken op het internet waar mensen anderen proberen te helpen, niet alleen met Open Source software, maar ook met inzichten, tips en adviezen. Reddit is in die zin een prachtige bron van kennis, niet alleen voor de laatste kattenfilmpjes, maar bijvoorbeeld ook over Personal Finance, de reparatie van je espressomachine of het bouwen van een zonnepaneelinstallatie.

Hoe ik self-host

In het vorige kopje staat ook nerd-factor. Dat heb je wel een beetje nodig. Je moet het leuk vinden om ergens in te duiken, je hoofd te stoten, eens opnieuw te moeten beginnen en soms je hele werk weg te moeten gooien. Tegelijkertijd is dat ook een van de lastige punten van Self-hosten (ik gebruik het nu maar even als werkwoord); de vereiste kennis van technische systemen, zoals databases, servers met hun ssh-toegang, zorgt voor een hoge drempel voor het 'grote publiek'. Echter zijn er wel enkele initiatieven die dit steeds makkelijker maken. Zo draai ik zelf een aantal programma's op mijn Synology NAS.

Synology NAS

Een NAS is een harde-schijf die aan je netwerk hangt, althans zo begon het ooit. De laatste jaren zijn het eigenlijk steeds betere, snellere en zuinigere computers geworden, waardoor ze beter te beschrijven zijn als thuisserver. Een bekend merk is Synology en in mijn optiek blinken ze uit in de software pakketten die ze standaard aanbieden. Niet alleen kun je je bestanden erop zetten, je kunt ze als media-server gebruiken, ze hebben een heel eigen Office pakket en een erg goed alternatief of je fotocollectie te beheren (en te back-uppen vanaf je mobiele telefoon). Voor de echte geeks is er ook goed nieuws, want je kunt Docker-containers draaien op een Synology NAS. Oei, dit wordt echt een technische blog nu. Anyway, Docker stelt je in staat om super veel open source pakketten zelf te draaien, zonder dat je moet gaan kloten met versies, conflicten en instellingen.

Raspberry Pi

Naast mijn Synology NAS gebruik ik een Raspberry Pi, het bekende mini-computertje.  Ook een prachtig ding want het is klein, efficiënt en kost 'niets'. De capaciteit van een Raspberry Pi is natuurlijk minder dan van een 'echte server' of van een NAS, maar het is perfect om te experimenteren en is inwisselbaar: bij problemen vervang je bijvoorbeeld de SD-kaart, herinstalleert de software of vervangt de Raspberry Pi.

VPS Server

Dit is een server die in de 'cloud' draait. Het is dus geen apparaat dat je thuis hebt staan, maar zoals de naam (Virtual Private Server) is het een stukje van een cluster servers waar jij gebruik van mag maken. Zie het als een computertje waar je mee kunt doen wat je wilt, maar die ergens op een super efficiënte server boerderij staat. Per maand betaal je een klein bedrag (afhankelijk van de skills en capaciteit) en je kunt los.

Een aantal Raspberry Pi's in mijn eigen meterkast.

Wat ik self-host

Ja mooi allemaal. Maar nu misschien even wat concrete voorbeelden.

  • Met Home Assistant bestuur en monitor ik ons huis. Het zorgt er voor dat de lampen aan gaan wanneer het donker is en dat we een melding krijgen wanneer de wasmachine klaar is. Het mooie van Home Assistant is dat het allerlei gesloten systemen aan elkaar kan koppelen: van Philips Hue tot informatie van Buienradar, van kleine sensoren tot zelfgeknutselde deurbellen.
  • Iedereen heeft een wachtwoordmanager nodig, maar het is hele top wanneer je die wachtwoorden ook echt in eigen beheer houdt. Met Bitwarden kan dat. Inmiddels is ons LastPass abonnement opgezegd en gebruiken we Bitwarden op de laptops én mobiele telefoon.
  • Mijn notities maak ik in Joplin, die alles opslaat in een self-hosted webDAV server (op de Synology NAS). Zo weet ik zeker dat al mijn aantekeningen nooit verlies en omdat ze in MarkDown gemaakt zijn, kan ik ze ook met allerlei programma's openen. Naast Joplin heb ik ook BookStack draaien, wat een soort wiki is. Mijn idee daarmee was om wat handleidingen en documentatie op te slaan voor de dingen die ik maak en doe. BookStack is heel tof, maar een beetje te omslachtig voor mijn doel. Voor een team of klein bedrijf is het een absolute aanrader.
  • Op dit moment experimenteer ik, qua notities & knowledge-management system ook met Roam Research, maar dat is dus een web-service met alle afhankelijkheden van dien. Om toch gebruik te maken van de geweldige mogelijkheden van 'bidirectionele links' en de Zettelkasten methode probeer ik ook Obsidian, zodat ik mijn eigen markdown-bestanden weer kan hosten. Over notities, Roam en Zettelkasten komt later vast nog wel een aparte blogpost.
  • Pi-hole is een stuk software dat ik echt iedereen zou willen aanbevelen. Pi-hole, de naam zegt het al, draait op een Raspberry Pi houdt alle advertenties en reclame tegen in je hele thuisnetwerk. Elk apparaat dat via je wifi (of kabel) verbinding maakt, laat dus geen advertenties meer zien. Ik zou absoluut niet meer zonder Pi-hole willen en kunnen. Voor mij laat dit echt de kracht van Open Source en developer-communities zien.
  • Dit weblog is ook self-hosted en draait op Ghost. Ghost heeft een interessant business model waarbij ze je een standaard hosted blog aanbieden, waaraan je dan alleen maar je domeinnaam hoeft te koppelen. Maar ze bieden ook de mogelijkheid om het gratis op je eigen server te installeren. Super sympathiek en ook nog eens echt mooie software.

Overigens is niet altijd het self-host of Open Source alternatief beter. Een poos gebruikte ik Wallabag als read-later service. Daarmee kun je artikelen en URL's opslaan, zodat je ze later kunt terug lezen en kunt archiveren. Echter werkt voor mij Pocket veel beter, onder andere doordat je de opgeslagen artikelen ook op je Kobo e-reader kunt lezen. Een ander voorbeeld was FireFlyIII. Een pakket waarmee je persoonlijke financiën kunt bijhouden en inzichtelijk maken. Voor mij zaten er te veel haken en ogen aan, zodat ik toch weer gekozen heb voor een 'online service'.

Dus...

In deze blogpost heb ik proberen inzicht te geven wat de charme en voordelen van het self-hosten van software kan zijn. Zoals je hierboven hebt kunnen lezen zijn er soms ook wat haken en ogen, of simpelweg betere alternatieven. Deze blogpost is dan ook geen pleidooi dat je alles moet gaan self-hosten, maar als je een beetje een nerd bent en je online-vrijheid hoog in het vaandel hebt staan, dan is het super leuk om er eens in te duiken. Het is een mooie manier om zelf verantwoordelijk te zijn en zelf de controle te hebben.

Dive in tips: Er is een interessant, maar pretty nerdy Self-hosted podcast, een podcast over self-hosten en dus geen self-hosted podcast :). Hoewel dat natuurlijk ook kan! Hier een lange lijst met self-host software pakketten: Awesome selfhosted. Daarnaast is r/selfhosted ook een mooi startpunt.

Noot: Oh ja, let trouwens wel op met wát je allemaal toegankelijk maakt voor het 'hele internet'. Je wilt niet hebben dat iedereen met je URL jouw verlichting kan bedienen of je notities kan lezen. Bedenk goed wat openbaar moet zijn en wat alleen binnen je thuisnetwerk hoeft te functioneren. Daarnaast is het goed je te realiseren dat je ook zelf verantwoordelijk bent dat alles blijft draaien. Zorg ook dat je back-ups maakt.

Laat me weten wat jij self-host of wat je uit wilt gaan proberen: reply@blijvendnieuwsgierig.nl