# Aether – alle Schalter. cp deploy/.env.example deploy/.env # Erklärungen und Fallstricke: README.md, Abschnitt „Einstellungen" # # Für den reinen Betrieb genügt die kürzere .env.example im # Wurzelverzeichnis – hier steht zusätzlich alles Optionale. # ── App ─────────────────────────────────────────────────────────────────────── APP_ENV=production # development | production APP_LISTEN_ADDR=:8080 # im Container; der Proxy leitet hierher PUBLIC_URL=https://cloud.example.com # IPs/CIDRs der Proxys, denen X-Forwarded-For/-Proto geglaubt wird. TRUSTED_PROXIES=172.18.0.1 # ── Datenbank ───────────────────────────────────────────────────────────────── # DB_HOST ist der Dienstname aus dem Compose, nicht localhost. DB_HOST=postgres DB_PORT=5432 DB_NAME=aether DB_USER=aether # Jedes Zeichen erlaubt, auch % @ : / und Leerzeichen. # Ein $ im Wert wird von Docker Compose als Variable gelesen und schneidet # lautlos ab: geheim$wort kommt als geheim an. Als $$ schreiben oder den # ganzen Wert in 'einfache Anfuehrungszeichen' setzen. Ein \ hilft NICHT. # Im Container steht danach EIN $ – so gehoert es, angemeldet wird mit einem. DB_PASSWORD=changeme_strong_password # ── Sitzung ─────────────────────────────────────────────────────────────────── SESSION_SECRET=changeme_generate_with_openssl_rand_hex_32 # openssl rand -hex 32 SESSION_MAX_AGE=86400 # Sekunden # ── Speicher ────────────────────────────────────────────────────────────────── STORAGE_PATH=/data # im Container TMP_PATH=/data/tmp # Verzeichnis auf dem Wirt. Nur lesend anfassen – zum Hineinlegen: WebDAV. DATA_PATH=/pfad/zu/aether-data # `id -u` / `id -g` – sonst gehören die Dateien einem Container-Nutzer. APP_UID=1000 APP_GID=1000 # Port auf dem Wirt. Im Container bleibt es 8080. APP_PORT=8080 # Wer den Port erreichen darf. 127.0.0.1 = nur dieser Rechner (Vorgabe). # 0.0.0.0 = das ganze Netz – dann unverschlüsselt. APP_BIND=127.0.0.1 # ── Erster Start ────────────────────────────────────────────────────────────── # Legt den Admin an. Danach ADMIN_PASSWORD leeren. # Auch hier: ein $ muss $$ heissen (siehe DB_PASSWORD). ADMIN_USERNAME=admin ADMIN_PASSWORD=changeme_strong_admin_password # ── OIDC (optional) ─────────────────────────────────────────────────────────── # Leerer OIDC_ISSUER = aus. OIDC_REDIRECT_URL muss exakt # /api/v1/auth/oidc/callback sein und beim Anbieter eingetragen. # OIDC_ISSUER=https://your-idp.example.com # OIDC_CLIENT_ID=aether # OIDC_CLIENT_SECRET= # OIDC_REDIRECT_URL=https://cloud.example.com/api/v1/auth/oidc/callback # Bestehendes Konto verbinden statt ein zweites anzulegen. # VOR der ersten Anmeldung setzen – danach ist es zu spät. # OIDC_LINK_BY_USERNAME=true # ── Volltextsuche (OCR) ─────────────────────────────────────────────────────── # Standardmäßig an; fehlen ocrmypdf/tesseract, schaltet es sich selbst ab. # OCR_ENABLED=false # OCR_LANGUAGES=deu+eng # weitere brauchen ein apk-Paket im Dockerfile # OCR_MAX_PAGES=50 # 0 = unbegrenzt; rund 1 Minute je Seite # OCR_TIMEOUT=10m # Notbremse je Datei # ── App-Umschalter ──────────────────────────────────────────────────────────── # Andere selbst gehostete Apps im Menü der Seitenleiste. # Format: Name|URL|Emoji – mehrere durch Komma. Leer = kein Menü. EXTERNAL_APPS= # ── Office (optional) ───────────────────────────────────────────────────────── # Leer = aus. Container-Schnipsel: README.md OFFICE_PROVIDER= # collabora | onlyoffice (auch Euro-Office) OFFICE_URL= # Backend → Office OFFICE_PUBLIC_URL= # Browser → Office; leer = wie OFFICE_URL # Office → Aether; leer = PUBLIC_URL. # NICHT localhost, NICHT der veröffentlichte Port – beides scheitert. OFFICE_WOPI_URL= OFFICE_ALLOWED_HOSTS= # gegen SSRF; Host aus OFFICE_URL zählt immer # Nur fuer OnlyOffice/Euro-Office: gemeinsames Geheimnis, mind. 32 Zeichen. # openssl rand -hex 32 – Collabora braucht es nicht. OFFICE_JWT_SECRET= OFFICE_INSECURE_TLS=false # nur für Tests mit selbstsigniertem Zertifikat # Nur für den Collabora-Container aus deploy/docker-compose.yml: OFFICE_ALIASGROUP=http://app:8080 OFFICE_SSL=false OFFICE_SSL_TERMINATION=false # produktiv true; false ohne HTTPS davor OFFICE_PORT=9980 # ── Später ──────────────────────────────────────────────────────────────────── # MEILISEARCH_URL=http://meilisearch:7700 # MEILISEARCH_KEY= # ── WebDAV ──────────────────────────────────────────────────────────────────── # Läuft unter /dav/, kein Schalter nötig. Der Proxy muss # PROPFIND/MKCOL/MOVE/COPY durchreichen.