OFFICE_URL stand fest auf http://office:9980 – das ist Collabora. OnlyOffice und Euro-Office lauschen im Container auf 80, dort waere die Adresse http://office ohne Port. Mit dem falschen Port meldet die Discovery nichts und der Menuepunkt bleibt weg. Dazu deutlicher: leerer OFFICE_PROVIDER heisst aus, auch wenn der Container laeuft. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
105 lines
6.2 KiB
Bash
105 lines
6.2 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, 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
|
||
# <PUBLIC_URL>/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) ─────────────────────────────────────────────────────────
|
||
# Nur noetig, wenn du dem Office-Dienst selbst ein `profiles:` gegeben hast.
|
||
# Die Schnipsel im README haben keins und starten von allein.
|
||
# COMPOSE_PROFILES=office
|
||
# Leer = aus. Container-Schnipsel: README.md
|
||
OFFICE_PROVIDER= # collabora | onlyoffice (auch Euro-Office)
|
||
# Der Port haengt vom Anbieter ab: Collabora 9980, OnlyOffice/Euro-Office 80.
|
||
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.
|