Files
VacatureRadar/VERIFICATION_REPORT.md
Jens 7caea3a1ee
deploy / deploy (push) Canceled after 0s
demo mode
2026-07-27 23:38:37 +02:00

3.2 KiB

Verificatierapport — VacatureRadar 0.3.12

  • Datum: 27 juli 2026
  • Onderwerp: productiehardening, Nginx Proxy Manager, gastmodus en overdrachts-ZIP
  • Branch: fix/public-production-hardening

Gecontroleerd

Applicatie en regressies

296 tests geslaagd
2 optionele Playwrighttests overgeslagen omdat de browserbinary niet lokaal aanwezig was
83,43% branch-aware codedekking; vereiste drempel 70%

De afzonderlijke HTML- en accessibilityprobe bleef actief. De Playwrightfallback is hersteld zodat een geïnstalleerde Pythonmodule zonder browserbinary geen synchrone databasecall meer binnen de Playwright-eventloop uitvoert.

Django en data

  • python manage.py check: 0 issues;
  • python manage.py makemigrations --check --dry-run: geen wijzigingen;
  • productie-settings met PUBLIC_BASE_URL=https://vacatureradar.itworx.tech: laden correct;
  • manage.py check --deploy: geen errors; HSTS-preload blijft bewust uit en geeft daarom alleen de verwachte Django-waarschuwing;
  • publieke host en HTTPS-origin worden aantoonbaar aan ALLOWED_HOSTS en CSRF_TRUSTED_ORIGINS toegevoegd.

Repository en deployment

  • repositoryvalidator: geslaagd;
  • taakledger: geldig, 64 taken, 0 uitvoerbare ready-taken;
  • Docker Compose, Unraid Compose en backlog-YAML: parseerbaar;
  • shellsyntax van deploy- en entrypoints: geldig;
  • Pythoncompilecheck: geslaagd;
  • git diff --check: geslaagd;
  • packagevalidatie en manifestcontrole: geslaagd na definitieve packaging.

Belangrijkste herstelde productieproblemen

  • DisallowedHost voor de publieke Nginx-host;
  • publieke Django-debugmodus;
  • verkeerde externe CSRF-origin met interne poort 1226;
  • healthchecks die door HTTPS-redirect konden falen;
  • proceslokale rate limiting bij meerdere Gunicornworkers;
  • onvoorwaardelijk vertrouwen in X-Forwarded-For;
  • schrijfbare gedeelde demo;
  • afwijkende Unraid .env-paden;
  • database-URL-interpolatie buiten het Unraid-env_file;
  • URL-import die zonder staticfilesmanifest kon falen tijdens deployment checks;
  • stale project-/assetversie en verouderd verificatierapport.

Omgevingsbeperking

De normale uv sync --frozen kon in deze uitvoeringsomgeving geen packages downloaden door DNS-uitval. Voor de regressies zijn de pure Python-packages uit de door de gebruiker aangeleverde gelockte Windows-omgeving gecombineerd met reeds aanwezige Linux-wheels. Daardoor konden Django, pytest en de volledige offline suite betrouwbaar draaien.

De Ruff-Linuxbinary en Playwright-browser konden zonder netwerk niet worden geïnstalleerd. Pythoncompile, alle tests, Djangochecks, lijnlengtecontrole op gewijzigde Pythonbestanden en git diff --check zijn wel uitgevoerd. Een Dockerdaemon en de live Unraid/Nginx-omgeving waren niet beschikbaar.

Nog op de doelserver uitvoeren

  1. bestaande .env back-uppen;
  2. scripts/configure_public_url.py uitvoeren;
  3. container met --force-recreate herbouwen;
  4. interne liveness/readiness controleren;
  5. publieke TLS-, login-, logout- en CSRF-smoke uitvoeren;
  6. demo-read-only controleren;
  7. exacte Nginx Proxy Manager-CIDR instellen wanneer individuele client-IP-rate-limiting gewenst is;
  8. databaseback-up en herstel-smoke uitvoeren.

Zie docs/operations/NGINX_PROXY_MANAGER.md en docs/quality/PRODUCTION_AUDIT_2026-07-27.md.