Onderhoudsmodus — publieke onderhoudspagina¶
Als je onderhoud doet dat de stack tijdelijk plat legt (image-update, herstart,
migraties), kun je gebruikers een nette onderhoudspagina tonen in plaats van
een foutmelding. Caddy serveert die pagina met HTTP 503 op de gebruikers-
gerichte sites (portal.<domein> en formulieren.zgw.<domein>) zolang de modus
aan staat.
Niet te verwarren met
onderhoud.<domein>(= Adminer, de DB-tool, verderop).
Aan- en uitzetten¶
cd platform
make onderhoudsmodus-aan # gebruikers zien de pagina (HTTP 503)
make onderhoudsmodus-uit # sites weer normaal
make onderhoudsmodus-status # toont AAN/UIT
Dit werkt instant en zonder reload/herstart: het zet (of verwijdert) het
vlagbestand caddy/maintenance/.maintenance-on, en de (onderhoudsmodus)-snippet
in caddy/Caddyfile checkt dat bestand per request. Typische volgorde rond
onderhoud:
make onderhoudsmodus-aan
# ... onderhoud uitvoeren (bv. images bijwerken in zgw/portal) ...
make onderhoudsmodus-uit
Aanpassen¶
- De pagina zelf:
caddy/maintenance/index.html(zelfstandige HTML, inline CSS, ververst zichzelf elke 60s, dark-mode-vriendelijk). Wijzigingen zijn meteen actief. - Welke sites afgeschermd worden: voeg
import onderhoudsmodus+ eenhandle { reverse_proxy … }toe aan het betreffende site-blok incaddy/Caddyfile(zieportal/formulieren). De ZGW-API-subdomeinen enoperaton.<domein>laten we standaard met rust.
Adminer — PostgreSQL web-UI¶
Adminer is een lichte web-UI om de PostgreSQL-
databases te bekijken én te bewerken (rijen toevoegen/wijzigen/verwijderen,
vrije SQL draaien). Hij draait als optionele service in de platform-stack en is
bereikbaar op https://onderhoud.<domein> achter Basic Auth.
Activeren¶
cd platform
make onderhoud-setup # genereert de Basic-Auth-login (toont het wachtwoord 1x)
make onderhoud-up # start Adminer + herlaadt de proxy
Vereist: een A-record onderhoud.<domein> → server-IP, en dat de zgw- en
portal-stacks draaien (Adminer hangt aan hun DB-netwerken).
Stoppen: make onderhoud-down.
Inloggen¶
- Ga naar
https://onderhoud.<domein>→ eerst de Basic Auth (gebruiker + wachtwoord uitmake onderhoud-setup). - Dan het Adminer-loginscherm. Vul in:
- Systeem: PostgreSQL
- Server:
zgw-db-1(de ZGW-databases) ofportal-db-1(portal + operaton) - Gebruiker / Wachtwoord: een DB-account, bv. de superuser
postgresmet het wachtwoord uit de.envvan die stack (POSTGRES_SUPERPASS), of een component-account (openzaak,portal, …) met zijn eigen wachtwoord. - Database: leeg laten (dan zie je alle databases), of kies er één.
| Server | Databases |
|---|---|
zgw-db-1 |
openzaak, opennotificaties, openklant, objects, objecttypes, openforms |
portal-db-1 |
portal, operaton |
Inlog onthouden (Permanent login)¶
Om niet bij elk bezoek server, database en wachtwoord opnieuw op te zoeken: vink op het Adminer-loginscherm "Permanent login" aan. Adminer onthoudt dan je server + database + inloggegevens (versleuteld in een cookie) — ook na het sluiten van de browser of een herstart van de Adminer-container. Na de Basic Auth kom je daarna direct binnen.
Dit werkt dankzij een stabiele sleutel: een kleine plugin
(adminer/plugins-enabled/permanent-login.php) levert die uit de omgevings-
variabele ADMINER_PERMANENT_KEY, die make onderhoud-setup eenmalig in .env
zet. Zonder die sleutel wisselt Adminers sleutel per herstart en vervalt het
onthouden telkens.
Het server-veld staat standaard al voor-ingevuld op
zgw-db-1(ADMINER_DEFAULT_SERVER). Voorportal-db-1pas je dat één keer aan en onthoudt "Permanent login" het daarna.
Beveiliging¶
- Tweelaags: Basic Auth (Caddy) + het DB-wachtwoord (Adminer-login).
- De login-hash staat in
caddy/sites.d/onderhoud.caddy(gitignored). - ⚠️ Je kunt hier productiedata wijzigen/verwijderen. Wees voorzichtig; de dagelijkse backups (zie back-ups.md) zijn je vangnet.
- Wil je 'm niet permanent open hebben:
make onderhoud-downals je klaar bent, enmake onderhoud-upals je 'm weer nodig hebt. - Strenger alternatief: geen publiek subdomein maar alleen via een SSH-tunnel
(publiceer Adminer dan op
127.0.0.1:8081i.p.v. via Caddy).
Operaton-admin (procesengine)¶
De Operaton-webapps (cockpit / admin / tasklist — bv. om vastgelopen processen te
bekijken) zijn gepubliceerd op https://operaton.<domein>. Er is geen Basic
Auth: gebruikers loggen in met hun eigen Operaton-account op de loginpagina
van de webapp.
De site staat vast in caddy/Caddyfile (reverse_proxy operaton:8080); Caddy
bereikt de engine via het portal_internal-netwerk. Vereist een A-record
operaton.<domein> → server-IP. Wijzigingen aan de proxy activeer je met
make up.
Inloggen¶
Ga naar https://operaton.<domein> → de Operaton-login, log in met je eigen
account (zelfde inlog als het portaal). De admin-webapp zit op
/operaton/app/admin/, de cockpit op /operaton/app/cockpit/.
Het service-account
OPERATON_SVC_USER(uit deportal-.env) is globale admin in de engine; gebruik een persoonlijk account waar mogelijk.
Beveiliging¶
De engine-webapp én de engine-REST (/engine-rest) zijn beschermd door de
Operaton-eigen authenticatie (OPERATON_BPM_RUN_AUTH_ENABLED). Wil je het
strenger: zet er alsnog Basic Auth voor (zoals bij Adminer in sites.d/), of
publiceer niet en gebruik een SSH-tunnel: ssh -L 8092:127.0.0.1:8092 <server>
→ http://localhost:8092/operaton/app/admin/.