Files
Aether/docker-compose.example.yml
T
HoneyandClaude Opus 5 370d8ce0c7 feat(deploy): APP_BIND – Port wahlweise nur lokal oder im Netz
Der Port war fest auf 127.0.0.1 gebunden. Richtig, solange ein Reverse
Proxy davorsteht – beim Ausprobieren in einer Testumgebung heißt es aber
ERR_CONNECTION_REFUSED, sobald man über die IP zugreift, und nichts im
Log deutet darauf hin: Der Kernel lehnt ab, bevor die Anwendung etwas
davon sieht.

APP_BIND ist jetzt eine Variable, Vorgabe bleibt 127.0.0.1. Gilt für die
App und für die Office-Container in allen drei README-Schnipseln.

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

69 lines
2.2 KiB
YAML
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 – Betrieb aus dem fertigen Abbild.
#
# Diese Datei und .env.example genügen für eine neue Umgebung. Der Quelltext
# muss dort nicht liegen.
#
# cp docker-compose.example.yml docker-compose.yml
# cp .env.example .env # und ausfüllen
# docker login gitea.honeyy.duckdns.org
# docker compose up -d
#
# Office ist bewusst nicht dabei: Es gibt drei Server zur Auswahl (Collabora,
# OnlyOffice, Euro-Office), und jeder bringt eigene Variablen mit. Den
# passenden Schnipsel zum Anhängen findest du im README.
#
# Hintergrund und Fallstricke: README.md
# Aus dem Quelltext bauen statt ziehen: deploy/docker-compose.yml
services:
app:
container_name: aether-app
image: gitea.honeyy.duckdns.org/docker/aether:latest
restart: unless-stopped
env_file: .env
# Der Container läuft unter deiner Kennung, damit die Dateien unter
# DATA_PATH dir gehören und nicht einem Container-Nutzer.
user: "${APP_UID:-1000}:${APP_GID:-1000}"
environment:
# ocrmypdf legt Arbeitsdateien unter $HOME ab – das aus dem Image ist
# für einen abweichenden Nutzer nicht beschreibbar.
HOME: /tmp
depends_on:
postgres:
condition: service_healthy
volumes:
# Bind-Mount, kein benanntes Volume: Deine Dateien liegen als echte
# Ordner auf dem Wirt. Nur lesend anfassen – zum Hineinlegen ist WebDAV
# der Weg, sonst kennt die Datenbank die Datei nicht.
- ${DATA_PATH:-./data}:/data
networks: [internal]
ports:
# Standardmäßig nur loopback – davor gehört dein Reverse Proxy mit TLS.
# Zum Ausprobieren im LAN: APP_BIND=0.0.0.0 in der .env. Dann liegt die
# Anmeldung allerdings unverschlüsselt im Netz.
- "${APP_BIND:-127.0.0.1}:${APP_PORT:-8080}:8080"
postgres:
container_name: aether-db
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_DB: ${DB_NAME}
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
networks: [internal]
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USER} -d ${DB_NAME}"]
interval: 5s
timeout: 5s
retries: 10
volumes:
postgres_data:
networks:
internal:
driver: bridge