Files
HoneyOS/beispiele/mehrere-apps/docker-compose.yml
T
marcandClaude Opus 5 fe48f3d98e docs(beispiel): HoneyOS und Einsetzer in einem Stapel, Netz inklusive
Getrennt gepflegt hiesse, bei jeder neuen App an zwei Stellen zu denken. Das
Netz legt der Stapel selbst unter festem Namen an — vorher musste es von Hand
erzeugt werden, und ohne festen Namen hiesse es nach dem Ordner.

Durchprobiert: Stapel hoch, fremde App tritt dem Netz bei, beide Hosts bekommen
die richtige data-app, unbekannter Host 404.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-29 00:16:08 +02:00

72 lines
3.0 KiB
YAML

# ─────────────────────────────────────────────────────────────────────────────
# HoneyOS und der Einsetzer in einem Stapel.
#
# Pangolin → honeyos (der Schreibtisch selbst)
# Pangolin → leiste → bentopdf, kuma, … (fremde Dienste mit Leiste)
#
# Beides gehört zusammen: Die Leiste kommt von HoneyOS, der Einsetzer trägt sie
# in Werkzeuge, die man nicht ändern kann. Getrennt zu pflegen hiesse, bei jeder
# neuen App an zwei Stellen zu denken.
#
# cp ../../.env.example .env && ausfüllen
# mkdir -p daten && sudo chown 1000:1000 daten
# docker compose up -d
#
# Das Netz `honeybar` legt dieser Stapel selbst an — die fremden Dienste treten
# ihm bei. In deren Compose-Datei:
#
# services:
# bentopdf:
# networks: [default, honeybar] # ports: kann dann ganz weg
# networks:
# honeybar:
# external: true
#
# Diesen Stapel deshalb zuerst starten; danach die anderen.
# In Pangolin zeigt honeyos.… auf honeyos:8080 und jede App auf leiste:80.
# ─────────────────────────────────────────────────────────────────────────────
services:
honeyos:
image: gitea.honeyy.duckdns.org/docker/honeyos:latest
container_name: honeyos
restart: unless-stopped
user: "1000:1000"
ports:
# Nur an localhost: davor steht Pangolin, nicht das offene Netz.
- "127.0.0.1:${HONEYOS_PORT:-8088}:8080"
volumes:
- ${HONEYOS_DATA_DIR:-./daten}:/data
environment:
- HONEYOS_PUBLIC_URL=${HONEYOS_PUBLIC_URL:-}
- HONEYOS_SESSION_SECRET=${HONEYOS_SESSION_SECRET:-}
- HONEYOS_OIDC_ISSUER=${HONEYOS_OIDC_ISSUER:-}
- HONEYOS_OIDC_CLIENT_ID=${HONEYOS_OIDC_CLIENT_ID:-}
- HONEYOS_OIDC_CLIENT_SECRET=${HONEYOS_OIDC_CLIENT_SECRET:-}
- HONEYOS_OIDC_REDIRECT_URL=${HONEYOS_OIDC_REDIRECT_URL:-}
- HONEYOS_BUTTON_LABEL=${HONEYOS_BUTTON_LABEL:-Anmelden}
- HONEYOS_ALLOWED_USERS=${HONEYOS_ALLOWED_USERS:-}
- HONEYOS_PROXY_AUTH=${HONEYOS_PROXY_AUTH:-}
- HONEYOS_USER_HEADER=${HONEYOS_USER_HEADER:-}
- HONEYOS_APPS_KEY=${HONEYOS_APPS_KEY:-}
networks: [honeybar]
leiste:
image: nginx:alpine
container_name: honeybar-leiste
restart: unless-stopped
volumes:
- ./upgrade.conf:/etc/nginx/conf.d/00-upgrade.conf:ro
- ./leiste.conf:/etc/nginx/conf.d/default.conf:ro
ports:
- "127.0.0.1:${LEISTE_PORT:-8185}:80"
networks: [honeybar]
# Der Einsetzer braucht HoneyOS nicht zum Starten — er reicht nur durch und
# setzt eine Zeile ein. Ist HoneyOS aus, fehlt die Leiste, die App läuft.
networks:
honeybar:
# Fester Name, damit andere Compose-Dateien ihn als `external` finden.
# Ohne den hiesse das Netz nach dem Ordner, in dem diese Datei liegt.
name: honeybar