Zum Inhalt

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