Omgevingen: lokaal vs. productie¶
Anders dan de oude opzet (aparte test/acc/prod-servers met HestiaCP) kent dit systeem nog maar twee soorten omgevingen, allebei volledig in Docker:
| Lokaal | Productie | |
|---|---|---|
| Doel | ontwikkelen / uitproberen op je eigen machine | de echte, publiek bereikbare omgeving |
| Domein | *.localhost |
een echt domein (bv. mc-dienstverlening.cloud) |
| TLS/HTTPS | nee (gewoon http) | ja, automatisch via Let's Encrypt |
| DNS nodig? | nee | ja (A-records → server-IP) |
| Poorten | alleen 80 | 80 + 443 open naar internet |
| Starten | make up-local-all |
make up-all |
Beide omgevingen draaien dezelfde images en dezelfde configuratie; het enige
verschil is DOMAIN in platform/.env en welke compose-override wordt gebruikt.
"Werkt lokaal" betekent daardoor in de praktijk ook "werkt in productie".
Wil je een aparte test-omgeving naast productie? Draai die op een tweede host (of tweede domein) met exact dezelfde stappen. Er is bewust geen OTAP-straat meer op één server — dat maakte de oude opzet onnodig complex.
Lokaal opzetten¶
Vereisten: Docker + Docker Compose, en de drie repos naast elkaar (zie README).
cd platform
make setup # .env met DOMAIN=localhost (default), secrets, netwerk
make up-local-all # zgw + portal + proxy, http op *.localhost
Open daarna o.a.:
- http://portal.localhost
- http://openzaak.zgw.localhost, http://objecten.zgw.localhost, …
*.localhost resolvet niet?¶
De meeste browsers sturen *.localhost automatisch naar 127.0.0.1. Lukt dat
niet (bv. bij sommige CLI-tools of Firefox), voeg de hosts dan toe aan
/etc/hosts:
127.0.0.1 portal.localhost openzaak.zgw.localhost notificaties.zgw.localhost \
openklant.zgw.localhost objecten.zgw.localhost \
objecttypen.zgw.localhost formulieren.zgw.localhost
Productie opzetten¶
- DNS — zet bij je DNS-provider A-records naar het server-IP:
portal.<domein>openzaak.zgw.<domein>,notificaties.zgw.<domein>,openklant.zgw.<domein>,objecten.zgw.<domein>,objecttypen.zgw.<domein>,formulieren.zgw.<domein>- Tip: een wildcard
*.zgw.<domein>dekt alle ZGW-subdomeinen in één record. - Poorten — zorg dat 80 en 443 open zijn (Let's Encrypt heeft 80 nodig voor de uitgifte).
platform/.env— zet:- Start:
Caddy vraagt bij de eerste start automatisch certificaten aan en vernieuwt ze
daarna zelf. De certs leven in een Docker-volume (caddy-data), dus ze
overleven herstarts.
Stoppen¶
De data blijft in de Docker-volumes bewaard; opnieuwup pakt waar je was.