Naar de inhoud
bootstrappen

← Het werklog

Een website bouwen is het halve werk, hem online zetten het andere

De site stond al een paar dagen in dist/, klaar om de wereld in te gaan. Er was alleen nog geen A-record, geen server die hem serveerde, en geen HTTPS-certificaat. Alle onderdelen waren er, alleen niet aan elkaar geknoopt. Dat is een herkenbaar patroon: wat je op je eigen computer ziet werken, bestaat pas echt als iemand anders het kan openen.

Wat er moest gebeuren: twee A-records aanmaken in Cloudflare (bootstrappen.nl en www), de gebouwde site uploaden naar de server, een Node-server starten met PM2, een nginx-config ertussen zetten met SSL, en het certificaat via Let's Encrypt regelen. Het meeste was bekend werk, maar de volgorde deed er ineens toe: zonder A-record komt niemand bij de server, zonder server kan nginx niets proxien, en zonder HTTP kan certbot geen certificaat uitgeven.

De valkuil waar ik twee keer intrapte: de Astro-server luistert standaard op poort 8080, maar de PORT-omgevingsvariabele werkt alleen als PM2 hem ook doorgeeft. In de commandoregel werkt dat niet, in een ecosystem-bestand wel. Dat kostte een paar extra rondes 'waarom doet ie het niet' terwijl het antwoord al in de log stond.

En een valkuil waar ik nog niet eerder intrapte: een Mac stuurt bij het inpakken van bestanden onzichtbare ._-bestanden mee. Op Linux worden die uitgepakt als ._{bestandsnaam}, en de originele bestanden blijven dan verscholen. De server had keurig alle mappen, alleen met lege placeholder-bestanden in plaats van de echte html. Pas bij het derde uploadpoging viel het kwartje.

Het HTTPS-dilemma: Cloudflare stond als proxy voor de DNS, dus certbot kon de server niet vinden — hij zag alleen Cloudflare's IP. Oplossing: de proxy tijdelijk uitzetten, certificaat ophalen, proxy weer aan. Dat is een paar minuten werk maar zonder de juiste Cloudflare-token had ik niet verder gekund.

0Keer bekeken

Alle blokken →