Infisical Agent¶
Hintergrund-Daemon, der Secrets aus Infisical als env_file für die
Compose-Stacks rendert. Er ersetzt das frühere Muster, jeden Stack mit
infisical run -- docker compose up zu starten.
Infisical
Zugriff¶
| Wo | NUC (10.10.10.3), systemd-Dienst infisical-agent.service |
| Konfiguration | /etc/infisical/agent.yaml (nicht im Repo) |
| Ausgabe | /run/infisical/<stack>.env (tmpfs, root:robin 0640) |
| Logs | sudo journalctl -u infisical-agent.service |
Der Dienst läuft nativ auf dem Host, nicht als Container: Er muss vor
Docker starten, damit die env_file-Dateien beim Containerstart bereits
existieren (Before=docker.service).
Anbindung in Compose-Stacks¶
services:
<service>:
image: <gepinnt>
env_file:
- /run/infisical/<stack>.env
environment:
- TZ=Europe/Berlin # Nicht-Geheimes bleibt inline
Danach genügt ein einfaches docker compose up -d.
Konfiguration¶
| Aspekt | Wert |
|---|---|
| Authentifizierung | Universal Auth mit Machine Identity nuc-agent |
| Credentials | /etc/infisical/client-{id,secret}, root:root 0600 |
| Polling | 60 s je Template |
| Härtung | NoNewPrivileges, ProtectSystem=strict, ProtectHome=true, UMask=0027 |
RuntimeDirectory=infisical legt /run/infisical als 0750 root:robin an —
damit ist das Verzeichnis trotz ProtectSystem=strict beschreibbar.
Die Datenregion muss stimmen
address muss zur Region der Infisical-Cloud-Instanz passen. Diese Instanz
liegt in der EU: https://eu.infisical.com. Der US-Endpunkt
https://app.infisical.com quittiert den Login mit
401 Invalid credentials — obwohl Client-ID und Secret korrekt sind. Das
Fehlerbild führt zuverlässig auf die falsche Fährte.
Secret-Rotation erreicht laufende Container nicht von selbst
Ein rotiertes Secret steht nach spätestens einer Minute in der
.env-Datei. Der laufende Container behält aber seinen alten Wert bis zu
einem docker compose up -d --force-recreate.
Angebundene Stacks¶
| Stack | Infisical-Pfad |
|---|---|
| Ollama | /ollama |
| Speedtest-Tracker | /speedtest-tracker |
Für jeden weiteren Stack kommt ein Template-Block in agent.yaml, danach
sudo systemctl reload infisical-agent.service.
Betrieb¶
sudo systemctl status infisical-agent.service
sudo systemctl reload infisical-agent.service # nach Config-Änderung
sudo journalctl -u infisical-agent.service -f
ls -l /run/infisical/ # gerenderte Dateien
Die vollständige Bootstrap-Anleitung (Machine Identity anlegen, Credentials
ablegen, Unit deployen) steht im homeserver-Repo unter
infrastructure/infisical-agent/README.md.
Offen¶
- Weitere Stacks anbinden (Paperless-NGX)
- Prometheus-Exporter für den Agent-Status, falls verfügbar
- Optionales Auto-Reload der Container via
execute.command