# Aether – das Nötigste für eine neue Umgebung. # # cp .env.example .env # # Vollständige Liste aller Schalter (OIDC, OCR, Thumbnails, Kontingente …): # deploy/.env.example # ── Pflicht ─────────────────────────────────────────────────────────────────── # Steuert nur die Form der Logausgabe: `development` schreibt sie farbig und # mehrzeilig, `production` als JSON für deinen Logsammler. APP_ENV=production # Wie die Cloud von außen erreichbar ist. Wird für OIDC-Rücksprünge, # WOPI-Rückrufe und Freigabe-Links benutzt – ein falscher Wert fällt erst # dort auf, nicht beim Start. PUBLIC_URL=https://cloud.example.com # openssl rand -hex 32 SESSION_SECRET= # `postgres` ist der Dienstname aus dem Compose, nicht localhost – aus dem # Container heraus ist localhost er selbst. Ohne diese Zeile greift die # Voreinstellung `localhost`, und der Start endet in „migrations failed". DB_HOST=postgres DB_PORT=5432 DB_NAME=aether DB_USER=aether # Jedes Zeichen ist erlaubt, auch % @ : / und Leerzeichen. DB_PASSWORD= # Wohin die Dateien auf dem Wirt kommen. Ein gewöhnliches Verzeichnis, kein # Docker-Volume – so kommst du per SFTP oder Dateimanager daran. DATA_PATH=/pfad/zu/aether-data # `id -u` und `id -g`. Ohne das gehören die Dateien einem Container-Nutzer. APP_UID=1000 APP_GID=1000 # ── Reverse Proxy ───────────────────────────────────────────────────────────── # X-Forwarded-For/-Proto werden NUR von diesen Adressen geglaubt. Steht hier # das Falsche, sieht die Anwendung überall die IP des Proxys – Rate-Limit und # Audit-Log werden damit wertlos. TRUSTED_PROXIES=172.18.0.1 # Port auf dem Wirt, gebunden auf loopback. Im Container bleibt es 8080. APP_PORT=8080 # ── Erster Start ────────────────────────────────────────────────────────────── # Legt beim allerersten Start den Admin an. Danach hier leeren – das Konto # bleibt, das Passwort steht sonst dauerhaft in der Datei. ADMIN_USERNAME=admin ADMIN_PASSWORD= # ── Anmeldung über einen Identitätsanbieter (optional) ─────────────────────── # Leerer OIDC_ISSUER = aus, dann nur Benutzername + Passwort. # Die Rücksprung-Adresse muss exakt /api/v1/auth/oidc/callback sein # und beim Anbieter als erlaubte Redirect-URI eingetragen werden. OIDC_ISSUER= OIDC_CLIENT_ID=aether OIDC_CLIENT_SECRET= OIDC_REDIRECT_URL=https://cloud.example.com/api/v1/auth/oidc/callback # Bestehendes Konto mit derselben Kennung verbinden, statt ein zweites # anzulegen. **Vor der ersten Anmeldung setzen** – danach existiert das zweite # Konto ("marc2", leer, ohne Adminrecht) schon, und das Verbinden kommt zu spät. # # Nur bei einem eigenen Anbieter (PocketID, Authentik), dessen Konten du selbst # anlegst. Bei freier Registrierung wäre es die Übernahme fremder Konten. OIDC_LINK_BY_USERNAME=false # ── Office (optional) ───────────────────────────────────────────────────────── # Leer lassen = aus. Den passenden Container-Schnipsel (Collabora, OnlyOffice # oder Euro-Office) findest du im README – er bringt seine eigenen Variablen # mit. Hier steht nur, was Aether selbst wissen muss. # # Drei Adressen für drei Richtungen, und sie sind selten gleich: # OFFICE_URL Backend → Office-Server # OFFICE_PUBLIC_URL Browser → Office-Server # OFFICE_WOPI_URL Office-Server → Aether (NICHT localhost – aus seinem # Container heraus ist das er selbst) OFFICE_PROVIDER= OFFICE_URL=http://office:9980 OFFICE_PUBLIC_URL=https://office.example.com OFFICE_WOPI_URL=http://app:8080 # Ziele, die das Backend anfragen darf – gegen SSRF. Nur der Office-Server. OFFICE_ALLOWED_HOSTS=office