feat(infra): bind-mount /import for backend mass-import endpoint #526

Merged
marcel merged 7 commits from feat/prod-import-bind-mount into main 2026-05-11 20:55:43 +02:00
Showing only changes of commit 4a537d6b19 - Show all commits

View File

@@ -26,6 +26,14 @@
# MAIL_HOST, MAIL_PORT, SMTP relay (production only; staging uses mailpit)
# MAIL_USERNAME, MAIL_PASSWORD
# APP_MAIL_FROM sender address (e.g. noreply@raddatz.cloud)
#
# Optional env vars:
# IMPORT_HOST_DIR absolute host path holding the ODS spreadsheet
# and PDFs for /admin/system mass import. Mounted
# read-only at /import inside the backend.
# Defaults to /srv/familienarchiv/import. When the
# path is empty the import API simply reports
# "no spreadsheet found" — no crash.
networks:
archiv-net:
@@ -173,6 +181,12 @@ services:
# Bound to localhost only — Caddy fronts external traffic.
ports:
- "127.0.0.1:${PORT_BACKEND}:8080"
# Host path holding the ODS spreadsheet + PDFs for the mass-import endpoint.
# Read-only; MassImportService only reads (Files.list / Files.walk on /import).
# Outside the compose working dir on purpose — that dir is recreated per CI
# deploy. See IMPORT_HOST_DIR in the header for the env-var contract.
volumes:
- ${IMPORT_HOST_DIR:-/srv/familienarchiv/import}:/import:ro
environment:
SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/archiv
SPRING_DATASOURCE_USERNAME: archiv