Verbeter grafische kwaliteit van kleurplaten (v0.4.67-beta) #5
5 changed files with 11 additions and 10 deletions
10
README.md
10
README.md
|
|
@ -36,8 +36,8 @@ App op http://localhost:3000, healthcheck op `/healthz`, DB-check op `/readyz`.
|
|||
- **Forgejo container registry**: CI bouwt de image één keer en pusht die; beide
|
||||
VM's pullen exact dezelfde geteste image. Geen build op de productie-VM.
|
||||
- **Pangolin/Traefik verzorgt de publieke HTTPS-ingang**. De meegeleverde nginx
|
||||
vormt de interne proxylaag en is standaard alleen via `127.0.0.1:8081`
|
||||
bereikbaar. De Fastify-app vertrouwt precies twee proxy-hops.
|
||||
vormt de interne proxylaag en luistert standaard op poort `8081`, zodat de
|
||||
Pangolin/Traefik-route deze via het VM-/containernetwerk kan bereiken. De Fastify-app vertrouwt precies twee proxy-hops.
|
||||
|
||||
## Eenmalige setup
|
||||
|
||||
|
|
@ -108,7 +108,7 @@ POSTGRES_USER=teach
|
|||
POSTGRES_PASSWORD=<sterk-wachtwoord>
|
||||
DATABASE_URL=postgres://teach:<sterk-wachtwoord>@db:5432/teach
|
||||
APP_PORT=3000
|
||||
WEB_BIND_IP=127.0.0.1
|
||||
WEB_BIND_IP=0.0.0.0
|
||||
WEB_PORT=8081
|
||||
TRUST_PROXY_HOPS=2
|
||||
SUPER_USER=beheerder
|
||||
|
|
@ -120,11 +120,11 @@ CI werkt bij elke deploy de `IMAGE=`-regel bij, pullt en herstart.
|
|||
|
||||
### 4. Pangolin/Traefik publiceren
|
||||
|
||||
Publiceer `http://127.0.0.1:8081` via Pangolin/Traefik en laat daar TLS
|
||||
Publiceer `http://<interne-vm-ip>:8081` via Pangolin/Traefik en laat daar TLS
|
||||
beëindigen. De interne nginx behoudt `X-Forwarded-Proto: https`, waarna de app
|
||||
Secure/HttpOnly/SameSite-cookies, HSTS en overige securityheaders gebruikt.
|
||||
|
||||
- Laat poort 8081 niet rechtstreeks vanaf internet of het LAN benaderbaar zijn.
|
||||
- Beperk poort 8081 met de hostfirewall tot het Pangolin/Traefik- of tunnelnetwerk.
|
||||
- Pas `TRUST_PROXY_HOPS` alleen aan wanneer de proxyketen werkelijk verandert.
|
||||
- Bij een aparte Traefik-container kan een gedeeld intern Docker-netwerk nodig
|
||||
zijn; zet `WEB_BIND_IP` niet ruimer dan noodzakelijk.
|
||||
|
|
|
|||
2
VERSION
2
VERSION
|
|
@ -1 +1 @@
|
|||
0.3.05-beta
|
||||
0.3.06-beta
|
||||
|
|
|
|||
|
|
@ -35,8 +35,9 @@ services:
|
|||
depends_on:
|
||||
- app
|
||||
ports:
|
||||
# Alleen lokaal bereikbaar; Pangolin/Traefik publiceert deze endpoint met TLS.
|
||||
- "${WEB_BIND_IP:-127.0.0.1}:${WEB_PORT:-8081}:80"
|
||||
# Bereikbaar voor Pangolin/Traefik via het VM-/containernetwerk.
|
||||
# Beperk poort 8081 met de hostfirewall tot de proxy/tunnel.
|
||||
- "${WEB_BIND_IP:-0.0.0.0}:${WEB_PORT:-8081}:80"
|
||||
volumes:
|
||||
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
|
||||
restart: unless-stopped
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"use strict";
|
||||
/* version — shown until /api/version resolves (or if the fetch fails, e.g. offline).
|
||||
Kept in sync by hand with the VERSION file at the repo root on every release. */
|
||||
const VERSION = "0.3.05-beta";
|
||||
const VERSION = "0.3.06-beta";
|
||||
(function(){
|
||||
const tag = document.getElementById("verTag");
|
||||
tag.textContent = "v"+VERSION;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ test('productieconfig gebruikt secure cookies en begrensde proxy trust', async (
|
|||
const compose = await readFile('deploy/compose.deploy.yaml', 'utf8');
|
||||
assert.match(compose, /COOKIE_SECURE: "true"/);
|
||||
assert.match(compose, /TRUST_PROXY_HOPS:/);
|
||||
assert.match(compose, /WEB_BIND_IP:-127\.0\.0\.1/);
|
||||
assert.match(compose, /WEB_BIND_IP:-0\.0\.0\.0/);
|
||||
});
|
||||
|
||||
test('nginx behoudt het publieke forwarded protocol', async () => {
|
||||
|
|
|
|||
Loading…
Reference in a new issue