Zum Inhalt springen

Umgebungsvariablen

Kopieren Sie .env.example nach .env und füllen Sie aus, was Sie brauchen — die wenigen tatsächlich erforderlichen stehen unter Erste Schritte → Installation. Ein leerer Wert in .env fällt auf den hier genannten Standard zurück; NODE_ENV fehlt absichtlich in der Datei, da das Release-Image immer mit NODE_ENV=production läuft und jeder Eintrag hier, selbst ein leerer, das überschreiben würde.

Variable Standard Zweck
PORT 3000 HTTP-Port des api-Prozesses.
OSIRIS_PUBLIC_URL Öffentliche Origin, die der Browser nutzt (nur Origin), z. B. https://app.example.com oder http://localhost:5173.
OSIRIS_APP_DOMAIN Öffentliche App-Domain für die Caddy-Edge (automatisches Let’s-Encrypt-TLS), z. B. app.example.com.
OSIRIS_API_URL Interne API-Basis-URL.
OSIRIS_MODE Betriebsmodus: local | public. Wird vom Einrichtungsassistenten gesetzt; lässt sich hier festlegen.
OSIRIS_EDITION community Edition, bis ein Lizenzschlüssel installiert ist: community | business | service_provider.
OSIRIS_LICENSE_PUBLIC_KEY im Release eingebaut Optionale Überschreibung des Ed25519-Lizenzprüfschlüssels (roh, base64url).
OSIRIS_UPDATE_CHECK_URL aus Opt-in Update-Prüfung: ein öffentlicher Releases-Endpunkt (z. B. eine GitHub-.../releases/latest-URL). Leer bedeutet aus; es werden nie Installationsdaten gesendet.
LOG_LEVEL info Log-Level von Worker und Scheduler: debug | info | warn | error.

OSIRIS_VERSION (die laufende Version) wird zur Build-Zeit ins Image geschrieben; setzen Sie sie nicht in .env — ein leerer Wert dort würde sie verbergen.

Variable Standard Zweck
POSTGRES_PASSWORD — (erforderlich) Passwort für den Postgres-Superuser, den Docker Compose anlegt. POSTGRES_USER/POSTGRES_DB sind standardmäßig osiris.
DATABASE_MIGRATION_URL — (erforderlich) Der Datenbankeigentümer; führt nur Migrationen aus.
DATABASE_URL — (erforderlich) Die Anwendungsrolle, der Row Level Security unterliegt. Der Migrationsschritt legt sie mit dem hier angegebenen Namen/Passwort an.
DATABASE_PROVIDER_URL — (erforderlich) Die Installationsrolle (BYPASSRLS), genauso angelegt.

Drei Rollen, drei Verbindungszeichenfolgen, drei verschiedene Passwörter — siehe Erste Schritte → Die drei Datenbank-Rollen. Die Prozesse starten nicht, wenn sich herausstellt, dass DATABASE_URL ein Superuser ist oder RLS umgehen kann.

Erzeugen Sie beide mit openssl rand -base64 32.

Variable Zweck
OSIRIS_MASTER_KEY Erforderlich. 32-Byte-Schlüsselverschlüsselungsschlüssel (KEK), base64. Umschließt jeden Mandantenschlüssel; bewahren Sie eine Kopie offline auf — siehe Osiris selbst sichern.
BETTER_AUTH_SECRET Erforderlich. Secret für die eigenen Tokens und Sitzungen des Auth-Systems.

Microsoft Entra (mandantenübergreifende App für Backup, Client Credentials)

Abschnitt betitelt „Microsoft Entra (mandantenübergreifende App für Backup, Client Credentials)“
Variable Zweck
ENTRA_CLIENT_ID Die Anwendungs-ID (Client-ID) der Backup-App.
ENTRA_CLIENT_SECRET Client-Secret-Zugangsdaten (füllen Sie genau dieses oder den Zertifikatspfad aus).
ENTRA_CLIENT_CERT_PATH Optional: Zertifikatspfad (PEM, privater Schlüssel + Zertifikat) statt eines Secrets. Wird bevorzugt genutzt, wenn beide gesetzt sind.
ENTRA_AUTHORITY_HOST Optional: Authority-Host für souveräne Clouds. Standard https://login.microsoftonline.com.
DIRECTORY_FULL_SYNC_HOURS Standard 24. Stunden zwischen vollständigen Verzeichnis-Enumerationen; dazwischen laufen inkrementelle Abgleiche.

Wie Sie diese Werte erhalten, steht unter Erste Schritte → Microsoft 365 verbinden.

