# 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. # # Der Schnipsel startet mit `docker compose up -d` sofort mit. Zum Abschalten # `docker compose stop office`. # # Hintergrund und Fallstricke: README.md # Aus dem Quelltext bauen statt ziehen: build/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: # Vorgabe 0.0.0.0: erreichbar für alles, was den Server im Netz sieht – # denn der Reverse Proxy steht meist auf einem anderen Rechner, und # loopback ließe ihn nicht heran. Davor gehört er trotzdem, mit TLS. # Läuft er auf DIESEM Rechner: APP_BIND=127.0.0.1 in der .env, dann ist # der Port von außen dicht. - "${APP_BIND:-0.0.0.0}:${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