Ga naar inhoud

Preview-domeinen

Gecontroleerde infrastructuur — 7 september 2026

Section titled “Gecontroleerde infrastructuur — 7 september 2026”
  • Registrar: Squarespace; authoritative DNS: Cloudflare, zone okhema.studio.
  • Nameservers: eva.ns.cloudflare.com en jason.ns.cloudflare.com.
  • DNSSEC actief bij Cloudflare na registratie van het nieuwe DS-record bij Squarespace.
  • De 15 bestaande DNS-records zijn overgenomen, inclusief Squarespace HTTPS, Domain Connect en Resend. Proxy uit.
  • Extra A-record: *.preview.okhema.studio88.99.184.55, TTL 300, DNS only.
  • Coolify 4.3.17, Traefik 3.6.8, Docker Compose 2.32.4 op de server via SSH-alias coolify.

De bestaande resolver letsencrypt blijft HTTP-01 gebruiken. De toegevoegde resolver okhema-dns gebruikt Cloudflare DNS-01 met resolvers 1.1.1.1:53 en 8.8.8.8:53. Dit voorkomt dat certificaten voor andere domeinen afhankelijk worden van een token dat uitsluitend toegang heeft tot okhema.studio.

Bestanden op de server:

  • /data/coolify/proxy/docker-compose.yml: statische proxyconfiguratie.
  • /data/coolify/proxy/cloudflare-dns-token: token, rechten 0600; nooit in git of logs opnemen.
  • /data/coolify/proxy/acme-okhema-dns.json: ACME-account en certificaten met privésleutels, rechten 0600.
  • /data/coolify/proxy/dynamic/okhema-preview-tls.yaml: router die de wildcarduitgifte aanvraagt.

Traefik leest het token via CF_DNS_API_TOKEN_FILE=/traefik/cloudflare-dns-token. Het token heeft Zone Read en DNS Edit voor alleen deze zone. Behoud de toevoegingen wanneer de proxyconfiguratie in Coolify wordt gewijzigd of gereset.

De router okhema-preview-certificate gebruikt certificate.preview.okhema.studio, service noop@internal, resolver okhema-dns en expliciete certificaatnamen preview.okhema.studio en *.preview.okhema.studio. Dit is uitsluitend een certificaatrouter, geen tenantwebsite. Reserveer daarom de tenantnaam certificate bij provisioning, of verplaats deze router voordat die naam wordt gebruikt.

Bewezen: ACME-uitgifte geslaagd, certificaat opgeslagen en TLS-keten plus hostname gevalideerd voor zowel certificate.preview.okhema.studio als dns-check.preview.okhema.studio. Het eerste certificaat verloopt op 6 december 2026; Traefik verzorgt automatische vernieuwing zolang token, DNS-toegang en persistente ACME-opslag beschikbaar blijven. Vernieuwing zelf is nog niet door een volledige cyclus getest.

Na de proxyherstart was deze healthy. Publieke pilot en rbmedia bleven HTTP 200 geven; beide CMS-hosts en admin.nitpick.studio behielden HTTP 302 met geldige HTTPS-verbindingen.

Wildcard-DNS en TLS leveren nog geen tenantwebsite op. Provisioning (taak 2.5) moet de container maken en de concrete hostnames aan dezelfde container koppelen:

  • Publiek: <tenant>.preview.okhema.studio.
  • CMS conform het huidige contract: admin.<tenant>.preview.okhema.studio.
  • SITE_DOMAIN=<tenant>.preview.okhema.studio.

Het wildcardcertificaat dekt alleen de publieke hostname. Voor de dieper gelegen CMS-host moet per tenant een certificaat worden aangevraagd, met bijvoorbeeld de resolver okhema-dns. Hetzelfde geldt voor eventuele www.<tenant>.preview.okhema.studio-redirects. Een certificaatwildcard dekt precies één niveau, ook als wildcard-DNS meerdere niveaus kan beantwoorden. Controleer DNS opnieuw als expliciete records op een tenantnaam worden toegevoegd.

Nog uitvoeren: tenantroutering, domeinregistratie in de master-database en een end-to-end-test van publieke preview, CMS-login en redirects. Cloudflare-proxy blijft uit voor deze diepe hostnames. Custom klantdomeinen zijn taak 2.7.

Pilot handmatig gekoppeld — 7 september 2026