Endnutzer-SSO (delegiertes OIDC über Entra common)

Abschnitt betitelt „Endnutzer-SSO (delegiertes OIDC über Entra common)“
Variable Zweck
ENTRA_SSO_CLIENT_ID Client-ID einer separaten App-Registrierung, die nur für die Anmeldung von Endnutzern genutzt wird (delegiert openid profile email, kein Datenzugriff).
ENTRA_SSO_CLIENT_SECRET Deren Client-Secret.
Variable Zweck
MAIL_TRANSPORT smtp | graph.
SMTP_HOST, SMTP_PORT SMTP-Server und -Port.
SMTP_SECURE true für implizites TLS (wird auch bei Port 465 angenommen); sonst STARTTLS.
SMTP_USER, SMTP_PASSWORD Optionale SMTP-Zugangsdaten.
SMTP_FROM Absenderadresse.
GRAPH_MAIL_SENDER Absenderpostfach für den Microsoft-Graph-sendMail-Transport.
GRAPH_MAIL_TENANT_ID Entra-Mandant des Absenderpostfachs, falls der Einrichtungsassistent keinen nennt.
Variable Standard Zweck
IMAP_ALLOW_INSECURE false Erlaubt IMAP-Quellen ohne TLS. Nur Entwicklung; niemals in Produktion.
IMAP_ALLOW_PRIVATE_NETWORKS nur vom Provider gespeicherte true lässt jede IMAP-Quelle Loopback und private Netze erreichen; standardmäßig können das nur von einer Provider-Administration gespeicherte Server, und Mandanten-Administrationen sind auf öffentliche Server beschränkt.
Variable Standard Zweck
STORAGE_TARGET local Zieltyp: local | s3.
STORAGE_LOCAL_PATH /data/chunks Pfad im Container für das lokale Standardziel.
STORAGE_COPY_LOCAL_PATH Optionales zweites Ziel, in das jeder Standard-Schreibvorgang zusätzlich kopiert wird (eine eingebundene NFS-/SMB-Freigabe).
S3_ENDPOINT, S3_REGION, S3_BUCKET, S3_PREFIX S3-kompatibles Ziel (Hetzner Object Storage, Garage, Wasabi, B2, AWS, …).
S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY S3-Zugangsdaten.
S3_FORCE_PATH_STYLE true false für virtuell gehostete Bucket-Adressierung.
Variable Standard Zweck
WORKER_CONCURRENCY 2 Parallele Jobs je Warteschlange in einem Worker-Prozess.
WORKER_TENANT_CONCURRENCY 2 Parallele Jobs je Mandant in einem Worker-Prozess.
WORKER_POLL_SECONDS 2 Polling-Intervall von pg-boss.
WORKER_SHUTDOWN_TIMEOUT_MS 30000 Wie lange das Herunterfahren auf einen Prüfpunkt laufender Jobs wartet.
WORKER_CANCEL_POLL_MS 15000 Wie oft ein laufender Job prüft, ob er abgebrochen wurde.
WORKER_PROGRESS_FLUSH_ITEMS 50 Fortschritt wird alle N Elemente geschrieben …
WORKER_PROGRESS_FLUSH_MS 2000 … oder mindestens alle M Millisekunden.
Variable Standard Zweck
WEBHOOK_POLL_MS 5000 Polling-Intervall für fällige Zustellungen.
WEBHOOK_CONCURRENCY 4 Parallele Zustellungen.
WEBHOOK_TIMEOUT_MS 10000 Timeout je Versuch.
OSIRIS_WEBHOOK_ALLOW_PRIVATE abgelehnt true erlaubt Webhook-Ziele in Loopback- und privaten Netzen.
Variable Standard Zweck
SCHEDULER_TICK_MS 30000 Tick-Intervall.
SCHEDULER_LEADER_RETRY_MS 15000 Leader-Wiederholung.
SCHEDULER_BATCH_SIZE 200 Fällige Zeitpläne je Tick.
SCHEDULER_DEFER_MS 3600000 Verzögerung, bevor ein nicht planbarer Zeitplan (ungültiger Cron-Ausdruck) erneut betrachtet wird.
SCHEDULER_LOCK_KEY Postgres-Advisory-Lock-Key für die Leader-Wahl; nur ändern, wenn zwei Installationen eine Datenbank teilen.
Variable Standard Zweck
JOURNAL_SMTP_PORT 25 Port, auf dem der SMTP-Journal-Empfänger des Archivs lauscht.
JOURNAL_HOSTNAME Hostname, an den Journal-Reports adressiert werden.