feat(honeybar): Adresse auf honeyos.duckdns.org, Schlüssel aus der Bauzeit

HoneyOS liegt auf einer anderen Site als Aether – duckdns.org steht auf der
Public-Suffix-Liste, die gemeinsame Endung zaehlt fuer den Browser also
nicht. Folge: bei der Anfrage der Leiste schickt er die HoneyOS-Sitzung
nicht mit, und ohne zweiten Ausweis bekaeme sie nie eine App-Liste.

- data-key kommt aus HONEYBAR_KEY in der .env und wird beim Bauen von Vite
  in die index.html eingesetzt. Bewusst nicht im Quelltext: er kaeme sonst
  ins Repo und liesse sich nur mit einer Code-Aenderung wechseln.
- Leer gebaut heisst data-key="" – die Leiste bekommt dann keine Liste,
  Aether bleibt davon unberuehrt.

Nach einer Aenderung an HONEYBAR_KEY ist ein `build app` noetig, ein
Neustart genuegt nicht.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
marcandClaude Opus 5 committed 2026-08-24 22:11:19 +02:00
1 parent 9b8e82cdb2
commit 3b12d2e943
4 files changed
+26 -4

No files matched your search

+8 -1
View File
@@ -70,7 +70,14 @@ ADMIN_PASSWORD=changeme_strong_admin_password
# #
# Muss exakt zur Adresse im <script>-Tag der frontend/index.html passen. # Muss exakt zur Adresse im <script>-Tag der frontend/index.html passen.
# Leer = keine Leiste, und die CSP bleibt so eng wie ohne sie. # Leer = keine Leiste, und die CSP bleibt so eng wie ohne sie.
HONEYBAR_ORIGIN=https://os.example.com HONEYBAR_ORIGIN=https://honeyos.example.com
# Schlüssel, mit dem sich die Leiste die App-Liste holt. Nötig, weil HoneyOS auf
# einer anderen Site liegt als Aether und der Browser die HoneyOS-Sitzung dann
# nicht mitschickt. Muss zu HONEYOS_APPS_KEY drüben passen.
#
# Wird beim **Bauen** in die index.html eingesetzt — nach einer Änderung also
# `docker compose build app`, ein Neustart genügt nicht.
HONEYBAR_KEY=
# ── Volltextsuche (OCR) ─────────────────────────────────────────────────────── # ── Volltextsuche (OCR) ───────────────────────────────────────────────────────
# Standardmäßig an; fehlen ocrmypdf/tesseract, schaltet es sich selbst ab. # Standardmäßig an; fehlen ocrmypdf/tesseract, schaltet es sich selbst ab.
+4
View File
@@ -4,6 +4,10 @@ WORKDIR /app/frontend
COPY frontend/package*.json ./ COPY frontend/package*.json ./
RUN npm ci RUN npm ci
COPY frontend/ ./ COPY frontend/ ./
# Schlüssel für die HoneyOS-Leiste. Vite setzt ihn in die index.html ein; leer
# heisst: die Leiste bekommt keine App-Liste, der Rest bleibt unberührt.
ARG HONEYBAR_KEY=""
ENV VITE_HONEYBAR_KEY=$HONEYBAR_KEY
RUN npm run build RUN npm run build
# ── Stage 2: Backend build ──────────────────────────────────────────────────── # ── Stage 2: Backend build ────────────────────────────────────────────────────
+3
View File
@@ -16,6 +16,9 @@ services:
# frontend/, nicht nur diesen Ordner. # frontend/, nicht nur diesen Ordner.
context: .. context: ..
dockerfile: deploy/Dockerfile dockerfile: deploy/Dockerfile
args:
# Wird in die index.html eingebacken, siehe dort.
HONEYBAR_KEY: ${HONEYBAR_KEY:-}
image: gitea.honeyy.duckdns.org/docker/aether:latest image: gitea.honeyy.duckdns.org/docker/aether:latest
restart: unless-stopped restart: unless-stopped
env_file: .env env_file: .env
+11 -3
View File
@@ -30,8 +30,16 @@
langsam oder aus, darf das Aether nicht ausbremsen. langsam oder aus, darf das Aether nicht ausbremsen.
Damit der Browser sie überhaupt lädt, muss HONEYBAR_ORIGIN in der .env Damit der Browser sie überhaupt lädt, muss HONEYBAR_ORIGIN in der .env
auf denselben Ursprung zeigen — sonst blockt die CSP. --> auf denselben Ursprung zeigen — sonst blockt die CSP.
<script defer src="https://os.honeyy.duckdns.org/honeybar/honeybar.js"
data-app="aether"></script> data-key kommt aus HONEYBAR_KEY in der .env und wird beim Bauen
eingesetzt. HoneyOS liegt auf einer anderen Site als Aether
(duckdns.org ist ein public suffix), deshalb schickt der Browser die
HoneyOS-Sitzung nicht mit — ohne diesen zweiten Ausweis bekäme die
Leiste nie eine App-Liste. Der Schlüssel steht bewusst nicht im
Quelltext: er käme sonst ins Repo und liesse sich nur mit einer
Code-Änderung wechseln. -->
<script defer src="https://honeyos.duckdns.org/honeybar/honeybar.js"
data-app="aether" data-key="%VITE_HONEYBAR_KEY%"></script>
</body> </body>
</html> </html>