Kein alter Stand mehr im Zwischenspeicher, Einsetzer heisst HoneyBar-Proxy

Die HoneyBar kommt bei fremden Apps ueber deren eigenen Ursprung — das
loest CSP, CORS und COEP auf einmal, setzt sie aber auch deren Zwischen-
speicher aus. Eine alte HoneyBar dort sieht aus wie ein Fehler in HoneyOS.
Statt no-cache jetzt no-store, must-revalidate; dazu ein Abschnitt in der
README, wie man einen haengengebliebenen Stand erkennt.

Und der nginx davor heisst nicht mehr 'Einsetzer', sondern HoneyBar-Proxy
(Dienst und Behaelter honeybar-proxy bzw. <app>-honeybar). Er ist ein
Reverse Proxy, der die HoneyBar einsetzt — der alte Name sagte das
Gegenteil von dem, was man im docker ps sehen will. LEISTE_PORT heisst
jetzt HONEYBAR_PROXY_PORT.
This commit is contained in:
marc committed 2026-08-29 22:36:56 +02:00
1 parent 53ab62d220
commit 6fe6533667
4 files changed
+63 -33

No files matched your search

+12 -12
View File
@@ -1,22 +1,22 @@
# ─────────────────────────────────────────────────────────────────────────────
# HoneyOS und ein Einsetzer für beliebig viele fremde Dienste.
# HoneyOS und ein HoneyBar-Proxy für beliebig viele fremde Dienste.
#
# außen ──► Pangolin ──► honeyos (der Schreibtisch)
# Pangolin ──► einsetzer ──► bentopdf:8080 (App mit HoneyBar)
# Pangolin ──► honeybar-proxy ──► bentopdf:8080 (App mit HoneyBar)
# │ ──► uptime-kuma:3001
# └──► honeyos:8080 (HoneyBar + zwei Abfragen)
#
# Die fremden Dienste brauchen kein `ports:` mehr — erreichbar sind sie über
# ihren Namen im Netz `honeybar`, und nach außen führt nur der Einsetzer.
# ihren Namen im Netz `honeybar`, und nach außen führt nur der HoneyBar-Proxy.
#
# Eine neue App hinzufügen heißt: zwei Zeilen in den Tabellen `$ziel` und
# `$appid`, dann `docker compose up -d --force-recreate einsetzer`.
# `$appid`, dann `docker compose up -d --force-recreate honeybar-proxy`.
#
# cp ../../.env.example .env && ausfüllen (HONEYOS_APPS_KEY setzen!)
# mkdir -p daten && sudo chown 1000:1000 daten
# docker compose up -d
#
# Danach in Pangolin: honeyos.… → honeyos:8080, jede App → einsetzer:80.
# Danach in Pangolin: honeyos.… → honeyos:8080, jede App → honeybar-proxy:80.
# Und in HoneyOS jede App eintragen — die `ID` dort muss dem `$appid` hier
# entsprechen, sonst weiß die HoneyBar nicht, in welcher App man gerade ist.
# ─────────────────────────────────────────────────────────────────────────────
@@ -45,21 +45,21 @@ services:
- HONEYOS_APPS_KEY=${HONEYOS_APPS_KEY:-}
networks: [honeybar]
einsetzer:
honeybar-proxy:
image: nginx:alpine
container_name: honeybar-einsetzer
container_name: honeybar-proxy
restart: unless-stopped
ports:
- "${LEISTE_PORT:-8185}:80"
- "${HONEYBAR_PROXY_PORT:-8185}:80"
configs:
- source: einsetzer
- source: honeybar
target: /etc/nginx/conf.d/default.conf
networks: [honeybar]
# Kein depends_on: Der Einsetzer reicht nur durch. Ist HoneyOS aus, fehlt
# Kein depends_on: Der HoneyBar-Proxy reicht nur durch. Ist HoneyOS aus, fehlt
# die HoneyBar — die Apps laufen weiter.
configs:
einsetzer:
honeybar:
# `$$` ist hier ein einfaches `$` für nginx. Ein einzelnes `$` setzt
# dagegen Compose ein — genau das ist bei ${HONEYOS_APPS_KEY} gewollt: der
# Schlüssel steht damit nur in der nginx-Konfiguration, nie in der Seite.
@@ -97,7 +97,7 @@ configs:
if ($$ziel = "") { return 404; }
# Uploads nicht hier begrenzen — nginx nimmt sonst bei 1 MB nichts
# mehr an, und jede App mit Dateiupload waere hinter dem Einsetzer
# mehr an, und jede App mit Dateiupload waere hinter dem HoneyBar-Proxy
# kaputt. Wieviel erlaubt ist, entscheidet die App dahinter.
client_max_body_size 0;