Amministrazione / Riferimento

Konfigurationsoptionen

DE Questa pagina è disponibile solo in tedesco.

Riferimento

Alle Optionen von sitrep serve zum Nachschlagen. Jede Option lässt sich auf drei Arten setzen:

  • als Kommandozeilen-Flag, zum Beispiel --port 8080,
  • als Umgebungsvariable, zum Beispiel SITREP_PORT=8080,
  • in der Konfigurationsdatei, zum Beispiel port: 8080.

Die Reihenfolge, wenn eine Option mehrfach gesetzt ist: Flag vor Umgebungsvariable vor Konfigurationsdatei vor Standardwert.

Konfigurationsdatei

Die Datei ist YAML. Mit --config <datei> geben Sie sie an. Ohne --config liest sitrep eine Datei config.yaml im Arbeitsverzeichnis, falls es sie gibt. Das Paket installiert /etc/sitrep/config.yaml und der systemd-Dienst übergibt sie mit --config. Eine ausführlich kommentierte Vorlage ist packaging/config.yaml im Quellcode.

  • Die Schlüssel heissen wie die Flags und werden mit Bindestrichen geschrieben (log-level). Schlüssel mit Unterstrichen werden stillschweigend ignoriert.
  • Die Optionen für Dateianhänge sind verschachtelt (storage.attachments.…, siehe unten).

Umgebungsvariablen

Jede Option hat eine Umgebungsvariable SITREP_<SCHLÜSSEL>. Der Schlüssel wird gross geschrieben, Bindestriche und Punkte werden zu Unterstrichen. Aus database-url wird SITREP_DATABASE_URL, aus storage.attachments.max-size wird SITREP_STORAGE_ATTACHMENTS_MAX_SIZE.

Für ältere Installationen werden bei manchen Optionen weitere Namen akzeptiert (zum Beispiel DATABASE_URL). Sie stehen in der Tabelle unter «Weitere Namen». Verwenden Sie für neue Einrichtungen die SITREP_…-Namen.

Listen (allowed-origins, acme-domains) übergeben Sie als wiederholtes Flag, als kommagetrennten Wert in der Umgebungsvariable oder als YAML-Liste.

Server

OptionUmgebungsvariableStandardBeschreibung
--portSITREP_PORT4180Port, auf dem sitrep lauscht. Bei HTTPS typischerweise 443, dann braucht die Binärdatei CAP_NET_BIND_SERVICE. Weitere Namen: SITREP_SERVER_PORT, SERVER_PORT
--log-levelSITREP_LOG_LEVELinfoProtokollstufe: debug, info, warn, error. Weiterer Name: LOG_LEVEL
--allowed-originsSITREP_ALLOWED_ORIGINSleerErlaubte CORS-Ursprünge, zum Beispiel https://sitrep.example.org. Leer heisst: nur derselbe Ursprung. Weiterer Name: ALLOWED_ORIGINS
--config––Pfad zur Konfigurationsdatei. Nur als Flag, nicht in der Datei selbst

Datenbank

OptionUmgebungsvariableStandardBeschreibung
--database-urlSITREP_DATABASE_URLleerVerbindung zur Datenbank, PostgreSQL oder SQLite. Beispiele: sqlite:///var/lib/sitrep/sitrep.sqlite oder postgres://sitrep@/sitrep?host=/var/run/postgresql. Weiterer Name: DATABASE_URL. Dieser Schalter gilt für serve ebenso wie für migrate und access
--migrate-on-startupSITREP_MIGRATE_ON_STARTUPfalseFührt offene Datenbankmigrationen im Serverprozess aus. Das Paket erledigt das in einem eigenen Schritt vor dem Start (sitrep migrate up), dort bleibt die Option false. Weiterer Name: MIGRATE_ON_STARTUP

Anmeldung

OptionUmgebungsvariableStandardBeschreibung
--oidc-issuerSITREP_OIDC_ISSUERleerURL des OpenID-Connect-Anbieters. Weitere Namen: OIDC_ISSUER, OAUTH2_PROXY_OIDC_ISSUER_URL
--oidc-client-idSITREP_OIDC_CLIENT_IDleerClient-ID. Weitere Namen: OIDC_CLIENT_ID, OAUTH2_PROXY_CLIENT_ID
--oidc-client-secretSITREP_OIDC_CLIENT_SECRETleerClient-Secret. Weitere Namen: OIDC_CLIENT_SECRET, OAUTH2_PROXY_CLIENT_SECRET
--oidc-redirect-urlSITREP_OIDC_REDIRECT_URLleerRücksprungadresse, zum Beispiel https://sitrep.example.org/oauth2/callback. Weitere Namen: OIDC_REDIRECT_URL, OAUTH2_PROXY_REDIRECT_URL
--cookie-keySITREP_COOKIE_KEYleerSchlüssel zum Signieren der Sitzungs-Cookies. Erzeugen Sie ihn mit openssl rand -base64 32. Weitere Namen: COOKIE_KEY, OIDC_COOKIE_KEY, OAUTH2_PROXY_COOKIE_SECRET
--insecure-local-authSITREP_INSECURE_LOCAL_AUTHfalseErlaubt Zugriff ohne Anmeldung als festen lokalen Benutzer. Nur zum Ausprobieren, nie in Produktion. Weiterer Name: INSECURE_LOCAL_AUTH

Regeln:

  • Wenn oidc-client-id gesetzt ist, müssen auch oidc-issuer, oidc-client-secret und oidc-redirect-url gesetzt sein, sonst startet sitrep nicht.
  • Ist weder oidc-client-id noch insecure-local-auth gesetzt, startet sitrep nicht.

