docs(deploy): schlankes Compose-Beispiel im Wurzelverzeichnis

Das Compose in deploy/ war zu über der Hälfte Kommentar (73 von 137
Zeilen) und mischte zwei Zwecke. Jetzt getrennt:

  Wurzel   docker-compose.example.yml + .env.example  – betreiben,
           zieht das fertige Abbild, braucht keinen Quelltext
  deploy/  docker-compose.yml + .env.example          – entwickeln,
           baut aus dem Quelltext, kennt alle Schalter

Die schlanke .env.example führt nur die Pflichtwerte und Office; die
vollständige Liste mit Erklärungen bleibt in deploy/.env.example.
Die kopierte /docker-compose.yml ist ignoriert – sie gehört in die
Umgebung, nicht ins Repo.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
HoneyandClaude Opus 5 committed 2026-08-24 09:33:20 +02:00
1 parent 62e80dd2f5
commit 13681958dd
5 files changed
+228 -105

No files matched your search

+39 -23
View File
@@ -37,52 +37,73 @@ Der Proxy muss folgendes durchreichen (keine eigene Verarbeitung):
- Go 1.25+ und Node 20+ **nur**, wenn du aus dem Quelltext bauen willst –
zum Betreiben genügt das fertige Abbild (siehe Schritt 3)
### 1. Repository klonen
Zwei Wege, je nachdem was du vorhast:
| | |
|---|---|
| **Betreiben** | `docker-compose.example.yml` + `.env.example` im Wurzelverzeichnis. Zieht das fertige Abbild, braucht keinen Quelltext. |
| **Entwickeln** | `deploy/docker-compose.yml` + `deploy/.env.example`. Baut aus dem Quelltext, kennt alle Schalter. |
### 1. Dateien holen
Zum Betreiben genügen zwei Dateien – kein Klonen nötig:
```bash
mkdir aether && cd aether
curl -O https://gitea.honeyy.duckdns.org/Docker/Aether/raw/branch/main/docker-compose.example.yml
curl -O https://gitea.honeyy.duckdns.org/Docker/Aether/raw/branch/main/.env.example
mv docker-compose.example.yml docker-compose.yml
```
Zum Entwickeln stattdessen das Repository:
```bash
git clone https://gitea.honeyy.duckdns.org/Docker/Aether.git aether
cd aether
```
Zum **Betreiben** braucht es das Repository nicht – dafür genügen
`deploy/docker-compose.yml`, eine `.env` und ein Datenverzeichnis. Klonen ist
nur nötig, wenn du am Quelltext arbeiten oder selbst bauen willst.
### 2. `.env` anlegen
```bash
cp deploy/.env.example deploy/.env
cp .env.example .env # beim Betreiben
cp deploy/.env.example deploy/.env # beim Entwickeln
```
Dann in `deploy/.env` ausfüllen:
Ausfüllen musst du mindestens:
```env
SESSION_SECRET=$(openssl rand -hex 32)
DB_PASSWORD=<sicheres_passwort>
PUBLIC_URL=https://cloud.example.com
SESSION_SECRET= # openssl rand -hex 32
DB_PASSWORD=
DATA_PATH=/pfad/zu/aether-data
APP_UID=1000 # id -u
APP_GID=1000 # id -g
TRUSTED_PROXIES=<IP-deines-Proxys>
ADMIN_USERNAME=admin
ADMIN_PASSWORD=<sicheres_admin_passwort>
ADMIN_PASSWORD= # nach dem ersten Start wieder leeren
```
Die schlanke `.env.example` im Wurzelverzeichnis führt nur diese Pflichtwerte
und Office. Alles Weitere – OIDC, OCR, Vorschaubilder, Kontingente – steht mit
Erklärung in `deploy/.env.example`.
### 3. Starten
```bash
cd deploy
docker login gitea.honeyy.duckdns.org # nur beim ersten Mal
docker compose up -d
```
Das Compose zieht ein **fertiges Abbild** aus der eigenen Registry
(`gitea.honeyy.duckdns.org/docker/aether`). Für eine neue Umgebung reichen damit
drei Dateien – `docker-compose.yml`, `.env` und das Datenverzeichnis. Backend
und Frontend müssen dort nicht liegen und nicht gebaut werden.
Beim ersten Start:
- Postgres-Migrations laufen automatisch
- Der erste Admin-Account wird aus `ADMIN_USERNAME` / `ADMIN_PASSWORD` angelegt
- Nach dem Start: `ADMIN_PASSWORD` aus `.env` entfernen oder leer lassen
Wer aus dem Quelltext bauen will, kommentiert in `docker-compose.yml` `image:`
aus und den `build:`-Block ein, dann:
Aus dem Quelltext bauen statt ziehen:
```bash
docker compose build app && docker compose up -d
docker compose -f deploy/docker-compose.yml build app
docker compose -f deploy/docker-compose.yml up -d
```
Aktualisieren:
@@ -91,11 +112,6 @@ Aktualisieren:
docker compose pull app && docker compose up -d app
```
Beim ersten Start:
- Postgres-Migrations laufen automatisch
- Der erste Admin-Account wird aus `ADMIN_USERNAME` / `ADMIN_PASSWORD` angelegt
- Nach dem Start: `ADMIN_PASSWORD` aus `.env` entfernen oder leer lassen
### 4. Öffnen
Die App ist über deinen Reverse Proxy erreichbar (z. B. `https://cloud.example.com`).