Files
Aether/.env.example
T
HoneyandClaude Opus 5 428fd2672c docs(env): Beispieldateien kürzen, Erklärungen ins README
Die beiden .env.example zusammen waren 251 Zeilen für 40 Schlüssel – gut
gemeint, aber niemand liest einen Absatz pro Variable. Jetzt eine Zeile je
Schlüssel (58 + 89), die Begründungen stehen im README unter
'Einstellungen', gebündelt als die sieben Dinge, die nicht beim Start
auffallen, sondern später.

Dabei durch einen echten Start aus den Beispieldateien gefunden:
STORAGE_PATH fehlte, Vorgabe ./data wird im Container zu /app/data, und
der Start endete in 'mkdir /app/data: permission denied'. Das Abbild setzt
STORAGE_PATH und TMP_PATH jetzt selbst – es kennt seine Verzeichnisse
besser als eine Beispieldatei. Eine .env darf weiter überschreiben.

Geprüft: jeder Schlüssel, den die Anwendung liest, steht weiterhin in
deploy/.env.example; eine frische Instanz startet allein aus den beiden
Beispieldateien.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-24 11:27:31 +02:00

59 lines
2.6 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Aether – das Nötigste für eine neue Umgebung. cp .env.example .env
# Erklärungen: README.md, Abschnitt „Einstellungen"
# Alle Schalter: deploy/.env.example
# ── Pflicht ───────────────────────────────────────────────────────────────────
APP_ENV=production
# Adresse, unter der der Browser die Cloud sieht. Ohne Schrägstrich am Ende.
PUBLIC_URL=https://cloud.example.com
# openssl rand -hex 32
SESSION_SECRET=
# 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.
DB_PASSWORD=
# 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
# ── Reverse Proxy ─────────────────────────────────────────────────────────────
# Nur diesen Adressen wird X-Forwarded-For/-Proto geglaubt.
TRUSTED_PROXIES=172.18.0.1
# Port auf dem Wirt, auf loopback gebunden. Im Container bleibt es 8080.
APP_PORT=8080
# ── Erster Start ──────────────────────────────────────────────────────────────
# Legt den Admin an. Danach ADMIN_PASSWORD leeren.
ADMIN_USERNAME=admin
ADMIN_PASSWORD=
# ── Anmeldung über einen Identitätsanbieter (optional) ───────────────────────
# Leerer OIDC_ISSUER = aus.
OIDC_ISSUER=
OIDC_CLIENT_ID=aether
OIDC_CLIENT_SECRET=
# Muss exakt <PUBLIC_URL>/api/v1/auth/oidc/callback sein.
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=false
# ── Office (optional) ─────────────────────────────────────────────────────────
# Leer = aus. Container-Schnipsel: README.md
OFFICE_PROVIDER=
# Backend → Office
OFFICE_URL=http://office:9980
# Browser → Office
OFFICE_PUBLIC_URL=https://office.example.com
# Office → Aether. NICHT localhost, NICHT der veröffentlichte Port.
OFFICE_WOPI_URL=http://app:8080
# Gegen SSRF: was das Backend anfragen darf.
OFFICE_ALLOWED_HOSTS=office