docs: require agenix for frappe secrets

This commit is contained in:
2026-06-05 11:43:21 +02:00
parent 1c3ecce5ca
commit e5d7c2b22b
@@ -99,6 +99,27 @@ sites = {
}; };
``` ```
Secrets werden nicht als manuell gepflegte Datei unter `/var/lib/frappe` verwaltet, sondern wie bei den anderen Diensten über agenix bereitgestellt. Das Frappe-Modul referenziert dafür einen age-Secret-Pfad, z.B.:
```nix
frappeEnvFile = config.age.secrets.frappe-env.path;
```
Die zugehörige Secret-Datei enthält die für Init und Site-Erzeugung benötigten Variablen, insbesondere:
```text
FRAPPE_DB_ADMIN_PASSWORD=<database-admin-secret>
FRAPPE_ADMIN_PASSWORD=<site-administrator-secret>
```
Der Secret-Eintrag wird in den bestehenden agenix-Strukturen ergänzt:
```text
secrets/frappe-env.age
secrets.nix
hosts/AZ-CLD-1/secrets.nix
```
Weitere Sites können später ergänzt werden, ohne die Grundstruktur umzubauen: Weitere Sites können später ergänzt werden, ohne die Grundstruktur umzubauen:
```nix ```nix
@@ -140,7 +161,9 @@ Die Frontend-/Nginx-Instanz bleibt über Traefik erreichbar. Für `learn.az-grup
Die Initialisierung bleibt idempotent: Die Initialisierung bleibt idempotent:
- Verzeichnisse werden vorbereitet. - Verzeichnisse werden vorbereitet.
- Fehlende Env-Datei oder fehlende Secrets führen zu einem klaren Fehler. - Secrets werden ausschließlich über `config.age.secrets.*.path` eingebunden.
- Eine fehlende agenix-Secret-Definition oder fehlende Variablen im Secret führen zu einem klaren Fehler.
- Es wird keine dauerhafte, manuell gepflegte Secret-/Env-Datei unter `/var/lib/frappe` erzeugt.
- Gemeinsame Bench-Konfiguration wird gesetzt. - Gemeinsame Bench-Konfiguration wird gesetzt.
- Existiert `sites/<domain>/site_config.json`, wird die Site-Erzeugung übersprungen. - Existiert `sites/<domain>/site_config.json`, wird die Site-Erzeugung übersprungen.
- Existiert die Site nicht, wird sie mit `bench new-site` angelegt. - Existiert die Site nicht, wird sie mit `bench new-site` angelegt.
@@ -204,5 +227,7 @@ Zusätzliche statische Prüfungen:
- `containers/frappe.nix` enthält keine Redis-Container mehr. - `containers/frappe.nix` enthält keine Redis-Container mehr.
- `containers/frappe.nix` definiert nicht mehr `services.mysql`. - `containers/frappe.nix` definiert nicht mehr `services.mysql`.
- `containers/frappe.nix` verwendet agenix-Secrets über `config.age.secrets.*.path` statt eine manuelle `/var/lib/frappe/*.env`-Datei zu erwarten.
- `services/default.nix` importiert `mariadb.nix` und `redis.nix`. - `services/default.nix` importiert `mariadb.nix` und `redis.nix`.
- `containers/default.nix` importiert `frappe.nix` statt `frappe-lms.nix`. - `containers/default.nix` importiert `frappe.nix` statt `frappe-lms.nix`.
- `secrets/frappe-env.age`, `secrets.nix` und `hosts/AZ-CLD-1/secrets.nix` sind konsistent ergänzt.