Aufbewahrung

OptionUmgebungsvariableStandardBeschreibung
--auto-close-incidentsSITREP_AUTO_CLOSE_INCIDENTS0Schliesst Ereignisse automatisch, die so viele Tage offen waren. 0 schaltet es aus
--auto-archive-incidentsSITREP_AUTO_ARCHIVE_INCIDENTS0Archiviert die Ereignisströme von Ereignissen, die vor so vielen Tagen abgeschlossen wurden. 0 schaltet es aus. Archivieren entfernt die laufenden Ereignisströme und löst einen Neuaufbau des Read-Models aus

Dateianhänge

In der Konfigurationsdatei sind diese Optionen verschachtelt:

storage:
  attachments:
    enabled: true
    backend: filesystem
    max-size: 25mb
    filesystem:
      dir: "/var/lib/sitrep/attachments"
FlagUmgebungsvariableStandardBeschreibung
--attachments-enabledSITREP_STORAGE_ATTACHMENTS_ENABLEDtrueDateianhänge an Meldungen erlauben. Schlüssel in der Datei: storage.attachments.enabled
--attachments-backendSITREP_STORAGE_ATTACHMENTS_BACKENDsiehe untenWo die Dateien liegen: database, filesystem oder ephemeral. Schlüssel: storage.attachments.backend
--attachments-max-sizeSITREP_STORAGE_ATTACHMENTS_MAX_SIZE25mbMaximale Grösse pro Datei, in Bytes oder mit Endung kb, mb, gb. Grösser als 25 MiB ist nicht möglich. Schlüssel: storage.attachments.max-size
--attachments-dirSITREP_STORAGE_ATTACHMENTS_FILESYSTEM_DIR/var/lib/sitrep/attachmentsVerzeichnis für die Dateien beim Backend filesystem. Es muss existieren und für den sitrep-Prozess beschreibbar sein. Schlüssel: storage.attachments.filesystem.dir

Die Speicherorte:

  • database: Die Dateien liegen in der PostgreSQL-Datenbank. Mit SQLite ist das nicht möglich.
  • filesystem: Die Dateien liegen auf der Festplatte. Das ist die übliche Wahl mit SQLite. Das Paket stellt es in config.yaml so ein.
  • ephemeral: Die Dateien liegen in einem temporären Verzeichnis und sind nach einem Neustart weg.

Ohne Angabe nimmt sitrep database, wenn eine Datenbank-URL gesetzt ist, sonst ephemeral. Setzen Sie bei SQLite deshalb filesystem ausdrücklich.

HTTPS (TLS)

Lassen Sie alle Optionen dieses Abschnitts leer, wenn sitrep hinter einem Reverse-Proxy läuft, der HTTPS beendet. Das ist der übliche Betrieb. Sie können entweder ein festes Zertifikat oder ACME verwenden.

OptionUmgebungsvariableStandardBeschreibung
--tls-certSITREP_TLS_CERTleerPfad zum PEM-Zertifikat. Aktiviert HTTPS zusammen mit --tls-key. Weiterer Name: TLS_CERT
--tls-keySITREP_TLS_KEYleerPfad zum privaten PEM-Schlüssel. Weiterer Name: TLS_KEY
--acme-domainsSITREP_ACME_DOMAINSleerHostnamen, für die sitrep ein Zertifikat von Let’s Encrypt holt. Schaltet ACME ein und verlangt --port 443
--acme-emailSITREP_ACME_EMAILleerKontaktadresse für Hinweise des Zertifikatsanbieters
--acme-cache-dirSITREP_ACME_CACHE_DIR/var/lib/sitrep/acmeVerzeichnis für Kontoschlüssel und Zertifikate. Es muss Neustarts überleben, sonst fordert jeder Start ein neues Zertifikat an und Sie erreichen die Grenzen des Anbieters
--acme-directory-urlSITREP_ACME_DIRECTORY_URLleerAdresse des ACME-Verzeichnisses. Leer heisst Let’s Encrypt (Produktion). Zum Testen eignet sich https://acme-staging-v02.api.letsencrypt.org/directory

Beim Paket liegen Zertifikat und Schlüssel als echte Dateien (keine Symlinks) in /etc/sitrep/tls. Der Dienst stellt sie im Dienstverzeichnis als tls_cert.pem und tls_key.pem bereit, entsprechend lauten die Werte tls-cert: "tls_cert.pem" und tls-key: "tls_key.pem".

Telemetrie

OptionUmgebungsvariableStandardBeschreibung
--telemetry-disabledSITREP_TELEMETRY_DISABLEDfalseSchaltet den Export von OpenTelemetry-Daten aus. Weiterer Name: OTEL_SDK_DISABLED

Der Endpunkt ist beim Bauen eingebaut (https://telemetry.sitrep.ch). Mit den Standardvariablen von OpenTelemetry lässt sich das Verhalten anpassen:

  • OTEL_EXPORTER_OTLP_ENDPOINT="" überschreibt den eingebauten Endpunkt und schaltet den Export ohne Konfigurationsänderung aus.
  • OTEL_RESOURCE_ATTRIBUTES=deployment.environment.name=production ändert den Namen der Umgebung, der mit jedem Signal mitgeschickt wird. Standard ist self-hosted.

Entwicklung

OptionUmgebungsvariableStandardBeschreibung
--graphql-introspectionSITREP_GRAPHQL_INTROSPECTIONfalseSchaltet GraphQL-Introspektion und den Playground ein. In Produktion ausgeschaltet lassen. Weiterer Name: GRAPHQL_INTROSPECTION