Het is nu ongeveer anderhalf jaar geleden dat ik een kleine, goedkope mini-pc met Intel N100 kocht om als thuisserver te gebruiken. Ik kan met plezier melden dat hij tot nu toe vlekkeloos draait, slechts een paar watt verbruikt en veel sneller is dan een Raspberry Pi. Ik heb langzaam services toegevoegd, de meeste daarvan draaien als Docker-container:
- De netwerkcontroller voor mijn Omada-netwerksetup. Dit werkt gewoon, dus ik log maar af en toe in op de webinterface om te controleren op nieuwe firmware, om een statisch IP-adres aan een nieuw apparaat toe te wijzen of om de VLAN-toewijzing van een poort te wijzigen. Over het geheel genomen ben ik erg tevreden over deze setup en updates zijn eenvoudig uit te voeren.
- Pi-Hole als advertentieblokkering. Ik gebruik de DHCP-functionaliteit niet, omdat die door de Omada-router wordt geleverd. Pi-Hole blokkeert op alle apparaten uitstekend een groot aantal banneradvertenties. Het is behoorlijk schokkend om te zien hoeveel DNS-verzoeken met advertenties te maken hebben: afhankelijk van wat er gebeurt wordt 25 tot 40% van alle DNS-verzoeken geblokkeerd. Pi-Hole is echt goed doordacht, met één enkele opdracht voor het updaten en een duidelijke webinterface voor beheer en configuratie.
- Home Assistant. Dit verbindt apparaten uit verschillende ecosystemen (Ikea, Sonos, Siemens, Somfy), houdt de energieproductie en het verbruik bij en biedt één dashboard dat ik vanaf al mijn apparaten kan bedienen, in plaats van dat ik een groot aantal apps nodig heb. Het toont ook weer- en openbaarvervoerinformatie. Omdat het in een Docker-container draait, zijn voor een upgrade slechts twee opdrachten nodig. Voor mij is Home Assistant een mooi voorbeeld van wat opensourcesoftware kan bereiken, en ik raad het iedereen aan die geïnteresseerd is in domotica.
- Frigate. Wij hebben een videodeurbel en ik gebruik Frigate als NVR-software. Het koppelt erg goed met Home Assistant en draait eveneens als Docker-container. Met slechts één camera en GPU-versnelling is de CPU-belasting maar een paar procent en blijft het stroomverbruik laag. Een Python-script dat als service draait kopieert automatisch elke clip naar een back-uplocatie.
- Tailormap en Geoserver. Nog een recente toevoeging. Tailormap is een web-GIS-frontend die verbinding kan maken met WMS-, WFS- en tileservers. U hoeft zich geen zorgen te maken over OpenLayers of de beperkingen van Leaflet. Tailormap doet het allemaal, met een gebruiksvriendelijke webinterface voor beheer en een geweldige viewer met onder meer meetfuncties en het openen van Google Streetview. Geoserver wordt gebruikt om geografische gegevens aan te bieden als WFS- en WMS-services. Beide draaien, inclusief hun eigen PostgreSQL-databases, als Docker-container. Ik gebruik dit vooral als testomgeving en om altijd een kaart van het Nederlandse spoorwegnet bij de hand te hebben zonder dat ik QGIS hoef te draaien.
- Een testomgeving met QuestDB en Grafana.
Mijn thuisserver is van buiten het huis niet bereikbaar, tenzij er een Wireguard-VPN-verbinding wordt gemaakt. Voor services die ik via internet bereikbaar wil hebben, gebruik ik een virtuele machine die ik bij een hostingprovider huur. Hierop draaien de volgende services:
- Een webserver. Ik ben van de oude stempel, dus het is Apache en geen NGINX. Hij wordt vooral gebruikt voor het aanbieden van Potree-webviewers, maar kan ook downloads via HTTP verzorgen en als reverse proxy dienen.
- Een FTP-server. Omdat ik veel gegevens met klanten moet uitwisselen, is FTP vaak veel eenvoudiger dan een of andere bestandsdelingswebsite. Een eigen FTP-server met een paar honderd GB opslag is in die gevallen echt fijn. Ik gebruik vFTPd; nieuwe gebruikers toevoegen is vrij eenvoudig, ook al is daarvoor de opdrachtregel nodig.
- Gitlab. Github is prima voor openbare repositories, maar ik wilde mijn versiebeheersysteem echt zelf hosten. Ik gebruik geen van de geavanceerde functies zoals bugtracking of actions, maar het is prettig om te weten dat er altijd een back-up is en de mogelijkheid om terug te gaan naar eerdere versies. De installatie was wat lastig omdat ik mijn bestaande Apache-installatie wilde gebruiken, maar sindsdien werkt het prima en updates gaan via apt.
- ProjectSend. De meeste mensen hier gebruiken Wetransfer, maar ik ergerde me aan de (begrijpelijk) beperkte bestandsgrootte van het gratis abonnement. Na wat rondkijken ben ik bij ProjectSend uitgekomen. Het is niet perfect, maar prima als u er geen moeite mee hebt om meerdere bestanden eerst in één ZIP-bestand te zetten.
- Mijn urenregistratie- en factureringssysteem. Dit is een must voor een freelancer. Ik gebruik Kimai en ben er erg tevreden over. Door dit zelf te hosten bespaar ik veel geld ten opzichte van een commerciële oplossing zoals Exact Online.
- Vikunja. Ik heb zoveel to-do- en Kanban-diensten geprobeerd: Evernote (lang geleden), Trello, Asana, Google Keep, Microsoft Teams, VTiger als CRM en verschillende Obsidian-plug-ins. Ze hadden allemaal beperkingen, vooral als ik bij een gratis abonnement wilde blijven. Obsidian is geweldig en ik gebruik het voor het merendeel van mijn notities, maar voor to-dolijsten en Kanban-borden liet het iets te wensen over. Vikunja heeft die leemte voor mij opgevuld. Ik heb een hoofd-Kanban-bord voor to-do’s, aparte borden voor grotere projecten en nog een bord dat een soort CRM is voor het bijhouden van leads en dergelijke. Het kan zelfs Gantt-diagrammen maken, maar de laatste keer dat ik echt een projectmanagementtool nodig had (en dat was niet eens voor werk, maar voor de verbouwing van een huis) gebruikte ik GanttProject. Vikunja draait als Docker-container.
- Tailormap en Geoserver. Dit zijn de productie-instanties die, anders dan mijn hierboven genoemde testomgeving, overal bereikbaar zijn. Ook deze draaien in Docker-containers, waarbij Apache reverse-proxyservices levert voor toegang via https.
- Een klein Python-script dat een Grafana-instantie op een andere server bewaakt.
- Nextcloud voor bestandssynchronisatie, zodat ik niet langer afhankelijk ben van Google Drive en OneDrive.
- Een Minecraft-server voor mijn zoon. Dit is een speelgoedproject van ons en draait ook als Docker-container.
- Een MegaMek-server, nog een Docker-container.
Zoals je ziet zijn er dus volop redenen om een eigen server te draaien, of dat nu een fysieke computer bij u thuis is of een virtuele machine ergens in de cloud. En u kunt er ook geld mee besparen: veel van de services hier zijn in de cloud beschikbaar, maar elk daarvan gaat gepaard met een abonnementsprijs. Zelf hosten kan goedkoper zijn, terwijl u ook volledige controle over uw gegevens krijgt en onderweg leert over services, containerisatie en virtualisatie.