Section titled “Pilot handmatig gekoppeld — 7 september 2026”

Coolify-app ajr8ztdzur5wmlvr1k2r9nj2 heeft nu de drie domeinen pilot.preview.okhema.studio, www.pilot.preview.okhema.studio en admin.pilot.preview.okhema.studio, alle met HTTPS en poort 4321. De drie oude pilot-hostnames zijn in deze appconfiguratie vervangen. Runtime SITE_DOMAIN is pilot.preview.okhema.studio.

Extra bestand op de server: /data/coolify/proxy/dynamic/okhema-pilot-preview-tls.yaml. Dit vraagt via okhema-dns een certificaat voor de CMS- en www-host aan; de door Coolify gegenereerde applicatierouters gebruiken het beschikbare certificaat. De certificaatrouter matcht alleen de gereserveerde certificate.preview.okhema.studio/__pilot-certificate-route.

Afwijking bij uitrol: Coolify’s Restart bouwde de huidige main-commit 66e64628d3889f907686887793a52a786f8f2992, maar die miste PLATFORM_API_KEY en faalde op de healthcheck. Vervolgens is Git Source / Commit SHA vastgezet op de daarvoor draaiende commit bec3fb5afe6608b1d65f8214327edb2603beffc0. De uitrol daarvan is geslaagd (deployment pizvzqxv2nb96ohjcmz4mta8). Deze tijdelijke pin is later dezelfde dag opgeheven; zie hieronder.

Gecontroleerd na voltooide rolling update: publieke homepage 200, CMS-root 302 naar de nieuwe login, login 200, www 302 naar de publieke preview en publiek /admin 302 naar de nieuwe CMS-root. Alle drie TLS-hostnames valideren. De CMS-loginpagina is ook in de browser gecontroleerd; daadwerkelijk inloggen met een gebruikersaccount is niet getest. RB-Media bleef 200 geven. Deze handmatige pilotkoppeling rondt automatische provisioning niet af.

Pilot bijgewerkt naar main — 7 september 2026

Section titled “Pilot bijgewerkt naar main — 7 september 2026”

PLATFORM_API_KEY en PLATFORM_WEBHOOK_SECRET zijn voor de pilot uniek gegenereerd (elk 32 cryptografisch willekeurige bytes, hex-gecodeerd) en via Coolify’s eigen EnvironmentVariable-model versleuteld opgeslagen. Beide zijn runtime-only. Bestaande authenticatiesleutels zijn niet gewijzigd.

Git Source / Commit SHA staat weer op HEAD. Deployment js0n73qmqclzae2spdiivzy1 is geslaagd met commit 66e64628d3889f907686887793a52a786f8f2992. De nieuwe container is healthy. Publieke preview en CMS-login geven 200; www en publiek /admin geven de verwachte 302-redirects. /api/platform/health geeft 401 zonder sleutel en 200 met de pilotsleutel, met status: ok en database: ok. RB-Media bleef 200.

Op deze server is geen draaiend Okhema-masterdashboard aangetroffen. Er is daarom geen webhookbestemming ingesteld en geen master-tenantregistratie gewijzigd. Bij een latere koppeling moeten de master en pilot dezelfde tenant-specifieke API- en webhooksecrets gebruiken. De afzonderlijke platform-API is nu getest; uitgaande webhooks zijn niet end-to-end getest.

Functionele acceptatie door gebruiker — 7 september 2026

Section titled “Functionele acceptatie door gebruiker — 7 september 2026”

De gebruiker heeft bevestigd dat inloggen, publiceren en e-mail zijn getest en correct werken op de pilotpreview. Dit is een gebruikersbevestiging, aanvullend op de hierboven beschreven technische controles.

Nog niet bewezen: de master-dashboard/webhookkoppeling, automatische provisioning van een nieuwe tenant en een volledige certificaatvernieuwingscyclus.

Backup vóór deze wijziging: /data/coolify/proxy/docker-compose.yml.before-okhema-dns-20260907T144322Z. Herstel die composeconfiguratie en haal okhema-preview-tls.yaml uit de dynamic-map voordat je de proxy opnieuw aanmaakt. Verwijder ACME-opslag of token niet als onderdeel van een gewone restart. Zodra andere wijzigingen zijn toegevoegd, draai alleen de relevante toevoegingen terug in plaats van blind deze oude backup te herstellen.