Audit-Siegel: Schluessel erreicht jetzt tatsaechlich den Container

Ohne diesen Fix waere das Siegel im Docker-Betrieb wirkungslos geblieben - die
Variable wurde nirgends an den Container durchgereicht. docker-compose.yml
listet die Umgebungsvariablen einzeln auf und speist sie aus der .env im
Projektstamm; ein env_file gibt es nicht, backend/.env wird vom Container also
gar nicht gelesen. Dokumentiert und ergaenzt hatte ich bisher nur
backend/.env.example - also die Datei, die fuer den Container irrelevant ist.

- AUDIT_HMAC_KEY und AUDIT_HMAC_KEY_OLD in docker-compose.yml und in
  docker/docker-compose.yml aufgenommen (beide mit :- Default, damit ohne Wert
  weiterhin fail-safe ungesiegelt geschrieben wird)
- beide Variablen samt Erklaerung in die .env.example im Projektstamm und in
  docker/.env.example uebernommen
- README benennt jetzt explizit, welche Datei fuer welchen Betrieb gilt
  (Stamm-.env bei Docker, backend/.env nur ohne Container)

Verifiziert: `docker-compose config` loest AUDIT_HMAC_KEY korrekt auf.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-19 19:29:34 +02:00
co-authored by Claude Opus 5
parent ab0d6214f2
commit 0ae6b13d6c
5 changed files with 62 additions and 3 deletions
+14 -3
View File
@@ -337,9 +337,20 @@ Hände bekommt, kann damit nichts fälschen, ohne dass es auffliegt.
openssl rand -hex 32
```
Den Wert in die `.env` der jeweiligen Umgebung eintragen. Wichtig: **pro
Umgebung ein eigener Schlüssel** (Entwicklung, Test, Produktion) und
niemals ins Git-Repository.
**In welche Datei?** Das hängt davon ab, wie du OpenCRM betreibst:
| Betrieb | Datei |
|---|---|
| **Docker** (Standard, `docker-compose.yml` im Projektstamm) | **`.env` im Projektstamm** |
| Backend direkt, ohne Container (Entwicklung) | `backend/.env` |
| Alternativer Caddy-Stack unter `docker/` | `docker/.env` |
Beim Docker-Betrieb reicht der Eintrag in der Stamm-`.env` `docker-compose.yml`
reicht die Variable an den Container weiter. Ein Eintrag in `backend/.env` wirkt
dort **nicht**, weil der Container diese Datei nicht liest.
Wichtig: **pro Umgebung ein eigener Schlüssel** (Entwicklung, Test, Produktion)
und niemals ins Git-Repository.
**Bestehende Installation: bisher kein Schlüssel gesetzt?**