From 607ae133744f47840b2360ac006312b12f463614 Mon Sep 17 00:00:00 2001 From: marc Date: Fri, 28 Aug 2026 20:35:25 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20fertiges=20Beispiel=20=E2=80=94=20Bento?= =?UTF-8?q?PDF=20mit=20Einsetzer=20davor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Compose und nginx-Konfiguration, genau so durchprobiert. Dazu der Hinweis, dass der Ursprung in HoneyOS auf den Buchstaben passen muss: localhost und 127.0.0.1 sind fuer den Browser zwei verschiedene. Co-Authored-By: Claude Opus 5 --- README.md | 8 +++++- beispiele/bentopdf/docker-compose.yml | 35 +++++++++++++++++++++++++++ beispiele/bentopdf/leiste.conf | 34 ++++++++++++++++++++++++++ 3 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 beispiele/bentopdf/docker-compose.yml create mode 100644 beispiele/bentopdf/leiste.conf diff --git a/README.md b/README.md index d185d30..e152f0b 100644 --- a/README.md +++ b/README.md @@ -212,7 +212,10 @@ location / { ``` Dazu muss der Ursprung dieser App **in HoneyOS als App eingetragen** sein — die -Liste ist zugleich die CORS-Freigabe. +Liste ist zugleich die CORS-Freigabe. **Auf den Ursprung genau**: `localhost` und +`127.0.0.1` sind für den Browser zwei verschiedene, ebenso `http` und `https` +oder ein abweichender Port. Passt er nicht, erscheint die Leiste mit leerer +App-Liste und in der Konsole steht ein CORS-Fehler. **Warum `style-src 'unsafe-inline'`:** Die Leiste bringt ihre Stile mit, im Shadow DOM. Eine strenge CSP verbietet die — gemessen: die Leiste erscheint, @@ -228,6 +231,9 @@ aus. Ohne das erscheint dort keine Leiste, und in der Konsole steht nur `ERR_BLOCKED_BY_RESPONSE.NotSameOriginAfterDefaultedToSameOriginByCoep`. Das COEP der App bleibt dabei unangetastet — ihre eigenen Fähigkeiten also auch. +**Fertiges Beispiel:** [`beispiele/bentopdf/`](beispiele/bentopdf/) — Compose +und nginx-Konfiguration, so getestet. + **Nur Pangolin davor?** Traefik kann Antwortkörper nicht von sich aus ändern; dafür bräuchte es ein Plugin. Der kürzere Weg ist ein kleiner nginx *zwischen* Pangolin und der App, der nichts tut außer einsetzen: diff --git a/beispiele/bentopdf/docker-compose.yml b/beispiele/bentopdf/docker-compose.yml new file mode 100644 index 0000000..3410c3f --- /dev/null +++ b/beispiele/bentopdf/docker-compose.yml @@ -0,0 +1,35 @@ +# ───────────────────────────────────────────────────────────── +# BentoPDF mit HoneyOS-Leiste +# +# Aufbau: Pangolin → leiste (nginx) → bentopdf +# +# Der nginx tut nichts weiter, als beim Durchreichen einen '; + + # Falls die App eine eigene CSP schickt (BentoPDF tut es nicht), muss + # sie ersetzt werden — zwei CSP-Kopfzeilen heissen nicht „mehr erlaubt", + # sondern „beide müssen zustimmen". Dann diese zwei Zeilen einschalten: + # + # proxy_hide_header Content-Security-Policy; + # add_header Content-Security-Policy "default-src 'self'; script-src 'self' https://honeyos.duckdns.org; connect-src 'self' https://honeyos.duckdns.org; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:" always; + } +}