Achtergrond: Techniek voor nerds
De website die je nu bezoekt staat niet geparkeerd in één of andere vage cloud van een twijfelachtige amerikaanse webdienst. Nee: je bezoekt nu letterlijk het huis van het bruidspaar. Erik-Jan was er maar druk mee. Voor wie dat leuk vind lees je hieronder een uitleg hoe de site werkt. Dit is allemaal niet relevant voor de bruiloft verder, maar wel lekker nerdy.

Stap 1: Hardware
Om je eigen website te draaien heb je een computer nodig die continu aan staat. Een logische keuze zou zijn om hier een NAS voor te gebruiken want die zijn daar op gebouwd. Maar nee, het moest een zelfbouw mini-PC worden die ook gebruikt wordt om allerlei andere diensten op te draaien zoals Home Assistant om slimme apparaten lokaal te besturen, Nextcloud voor foto's en documenten en Kodi voor streaming en TV. Op de foto zie je de zelf in elkaar gezette behuizing die in een hoekje naast de router staat. Wat er in het kastje zit? Een Hardkernel Odroid H3 single board computer uitgerust met 256 GB NVME + 2 TB SSD en 64 Gb RAM. Een pluspunt is dat deze single board computer niet zo veel stroom verbruikt in standby. De netwerk-kant zit ook wel snor: zowel de Odroid als de router hebben een 2.5 GB/s poort.

Voor alle specs van deze SBC kun je hier terecht.
Software
Er zijn verschillende manieren om dingen te hosten. Ik heb - op aanraden van de kenners in de Nurdspace - gekozen voor Docker. Hier leerde ik dat een thuisserver is niet iets wat je instelt en dat het dan werkt, maar een soort tamagochi die telkens weer dingen moet. Updates, reboots, conflicten die opgelost moeten worden, iets met DNS, etc. Een hobby erbij, Jeej!! Dus dan kan je maar beter een omgeving kiezen waarin dat een beetje handig te regelen is. In mijn docker config draaien ondertussen 26 diensten.

Voor deze website had ik daar 3 verschillende containers/programma's voor nodig:
- Het CMS (Content Management Systeem) waarin je pagina's, posts en layouts kunt maken en beheren. Er zijn verschillende open-source programma's beschikbaar waarvan de bekendste WordPress is. Zelf heb ik gekozen voor een wat kleinere, en meer modern programma van een aantal mensen uit het Wordpress team: Ghost CMS.

- De reverse proxy zorgt ervoor dat alle content die met Ghost gemaakt is op een snelle en betrouwbare manier uitgeserveerd wordt, Nginx en Apache zijn daar de de go-to programma's voor. Normaal gesproken is de nginx proxy wat tussen de content en de domeinnaam op het internet in staat, maar in dit geval wijst het naar localhost:280.
- Op de Nurdspace draait een Pangolin server. Het team achter pangolin heeft een volle bingokaart aan IT-termen nodig om dit stukje software te beschrijven. De makers: "Pangolin is a self-hosted tunneled reverse proxy server with identity and access control, designed to securely expose private resources on distributed networks¨ . Simpeler gezegd: Dit is waar de website de s in https meekrijgt, en waarom ik niet zo bang ben dat de trouwwebsite gehacked wordt. De verbinding met de Pangolin server in de Nurdspace draait via een "tunnel" die Newt heet.
Hosting
Dit is het minst spannende gedeelte eigenlijk, op allerlei websites kun je een domeinnaam kopen en - verrassend genoeg - was banaanweb.nl nog beschikbaar. Het leuke van een eigen domeinnaam hebben is dat je met voorvoegsels eigenlijk veel meer dan 1 website kunt hebben. Je bent nu op bruiloft.banaanweb.nl maar er is ook bijvoorbeeld een nextcloud.banaanweb.nl waar Irene en ik een soort van google-drive / teams achtige omgeving hebben. Binnenkort hoop ik een eigen AI chatbot te hosten. Je raad het al: die krijgt ook z'n eigen banaanweb URL.
Hoe weet je dit allemaal?
De helft is aanprutsen en YouTube tutorials volgen, maar de andere helft zijn de vriendelijke computer-heads van de Nurdspace. Wanneer ik het kapot maak dan hoor ik op de woensdagavond in de Nurdspace hoe het weer te repareren. En die Pangolin server had ik zelf echt nooit kunnen bedenken of opzetten.




Een sfeerimpressie van de Nurdspace: Niet alleen met computers wordt er geharkt, maar ook met powertools en frikandellen. (computers--)
Over prutsen gesproken: Ik wil je vooral meegeven om zelf lekker te gaan prutsen met techniek. En vooral door te blijven prutsen als het kapot gaat of niet in 1x lukt. Voordat ik dit kon maken heb ik een paar jaar geleden eerst met een 32-bit Asus eee-box en Ubuntu 18.04 geprobeerd een LAMP servertje te bouwen. Dat was toen te hoog gegrepen maar ik heb daar wel van geleerd hoe het dan wél kan (en hoe SSH, bash en permissions in unix-omgevingen werken).
Ik zou zelfs willen zeggen dat je meer leert van prutsen (en nog meer van samen prutsen!) dan van het lezen van de handleiding, maar ik heb geen handleidingen of documentatie echt gelezen voor het maken van dit alles ;) . Wat het getrouwde leven ons ook gaat brengen: E-J prutst, tweakt, harkt, klust en knutselt trots door.
