The GrampsWeb service worker was serving index.html for ALL navigation
requests (including Django app routes), hijacking the entire domain.
Patched sw.js at startup to:
- Use subpath-prefixed index.html in createHandlerBoundToURL
- Update denylist regex to match subpath API routes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Use `find` instead of `*.css` glob to catch fonts/fonts.css in subdirs
- Add Python script to auto-create Admin user if no users exist yet
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
CSS url() resolves relative to the stylesheet, not <base href>. With
the stylesheet at /ahnenforschung/style.css, url('../fonts/...') resolves
to /fonts/ (root) instead of /ahnenforschung/fonts/. Changed to relative
url('fonts/...') which correctly resolves under the subpath.
Also fixes Material Icons font not loading (menu icons broken).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
GrampsWeb JS has 6 instances of location.href="/" that redirect users
to the root domain (Django app) instead of /ahnenforschung/. These
are now patched at container startup alongside the API path rewrites.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
GrampsWeb's frontend JS hardcodes absolute paths like "/api/...",
"/lang/...", "/fonts/..." which bypass <base href>. These now get
rewritten to "/ahnenforschung/api/..." etc. at container startup,
matching both double-quoted and template-literal (backtick) patterns.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The previous sed only patched two known paths. Now uses find to discover
and patch all index.html files containing <base href="/"> across the
entire container, with logging to show which files were patched.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The GrampsWeb SPA has <base href="/"> hardcoded at build time, causing
assets to load from / instead of /ahnenforschung/ when behind a reverse
proxy. Instead of relying on nginx sub_filter (which may not be available),
patch the HTML at container startup via GRAMPSWEB_SUBPATH env var.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
GRAMPSWEB_STATIC_PATH was set to /ahnenforschung/static (a URL path)
instead of a filesystem path, causing GrampsWeb to return 404 on all
routes. Removed STATIC_PATH and STATIC_URL (defaults work correctly)
and simplified BASE_URL to /.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Celery worker was missing the media_files:/app/media volume mount,
causing DMS files saved by background tasks (email attachments,
Bestätigungsschreiben PDFs) to land in ephemeral container storage
instead of the persistent named volume. After any container restart,
these files were lost while DB records remained → Http404.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Update Destinataer template: added 8 missing fields (ist_abkoemmling, haushaltsgroesse, monatliche_bezuege, vermoegen, unterstuetzung_bestaetigt, vierteljaehrlicher_betrag, studiennachweis_erforderlich, letzter_studiennachweis)
- Update Laendereien template: added 20 missing fields including property details, tenant info, contract terms, financial data, and tax information
- Fix JavaScript template download functionality: correct block name from extra_js to javascript
- Add comprehensive debugging and error handling for download process
- Improve CSV formatting with proper quoting for text fields containing spaces
- Add fallback download methods for better browser compatibility
All CSV templates now include complete field sets matching current model definitions.
- Archive deploy-production directory as deploy-production-archived (legacy)
- Add DOCKER_COMPOSE_README.md for documentation
- Main configuration now uses compose.yml with working Paperless integration
- Paperless API URL configured as https://vhtv-stiftung.de/paperless
CRITICAL: This fixes the deployment issue where changes weren't appearing on production
Changes:
- Update docker-compose.prod.yml to use ghcr.io pre-built images instead of local builds
- Fix deployment script to pull latest images rather than building locally
- Add proper GitHub Container Registry authentication
- Remove --build flag that was causing deployment to use stale local code
This should resolve the issue where www.vhtv-stiftung.de wasn't showing the new Verpachtung features.
- Add Paperless-ngx service to Docker Compose configuration
- Configure nginx routing for /paperless/ path with large file support
- Add production environment variables for Paperless
- Create automated setup script for initial Paperless configuration
- Add comprehensive production setup documentation
- Configure Paperless with HTTPS and proper database setup
- Update Django app to use production Paperless instance