Document Authelia without Redis session backend
Document Authelia without Redis session backend
This commit is contained in:
@@ -247,7 +247,7 @@ Legende Status:
|
|||||||
| Container | Status | Soll-Netz(e) | Finaler Zugang | Finaler Sollzustand | Offene Punkte |
|
| Container | Status | Soll-Netz(e) | Finaler Zugang | Finaler Sollzustand | Offene Punkte |
|
||||||
|---|---|---|---|---|---|
|
|---|---|---|---|---|---|
|
||||||
| `vaultwarden` | ✅ | `frontend_net` | Traefik | kein Host-Port, `ADMIN_TOKEN_FILE` | — |
|
| `vaultwarden` | ✅ | `frontend_net` | Traefik | kein Host-Port, `ADMIN_TOKEN_FILE` | — |
|
||||||
| `authelia` | ✅ | `frontend_net`, `backend_net` | Traefik via `auth.kaleschke.info` | aktiver ForwardAuth-Provider, Secrets via `_FILE`, PostgreSQL + Redis Shared | — |
|
| `authelia` | ✅ | `frontend_net`, `backend_net` | Traefik via `auth.kaleschke.info` | aktiver ForwardAuth-Provider, Secrets via `_FILE`, PostgreSQL Storage; bewusst ohne Redis-Session-Backend | — |
|
||||||
|
|
||||||
### 7.3 Datenbanken / Caches
|
### 7.3 Datenbanken / Caches
|
||||||
|
|
||||||
@@ -538,6 +538,11 @@ Mutable Tags wie `latest`, `stable`, `release` oder reine Major-Tags wurden auf
|
|||||||
- Fuer dieses Port-Publishing nutzt `influxdb3-core` zusaetzlich zum internen Grafana-Netz `grafana_influx_lan`. Das ist keine Public-App-Freigabe und ersetzt nicht die Token-Authentifizierung.
|
- Fuer dieses Port-Publishing nutzt `influxdb3-core` zusaetzlich zum internen Grafana-Netz `grafana_influx_lan`. Das ist keine Public-App-Freigabe und ersetzt nicht die Token-Authentifizierung.
|
||||||
- InfluxDB 3 Core nutzt einen festen Versionstag statt `latest`, weil der InfluxDB-`latest`-Tag versionsstrategisch im Umbruch ist.
|
- InfluxDB 3 Core nutzt einen festen Versionstag statt `latest`, weil der InfluxDB-`latest`-Tag versionsstrategisch im Umbruch ist.
|
||||||
|
|
||||||
|
### Authelia ohne Redis-Session-Backend (2026-05-04)
|
||||||
|
- Authelia nutzt PostgreSQL fuer persistente Storage-Daten, aber bewusst kein Redis-Session-Backend.
|
||||||
|
- Das haelt den Tier-1-Auth-Pfad einfacher; nach einem Authelia-Restart muessen aktive Sessions neu aufgebaut werden.
|
||||||
|
- `infra/redis` bleibt shared Cache fuer Dienste wie Paperless, ist aber keine Authelia-Abhaengigkeit.
|
||||||
|
|
||||||
### ddns-updater — Netz-Ausnahme
|
### ddns-updater — Netz-Ausnahme
|
||||||
Bleibt bewusst in `frontend_net` statt `backend_net`, weil `backend_net` `internal: true` ist und ddns-updater die Cloudflare-API erreichen muss.
|
Bleibt bewusst in `frontend_net` statt `backend_net`, weil `backend_net` `internal: true` ist und ddns-updater die Cloudflare-API erreichen muss.
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -131,7 +131,7 @@ Dump-Skript:
|
|||||||
Disaster Recovery folgt einer Bootstrap-Reihenfolge:
|
Disaster Recovery folgt einer Bootstrap-Reihenfolge:
|
||||||
|
|
||||||
1. Traefik, AdGuard, Tailscale
|
1. Traefik, AdGuard, Tailscale
|
||||||
2. PostgreSQL, Redis, Authelia, Gitea
|
2. PostgreSQL, Authelia, Redis, Gitea
|
||||||
3. Komodo
|
3. Komodo
|
||||||
4. kritische Apps
|
4. kritische Apps
|
||||||
5. restliche Apps/Ops
|
5. restliche Apps/Ops
|
||||||
@@ -152,6 +152,7 @@ KI-Agenten sollen konservativ arbeiten: keine indirekten Live-Aenderungen, keine
|
|||||||
- Traefik dynamic config muss manuell auf den Host synchronisiert werden; Komodo deployed diese Dateien nicht automatisch.
|
- Traefik dynamic config muss manuell auf den Host synchronisiert werden; Komodo deployed diese Dateien nicht automatisch.
|
||||||
- `backend_net` und app-interne Netze muessen bei Runtime-Problemen live geprueft werden, weil Compose-Projektpraefixe Netznamen veraendern koennen.
|
- `backend_net` und app-interne Netze muessen bei Runtime-Problemen live geprueft werden, weil Compose-Projektpraefixe Netznamen veraendern koennen.
|
||||||
- Authelia Template und Compose-Middlewares koennen auseinanderlaufen; bei Auth-Aenderungen beide Seiten pruefen.
|
- Authelia Template und Compose-Middlewares koennen auseinanderlaufen; bei Auth-Aenderungen beide Seiten pruefen.
|
||||||
|
- Authelia nutzt PostgreSQL, aber bewusst kein Redis-Session-Backend; Redis ist kein Authelia-Bootstrap-Blocker.
|
||||||
- `paperless-ngx` nutzt fuer DB/Redis bewusst Stack ENV statt `_FILE`.
|
- `paperless-ngx` nutzt fuer DB/Redis bewusst Stack ENV statt `_FILE`.
|
||||||
- `homepage`, `glances` und `komodo-periphery` nutzen Docker-Socket-Mounts; Zugriff bewusst behandeln.
|
- `homepage`, `glances` und `komodo-periphery` nutzen Docker-Socket-Mounts; Zugriff bewusst behandeln.
|
||||||
- `backrest`, `borg-ui` und `filebrowser` haben breite Mounts; bei Hardening nicht ad hoc, sondern gezielt vorgehen.
|
- `backrest`, `borg-ui` und `filebrowser` haben breite Mounts; bei Hardening nicht ad hoc, sondern gezielt vorgehen.
|
||||||
|
|||||||
@@ -223,14 +223,15 @@ Ziel:
|
|||||||
### Stufe 2 - Gemeinsame Backends und Identity
|
### Stufe 2 - Gemeinsame Backends und Identity
|
||||||
|
|
||||||
4. `infra/postgresql17/`
|
4. `infra/postgresql17/`
|
||||||
5. `infra/redis/`
|
5. `security/authelia/`
|
||||||
6. `security/authelia/`
|
6. `infra/redis/`
|
||||||
7. `core/gitea/`
|
7. `core/gitea/`
|
||||||
|
|
||||||
Ziel:
|
Ziel:
|
||||||
|
|
||||||
- gemeinsame DB / Redis verfuegbar
|
- gemeinsame DB verfuegbar
|
||||||
- zentrale Auth laeuft
|
- zentrale Auth laeuft; Authelia nutzt bewusst kein Redis-Session-Backend
|
||||||
|
- Redis als shared Cache fuer abhaengige Apps verfuegbar
|
||||||
- Git-Zugriff wiederhergestellt
|
- Git-Zugriff wiederhergestellt
|
||||||
|
|
||||||
### Stufe 3 - Deploy-System
|
### Stufe 3 - Deploy-System
|
||||||
|
|||||||
@@ -2,6 +2,15 @@
|
|||||||
|
|
||||||
Ziel: Home Assistant schreibt ausgewaehlte Ecowitt- und Energiesensoren nach InfluxDB 3 Core. Grafana bleibt das Langzeit-Dashboard, Home Assistant bleibt die Automationszentrale.
|
Ziel: Home Assistant schreibt ausgewaehlte Ecowitt- und Energiesensoren nach InfluxDB 3 Core. Grafana bleibt das Langzeit-Dashboard, Home Assistant bleibt die Automationszentrale.
|
||||||
|
|
||||||
|
## Live-Stand 2026-05-04
|
||||||
|
|
||||||
|
- Home Assistant ist per SSH unter `192.168.178.50:22222` erreichbar.
|
||||||
|
- `ha core check` ist erfolgreich.
|
||||||
|
- InfluxDB 3 Core ist von Home Assistant aus unter `http://192.168.178.58:8181/` erreichbar; `401 Unauthorized` ohne Token ist der erwartete Reachability-Test.
|
||||||
|
- In `/homeassistant/configuration.yaml` ist noch kein `influxdb:`-Block aktiv.
|
||||||
|
- In `/homeassistant/secrets.yaml` ist noch kein `influxdb3_homeassistant_token` eingetragen.
|
||||||
|
- In der Home-Assistant-Entity-Registry ist noch keine Ecowitt-Integration sichtbar; aktuell existiert nur `weather.forecast_home`.
|
||||||
|
|
||||||
## 1. InfluxDB fuer Home Assistant erreichbar machen
|
## 1. InfluxDB fuer Home Assistant erreichbar machen
|
||||||
|
|
||||||
Der Stack haelt InfluxDB bewusst ohne Traefik-Route. Fuer Home Assistant wird nur der HTTP-Port `8181` auf einer internen LAN-Adresse veroeffentlicht.
|
Der Stack haelt InfluxDB bewusst ohne Traefik-Route. Fuer Home Assistant wird nur der HTTP-Port `8181` auf einer internen LAN-Adresse veroeffentlicht.
|
||||||
@@ -9,29 +18,46 @@ Der Stack haelt InfluxDB bewusst ohne Traefik-Route. Fuer Home Assistant wird nu
|
|||||||
In Komodo/Stack-Environment fuer `ops/grafana-influxdb` setzen:
|
In Komodo/Stack-Environment fuer `ops/grafana-influxdb` setzen:
|
||||||
|
|
||||||
```env
|
```env
|
||||||
INFLUXDB_BIND_IP=192.168.178.X
|
INFLUXDB_BIND_IP=192.168.178.58
|
||||||
```
|
```
|
||||||
|
|
||||||
`192.168.178.X` ist die LAN-IP des Docker-Hosts, auf dem `influxdb3-core` laeuft. Nicht `0.0.0.0` verwenden, wenn es nicht notwendig ist.
|
`192.168.178.58` ist die LAN-IP des Docker-Hosts, auf dem `influxdb3-core` laeuft. Nicht `0.0.0.0` verwenden, wenn es nicht notwendig ist.
|
||||||
|
|
||||||
Danach den Stack neu deployen und von Home Assistant aus pruefen:
|
Danach den Stack neu deployen und von Home Assistant aus pruefen:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -I http://192.168.178.X:8181/health
|
curl -i --max-time 5 http://192.168.178.58:8181/
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Erwartetes Ergebnis ohne Token: `401 Unauthorized`. Das bestaetigt, dass der LAN-Port erreichbar ist und Authentifizierung aktiv bleibt.
|
||||||
|
|
||||||
## 2. Token fuer Home Assistant
|
## 2. Token fuer Home Assistant
|
||||||
|
|
||||||
Am besten einen eigenen Write-Token fuer Home Assistant verwenden. Fuer den ersten Test kann der bestehende Admin-Token funktionieren; langfristig sollte der HA-Token nur in die Datenbank `homelab` schreiben duerfen.
|
InfluxDB 3 Core unterstuetzt aktuell Admin- und Named-Admin-Tokens. Einen eigenen Named-Admin-Token fuer Home Assistant verwenden, damit der Token getrennt vom initialen Operator-/Admin-Token rotiert werden kann.
|
||||||
|
|
||||||
Den Token in Home Assistant eintragen:
|
Den Token in Home Assistant eintragen:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# /homeassistant/secrets.yaml
|
# /homeassistant/secrets.yaml
|
||||||
influxdb3_homeassistant_token: "apiv3_REPLACE_WITH_WRITE_TOKEN"
|
influxdb3_homeassistant_token: "apiv3_REPLACE_WITH_HOME_ASSISTANT_TOKEN"
|
||||||
```
|
```
|
||||||
|
|
||||||
## 3. Home Assistant konfigurieren
|
Token niemals ins Git-Repository schreiben.
|
||||||
|
|
||||||
|
## 3. Ecowitt in Home Assistant anbinden
|
||||||
|
|
||||||
|
Die offizielle Ecowitt-Integration ist eine lokale Push-Integration. Home Assistant erzeugt einen HTTP-Webhook; die Wetterstation sendet danach ihre Daten aktiv an Home Assistant.
|
||||||
|
|
||||||
|
1. In Home Assistant `Einstellungen -> Geraete & Dienste -> Integration hinzufuegen -> Ecowitt` oeffnen.
|
||||||
|
2. Die angezeigten Werte fuer Server/IP, Pfad und Port notieren.
|
||||||
|
3. Im Ecowitt-Gateway entweder per App oder Web-UI unter `Weather Services -> Customized` eintragen:
|
||||||
|
- Customized: `Enable`
|
||||||
|
- Protocol Type Same As: `Ecowitt`
|
||||||
|
- Server/IP, Path und Port exakt wie in Home Assistant angezeigt
|
||||||
|
4. Wichtig: Ecowitt kann kein HTTPS. Den lokalen HTTP-Endpunkt von Home Assistant verwenden, nicht eine reine HTTPS-/Traefik-URL.
|
||||||
|
5. Nach dem ersten Push pruefen, ob neue `sensor.*`- und ggf. `binary_sensor.*`-Entities in Home Assistant auftauchen.
|
||||||
|
|
||||||
|
## 4. Home Assistant fuer InfluxDB konfigurieren
|
||||||
|
|
||||||
Minimaler Startblock fuer `/homeassistant/configuration.yaml`:
|
Minimaler Startblock fuer `/homeassistant/configuration.yaml`:
|
||||||
|
|
||||||
@@ -39,7 +65,7 @@ Minimaler Startblock fuer `/homeassistant/configuration.yaml`:
|
|||||||
influxdb:
|
influxdb:
|
||||||
api_version: 2
|
api_version: 2
|
||||||
ssl: false
|
ssl: false
|
||||||
host: 192.168.178.X
|
host: 192.168.178.58
|
||||||
port: 8181
|
port: 8181
|
||||||
token: !secret influxdb3_homeassistant_token
|
token: !secret influxdb3_homeassistant_token
|
||||||
organization: homelab
|
organization: homelab
|
||||||
@@ -60,7 +86,7 @@ influxdb:
|
|||||||
- sensor.wallbox_energie_heute
|
- sensor.wallbox_energie_heute
|
||||||
```
|
```
|
||||||
|
|
||||||
Die `sensor.*gw*`-Regel ist nur ein Startpunkt, weil Ecowitt-Gateways haeufig `gw...` im Entity-Namen haben. Nach dem ersten Export in Grafana pruefen und die Liste enger machen.
|
Die `sensor.*ecowitt*`- und `sensor.*gw*`-Regeln sind nur Startpunkte. Nach dem ersten Ecowitt-Push die echten Entity-IDs aus Home Assistant auslesen und die Liste enger machen.
|
||||||
|
|
||||||
Nach dem Edit:
|
Nach dem Edit:
|
||||||
|
|
||||||
@@ -69,7 +95,7 @@ ha core check
|
|||||||
ha core restart
|
ha core restart
|
||||||
```
|
```
|
||||||
|
|
||||||
## 4. Grafana Smoke-Test
|
## 5. Grafana Smoke-Test
|
||||||
|
|
||||||
In Grafana mit der bestehenden Datenquelle `InfluxDB 3 Core` eine SQL-Abfrage testen:
|
In Grafana mit der bestehenden Datenquelle `InfluxDB 3 Core` eine SQL-Abfrage testen:
|
||||||
|
|
||||||
@@ -88,7 +114,7 @@ ORDER BY time DESC
|
|||||||
LIMIT 20
|
LIMIT 20
|
||||||
```
|
```
|
||||||
|
|
||||||
## 5. Dashboard-Kandidaten
|
## 6. Dashboard-Kandidaten
|
||||||
|
|
||||||
Sinnvolle Panels fuer das erste Wetter-Dashboard:
|
Sinnvolle Panels fuer das erste Wetter-Dashboard:
|
||||||
|
|
||||||
@@ -101,7 +127,7 @@ Sinnvolle Panels fuer das erste Wetter-Dashboard:
|
|||||||
- PV-Ueberschuss vs. Wetter
|
- PV-Ueberschuss vs. Wetter
|
||||||
- Wallbox-Leistung vs. PV-Ueberschuss
|
- Wallbox-Leistung vs. PV-Ueberschuss
|
||||||
|
|
||||||
## 6. Erste Automationen
|
## 7. Erste Automationen
|
||||||
|
|
||||||
Home Assistant bleibt fuer Reaktionen zustaendig:
|
Home Assistant bleibt fuer Reaktionen zustaendig:
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -74,7 +74,7 @@ Secret-Werte werden hier nicht dokumentiert. Aufgefuehrt werden nur Variablennam
|
|||||||
| Stack | Compose | Services / Images | Traefik Hosts | Networks | Ports | Abhaengigkeiten |
|
| Stack | Compose | Services / Images | Traefik Hosts | Networks | Ports | Abhaengigkeiten |
|
||||||
|---|---|---|---|---|---|---|
|
|---|---|---|---|---|---|---|
|
||||||
| Gitea | `core/gitea/docker-compose.yml` | `gitea` -> `docker.gitea.com/gitea:1.25.4` | `git.kaleschke.info` | `frontend_net` | `222:22/tcp` | SQLite in `/data`; SSH-Port ist dokumentierte Ausnahme |
|
| Gitea | `core/gitea/docker-compose.yml` | `gitea` -> `docker.gitea.com/gitea:1.25.4` | `git.kaleschke.info` | `frontend_net` | `222:22/tcp` | SQLite in `/data`; SSH-Port ist dokumentierte Ausnahme |
|
||||||
| Authelia | `security/authelia/docker-compose.yml` | `authelia` -> `authelia/authelia:latest@sha256:...` | `auth.kaleschke.info` | `frontend_net`, `backend_net` | keine | PostgreSQL 17, Redis, Traefik ForwardAuth |
|
| Authelia | `security/authelia/docker-compose.yml` | `authelia` -> `authelia/authelia:latest@sha256:...` | `auth.kaleschke.info` | `frontend_net`, `backend_net` | keine | PostgreSQL 17 Storage, Traefik ForwardAuth; bewusst ohne Redis-Session-Backend |
|
||||||
| Vaultwarden | `security/vaultwarden/docker-compose.yml` | `vaultwarden` -> `vaultwarden/server:latest@sha256:...` | `vault.kaleschke.info` | `frontend_net` | keine | Datei-Persistenz, `ADMIN_TOKEN_FILE` |
|
| Vaultwarden | `security/vaultwarden/docker-compose.yml` | `vaultwarden` -> `vaultwarden/server:latest@sha256:...` | `vault.kaleschke.info` | `frontend_net` | keine | Datei-Persistenz, `ADMIN_TOKEN_FILE` |
|
||||||
| ddns-updater | `infra/ddns-updater/docker-compose.yml` | `ddns-updater` -> `ghcr.io/qdm12/ddns-updater:latest@sha256:...` | keine | `frontend_net` | keine | Cloudflare/API-Internetbedarf |
|
| ddns-updater | `infra/ddns-updater/docker-compose.yml` | `ddns-updater` -> `ghcr.io/qdm12/ddns-updater:latest@sha256:...` | keine | `frontend_net` | keine | Cloudflare/API-Internetbedarf |
|
||||||
| PostgreSQL 17 | `infra/postgresql17/docker-compose.yml` | `postgresql17` -> `postgres:17` | keine | `backend_net` | keine | shared DB-Cluster |
|
| PostgreSQL 17 | `infra/postgresql17/docker-compose.yml` | `postgresql17` -> `postgres:17` | keine | `backend_net` | keine | shared DB-Cluster |
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ Sie ist die fachliche Ergaenzung zu `docs/DISASTER_RECOVERY.md`.
|
|||||||
| Tailscale | Share / Borg | `/mnt/user/appdata/tailscale` | keine | Tailscale-State im Pfad | Host-Netz | Tailscale verbunden |
|
| Tailscale | Share / Borg | `/mnt/user/appdata/tailscale` | keine | Tailscale-State im Pfad | Host-Netz | Tailscale verbunden |
|
||||||
| PostgreSQL 17 | Share + Dumps | `/mnt/user/appdata/postgresql17` | `postgresql17-globals.sql`, `postgresql17-mailarchiver.dump`, `postgresql17-paperless.dump`, optional `postgresql17-authelia.dump` | `postgres_password.txt` | `backend_net` | DB startet, Ziel-Datenbanken vorhanden |
|
| PostgreSQL 17 | Share + Dumps | `/mnt/user/appdata/postgresql17` | `postgresql17-globals.sql`, `postgresql17-mailarchiver.dump`, `postgresql17-paperless.dump`, optional `postgresql17-authelia.dump` | `postgres_password.txt` | `backend_net` | DB startet, Ziel-Datenbanken vorhanden |
|
||||||
| Redis | Share / Host | `/mnt/user/appdata/redis` | keine | `redis_password.txt` | `backend_net` | Redis startet, Apps verbinden sich |
|
| Redis | Share / Host | `/mnt/user/appdata/redis` | keine | `redis_password.txt` | `backend_net` | Redis startet, Apps verbinden sich |
|
||||||
| Authelia | Borg | `/mnt/user/appdata/authelia/config`, `/mnt/user/appdata/secrets/*authelia*` | Shared PostgreSQL, optional Dump `postgresql17-authelia.dump` | JWT/Session/Storage/Postgres-Secret-Dateien | PostgreSQL 17, Redis, Traefik | Login-Seite und ForwardAuth funktionieren |
|
| Authelia | Borg | `/mnt/user/appdata/authelia/config`, `/mnt/user/appdata/secrets/*authelia*` | Shared PostgreSQL, optional Dump `postgresql17-authelia.dump` | JWT/Session/Storage/Postgres-Secret-Dateien | PostgreSQL 17, Traefik | Login-Seite und ForwardAuth funktionieren; aktive Sessions werden nach Restart neu aufgebaut |
|
||||||
| Gitea | Borg / Share | `/mnt/user/services/gitea/data` | SQLite in `/data` | keine separaten Secret-Dateien dokumentiert | Traefik | Web-UI erreichbar, Repo sichtbar, SSH-Port reagiert |
|
| Gitea | Borg / Share | `/mnt/user/services/gitea/data` | SQLite in `/data` | keine separaten Secret-Dateien dokumentiert | Traefik | Web-UI erreichbar, Repo sichtbar, SSH-Port reagiert |
|
||||||
| Komodo | Borg / Share | `/mnt/user/appdata/komodo/core`, `/mnt/user/appdata/komodo/periphery` | `komodo-mongo.archive.gz` falls verifiziert | `komodo_mongo_password.txt`, `KOMODO_*` Stack ENV | Traefik, Mongo, Gitea | UI erreichbar, Periphery verbunden |
|
| Komodo | Borg / Share | `/mnt/user/appdata/komodo/core`, `/mnt/user/appdata/komodo/periphery` | `komodo-mongo.archive.gz` falls verifiziert | `komodo_mongo_password.txt`, `KOMODO_*` Stack ENV | Traefik, Mongo, Gitea | UI erreichbar, Periphery verbunden |
|
||||||
| Vaultwarden | Borg / Share | `/mnt/user/appdata/vaultwarden` | dateibasiert | `vaultwarden_admin_token.txt` | Traefik | Login-Seite erreichbar, Tresor-Daten sichtbar |
|
| Vaultwarden | Borg / Share | `/mnt/user/appdata/vaultwarden` | dateibasiert | `vaultwarden_admin_token.txt` | Traefik | Login-Seite erreichbar, Tresor-Daten sichtbar |
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ Dieses Dokument listet sensible Daten, deren Ablageorte und die vorgesehene Einb
|
|||||||
| Grafana | Admin Password | `/mnt/user/appdata/secrets/grafana_admin_password.txt` -> `GF_SECURITY_ADMIN_PASSWORD__FILE` | vorbereitet |
|
| Grafana | Admin Password | `/mnt/user/appdata/secrets/grafana_admin_password.txt` -> `GF_SECURITY_ADMIN_PASSWORD__FILE` | vorbereitet |
|
||||||
| InfluxDB 3 Core | Admin Token JSON | `/mnt/user/appdata/secrets/influxdb3_admin_token.json` -> Docker Secret `/run/secrets/influxdb3_admin_token` | vorbereitet |
|
| InfluxDB 3 Core | Admin Token JSON | `/mnt/user/appdata/secrets/influxdb3_admin_token.json` -> Docker Secret `/run/secrets/influxdb3_admin_token` | vorbereitet |
|
||||||
| Grafana -> InfluxDB | Datasource Token | `/mnt/user/appdata/secrets/grafana_influxdb_token.txt` -> Docker Secret `/run/secrets/grafana_influxdb_token` | vorbereitet |
|
| Grafana -> InfluxDB | Datasource Token | `/mnt/user/appdata/secrets/grafana_influxdb_token.txt` -> Docker Secret `/run/secrets/grafana_influxdb_token` | vorbereitet |
|
||||||
|
| Home Assistant -> InfluxDB | HA InfluxDB Token | `/homeassistant/secrets.yaml` -> `influxdb3_homeassistant_token` | geplant |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ Secret-Werte sind nicht enthalten. Es werden nur Secret-Namen, Env-Key-Namen und
|
|||||||
|
|
||||||
| Service | Zweck | Autoritativer Pfad | URL / Zugang | Abhaengigkeiten | Datenpfade | Backup / Restore | Traefik | Besonderheiten / TODOs |
|
| Service | Zweck | Autoritativer Pfad | URL / Zugang | Abhaengigkeiten | Datenpfade | Backup / Restore | Traefik | Besonderheiten / TODOs |
|
||||||
|---|---|---|---|---|---|---|---|---|
|
|---|---|---|---|---|---|---|---|---|
|
||||||
| `authelia` | ForwardAuth / zentrale Auth fuer Admin-UIs | `security/authelia/docker-compose.yml`, `security/authelia/configuration.yml` | `https://auth.kaleschke.info` | PostgreSQL 17, Redis, Traefik | `/mnt/user/appdata/authelia/config`, Authelia Secret-Dateien | Tier 1, config + DB + secrets | ja | Template im Repo, Host-Datei pruefen; Access-Control und Compose-Middleware bei Aenderungen abgleichen |
|
| `authelia` | ForwardAuth / zentrale Auth fuer Admin-UIs | `security/authelia/docker-compose.yml`, `security/authelia/configuration.yml` | `https://auth.kaleschke.info` | PostgreSQL 17, Traefik | `/mnt/user/appdata/authelia/config`, Authelia Secret-Dateien | Tier 1, config + DB + secrets | ja | Bewusst ohne Redis-Session-Backend; Template im Repo, Host-Datei pruefen; Access-Control und Compose-Middleware bei Aenderungen abgleichen |
|
||||||
| `vaultwarden` | Passwort-Tresor | `security/vaultwarden/docker-compose.yml` | `https://vault.kaleschke.info` | Traefik, `frontend_net` | `/mnt/user/appdata/vaultwarden` | Tier 1 | ja | `ADMIN_TOKEN_FILE`; keine direkten Ports |
|
| `vaultwarden` | Passwort-Tresor | `security/vaultwarden/docker-compose.yml` | `https://vault.kaleschke.info` | Traefik, `frontend_net` | `/mnt/user/appdata/vaultwarden` | Tier 1 | ja | `ADMIN_TOKEN_FILE`; keine direkten Ports |
|
||||||
|
|
||||||
## Shared Infrastructure
|
## Shared Infrastructure
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ Monitoring-Stack fuer Grafana + InfluxDB 3 Core. InfluxDB bleibt ohne Public Rou
|
|||||||
|
|
||||||
Pfad: `/mnt/user/appdata/secrets/influxdb3_admin_token.json`, Rechte `600`.
|
Pfad: `/mnt/user/appdata/secrets/influxdb3_admin_token.json`, Rechte `600`.
|
||||||
|
|
||||||
3. Grafana-Datasource-Token anlegen. Fuer den ersten Start kann der Token aus `influxdb3_admin_token.json` verwendet werden; sobald ein eingeschraenkter Read-Token existiert, diesen hier eintragen:
|
3. Grafana-Datasource-Token anlegen. Fuer InfluxDB 3 Core aktuell einen eigenen Named-Admin-Token verwenden, damit der Grafana-Zugang getrennt vom initialen Operator-/Admin-Token rotiert werden kann:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
install -m 600 /dev/null /mnt/user/appdata/secrets/grafana_influxdb_token.txt
|
install -m 600 /dev/null /mnt/user/appdata/secrets/grafana_influxdb_token.txt
|
||||||
|
|||||||
Reference in New Issue
Block a user