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>
This commit is contained in:
1 parent
c11d5feafe
commit
fe48f3d98e
2 files changed
+59
-19
No files matched your search
@@ -234,14 +234,17 @@ Das COEP der App bleibt dabei unangetastet — ihre eigenen Fähigkeiten also au
|
|||||||
**Fertige Beispiele:**
|
**Fertige Beispiele:**
|
||||||
|
|
||||||
- [`beispiele/bentopdf/`](beispiele/bentopdf/) — ein Dienst, kürzestmöglich.
|
- [`beispiele/bentopdf/`](beispiele/bentopdf/) — ein Dienst, kürzestmöglich.
|
||||||
- [`beispiele/mehrere-apps/`](beispiele/mehrere-apps/) — **ein** Einsetzer für
|
- [`beispiele/mehrere-apps/`](beispiele/mehrere-apps/) — **HoneyOS und ein
|
||||||
alle Dienste. Am Host erkennt nginx, welcher gemeint ist; eine neue App sind
|
Einsetzer für alle Dienste in einem Stapel.** Am Host erkennt nginx, welcher
|
||||||
zwei Zeilen in den Tabellen oben in der Datei. Das ist der Aufbau, den man
|
Dienst gemeint ist; eine neue App sind zwei Zeilen in den Tabellen oben in
|
||||||
haben will, sobald es mehr als ein Werkzeug ist — nicht ein Behälter je App.
|
`leiste.conf`. Das ist der Aufbau, den man haben will, sobald es mehr als ein
|
||||||
|
Werkzeug ist — nicht ein Behälter je App, und nicht HoneyOS getrennt davon
|
||||||
|
gepflegt.
|
||||||
|
|
||||||
Damit ein gemeinsamer Einsetzer die Dienste erreicht, teilen sie sich ein Netz
|
Das Netz `honeybar` legt dieser Stapel selbst an, unter festem Namen. Die
|
||||||
(`docker network create honeybar`, in jeder App-Compose-Datei als `external`
|
fremden Dienste treten ihm bei (`networks: [default, honeybar]` und
|
||||||
eintragen). Ein Host, der in der Tabelle fehlt, bekommt **404** statt einer
|
`honeybar: {external: true}`); ihre eigenen `ports:` können dann ganz weg,
|
||||||
|
erreichbar ist nur noch der Einsetzer. Deshalb diesen Stapel zuerst starten. Ein Host, der in der Tabelle fehlt, bekommt **404** statt einer
|
||||||
geratenen Weiterleitung — sonst wird aus einem Tippfehler in Pangolin eine
|
geratenen Weiterleitung — sonst wird aus einem Tippfehler in Pangolin eine
|
||||||
stille Umleitung irgendwohin. WebSocket-Verbindungen (Uptime Kuma, Dashboards,
|
stille Umleitung irgendwohin. WebSocket-Verbindungen (Uptime Kuma, Dashboards,
|
||||||
alles mit Live-Anzeige) gehen durch, dafür sorgt `upgrade.conf`.
|
alles mit Live-Anzeige) gehen durch, dafür sorgt `upgrade.conf`.
|
||||||
|
|||||||
@@ -1,23 +1,56 @@
|
|||||||
# ─────────────────────────────────────────────────────────────
|
# ─────────────────────────────────────────────────────────────────────────────
|
||||||
# Ein Einsetzer für mehrere Dienste.
|
# HoneyOS und der Einsetzer in einem Stapel.
|
||||||
#
|
#
|
||||||
# Pangolin → leiste → (bentopdf | uptime-kuma | …)
|
# Pangolin → honeyos (der Schreibtisch selbst)
|
||||||
|
# Pangolin → leiste → bentopdf, kuma, … (fremde Dienste mit Leiste)
|
||||||
#
|
#
|
||||||
# Die Dienste selbst liegen in ihren eigenen Compose-Dateien. Damit der
|
# Beides gehört zusammen: Die Leiste kommt von HoneyOS, der Einsetzer trägt sie
|
||||||
# Einsetzer sie erreicht, teilen sie sich ein Netz:
|
# in Werkzeuge, die man nicht ändern kann. Getrennt zu pflegen hiesse, bei jeder
|
||||||
|
# neuen App an zwei Stellen zu denken.
|
||||||
#
|
#
|
||||||
# docker network create honeybar
|
# cp ../../.env.example .env && ausfüllen
|
||||||
|
# mkdir -p daten && sudo chown 1000:1000 daten
|
||||||
|
# docker compose up -d
|
||||||
#
|
#
|
||||||
# und in jeder App-Compose-Datei:
|
# Das Netz `honeybar` legt dieser Stapel selbst an — die fremden Dienste treten
|
||||||
|
# ihm bei. In deren Compose-Datei:
|
||||||
#
|
#
|
||||||
# networks: [default, honeybar]
|
# services:
|
||||||
|
# bentopdf:
|
||||||
|
# networks: [default, honeybar] # ports: kann dann ganz weg
|
||||||
# networks:
|
# networks:
|
||||||
# honeybar:
|
# honeybar:
|
||||||
# external: true
|
# external: true
|
||||||
#
|
#
|
||||||
# Danach in Pangolin jede Ressource auf leiste:80 zeigen lassen.
|
# Diesen Stapel deshalb zuerst starten; danach die anderen.
|
||||||
# ─────────────────────────────────────────────────────────────
|
# In Pangolin zeigt honeyos.… auf honeyos:8080 und jede App auf leiste:80.
|
||||||
|
# ─────────────────────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
services:
|
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:
|
leiste:
|
||||||
image: nginx:alpine
|
image: nginx:alpine
|
||||||
container_name: honeybar-leiste
|
container_name: honeybar-leiste
|
||||||
@@ -26,9 +59,13 @@ services:
|
|||||||
- ./upgrade.conf:/etc/nginx/conf.d/00-upgrade.conf:ro
|
- ./upgrade.conf:/etc/nginx/conf.d/00-upgrade.conf:ro
|
||||||
- ./leiste.conf:/etc/nginx/conf.d/default.conf:ro
|
- ./leiste.conf:/etc/nginx/conf.d/default.conf:ro
|
||||||
ports:
|
ports:
|
||||||
- "127.0.0.1:8185:80"
|
- "127.0.0.1:${LEISTE_PORT:-8185}:80"
|
||||||
networks: [honeybar]
|
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:
|
networks:
|
||||||
honeybar:
|
honeybar:
|
||||||
external: true
|
# 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
|
||||||
Reference in new issue
Block a user