Om de GitHub-koppeling in DirectAdmin te testen, bouwden we iets echts: een statuspagina voor een hostingmerk. Statisch, geen build-stap, met de status in een JSON-bestand. De vraag: hoe snel staat een wijziging live na git push?
De opzet
- Subdomein aanmaken met DNS, SSL en een eigen map.
- Repository op GitHub met
index.html,styles.css,app.jsenstatus.json. - Koppelen via het GitHub-tabblad in Invoker Link: repository invullen, deploy key toevoegen, branch
main, de website zelf als doel. - Webhook op GitHub, push-event.
Een incident melden werkt zo: status.json aanpassen en pushen. De pagina leest dat bestand en toont de status per dienst. Laadtijd en reactietijd meet de pagina live in de browser van de bezoeker.
De meting
We pasten het tijdstip "bijgewerkt" in status.json aan, pushten, en vroegen elke drie seconden het bestand op van de live website.
LIVE na 3s: 2026-09-14T22:22:49+02:00
Bij GitHub stond de delivery met status 204. Geen deploy-knop, geen FTP, geen build-server.
Wat er gebeurt in die 3 seconden
- GitHub stuurt na de push een webhook naar de server.
- DirectAdmin haalt de nieuwe commits op in zijn eigen kopie van de repository.
- De bestanden van de branch worden in de map van het subdomein gezet, zonder
.git-map.
Hoe DirectAdmin dat technisch doet, schreven we op in DirectAdmin Git-API.
Wat er onderweg misging
Niet alles ging in één keer goed, en dat is precies waarom we het zelf testen.
Het subdomein stond er niet tussen. DirectAdmins Git-functie werkt alleen op hoofddomeinen. Daardoor kwam de statuspagina eerst in de hoofdmap van het domein terecht, in plaats van op het subdomein. De oplossing: de repository onder het hoofddomein registreren, met het subdomein als doelmap.
Een echte homepage werd aangezien voor een standaardpagina. Om DirectAdmins placeholder-pagina niet in de weg te laten staan, zette de koppeling elke index.html opzij. Ook een echte pagina die er al stond. Die was veilig bewaard en binnen een paar minuten terug, maar het mocht niet gebeuren. Nu telt alleen DirectAdmins eigen placeholder als leeg, en bestanden die overschreven zouden worden, worden eerst bewaard.
Een deploy key met schrijfrechten. Bij het toevoegen op GitHub stond "Allow write access" aan. Voor deployen is lezen genoeg. De handleiding zegt het nu duidelijker.