OIDC_ISSUER=PocketID (der Name statt der Adresse) endete in unsupported protocol scheme "" – tief aus der Bibliothek, ohne Hinweis auf die Ursache. Und weil ein Fehlschlag hier den Start abbricht, stand die ganze Cloud wegen einer Zeile in der .env. Jetzt wird vorher geprueft und die Zeile beim Namen genannt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
99 lines
5.9 KiB
Bash
99 lines
5.9 KiB
Bash
# 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 – nur ein $ muss $$ heißen oder der Wert in
|
||
# 'einfache Anführungszeichen'. Sonst schneidet Compose lautlos ab. (README)
|
||
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
|
||
# Frühere Fassungen je Datei. Greift nur bei eingeschaltetem „Keep versions".
|
||
MAX_VERSIONS_KEPT=5
|
||
# 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 $$ heißen (siehe DB_PASSWORD).
|
||
ADMIN_USERNAME=admin
|
||
ADMIN_PASSWORD=changeme_strong_admin_password
|
||
|
||
# ── OIDC (optional) ───────────────────────────────────────────────────────────
|
||
# Leerer OIDC_ISSUER = aus. OIDC_REDIRECT_URL muss exakt
|
||
# <PUBLIC_URL>/api/v1/auth/oidc/callback sein und beim Anbieter eingetragen.
|
||
# OIDC_ISSUER=https://your-idp.example.com # Adresse, nicht der Name
|
||
# 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, auch wenn ein Office-Container läuft. Schnipsel: README.md
|
||
OFFICE_PROVIDER= # collabora | onlyoffice (auch Euro-Office)
|
||
# Backend → Office. Collabora lauscht auf 9980, OnlyOffice/Euro-Office auf 80.
|
||
OFFICE_URL=
|
||
OFFICE_PUBLIC_URL= # Browser → Office; leer = wie OFFICE_URL
|
||
# Office → Aether; leer = PUBLIC_URL.
|
||
# Weder localhost noch der veröffentlichte Port – beides scheitert.
|
||
OFFICE_WOPI_URL=
|
||
OFFICE_ALLOWED_HOSTS= # gegen SSRF; Host aus OFFICE_URL zählt immer
|
||
OFFICE_JWT_SECRET= # nur OnlyOffice/Euro-Office, mind. 32 Zeichen
|
||
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 # true nur, wenn davor wirklich HTTPS endet
|
||
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.
|