1. VAPID-Keys aus docker-compose.yml und docker-compose.staging.yml entfernt. Werden jetzt aus .env gelesen (env_file war schon da, nur die environment-Override hat die .env-Werte überschrieben). .env auf DS um die 3 Keys ergänzt: - VAPID_PUBLIC_KEY, VAPID_PRIVATE_KEY, VAPID_CONTACT Erst Compose-Änderung wirksam — Push-Notifications funktionieren weiter weil die .env die Werte liefert. 2. Dockerfile-Hardening: Non-root USER appuser. - groupadd/useradd appuser (UID/GID 1000 für DS-Kompatibilität) - chown -R appuser:appuser /app /data nach mkdir - USER appuser vor CMD Memory says DSM ACLs könnten Probleme machen. Falls Container nicht startet → Rückbau. Bei Deploy genau hinsehen. 3. E-Mail-Änderungs-Audit-Punkt: kein Vulnerability gefunden. ProfileUpdate-Schema enthält kein 'email'-Feld. User können ihre E-Mail-Adresse aktuell gar nicht ändern → kein Takeover- Vektor wie im Audit vermutet.
23 lines
715 B
YAML
23 lines
715 B
YAML
services:
|
|
banyaro:
|
|
build: .
|
|
container_name: banyaro
|
|
restart: on-failure:5
|
|
ports:
|
|
- "3010:8000" # DS-intern, NPM leitet banyaro.app weiter
|
|
volumes:
|
|
- ./data:/data # SQLite + Media persistent
|
|
- /volume1/scaninput:/scaninput
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
- DB_PATH=/data/banyaro.db
|
|
- MEDIA_DIR=/data/media
|
|
- UMAMI_URL=https://umami.motocamp.de
|
|
# VAPID_PUBLIC_KEY / VAPID_PRIVATE_KEY / VAPID_CONTACT
|
|
# → kommen aus .env (nicht in Git)
|
|
healthcheck:
|
|
test: ["CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/')"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|