diff --git a/backend/cmd/aether/main.go b/backend/cmd/aether/main.go
index ad6d7e6..bbbc98a 100644
--- a/backend/cmd/aether/main.go
+++ b/backend/cmd/aether/main.go
@@ -374,6 +374,12 @@ func main() {
faviconURL = admin.AppIconURL(s["app_icon_storage_key"], "64")
appleTouchURL = admin.AppIconURL(s["app_icon_storage_key"], "192")
}
+ // Ohne Ursprung gibt es keine Leiste — dann hat auch der Schluessel
+ // nichts auf der Seite zu suchen.
+ honeybarKey := ""
+ if cfg.HoneybarOrigin != "" {
+ honeybarKey = cfg.HoneybarKey
+ }
apps := cfg.ExternalApps
if apps == nil {
apps = []config.ExternalApp{} // nie null – das Frontend erwartet eine Liste
@@ -398,6 +404,12 @@ func main() {
// ist – sonst gibt der Endpunkt eine Einstellung preis, die
// niemanden etwas angeht.
"oidc_button_label": oidcLabel,
+ // Die HoneyOS-Leiste laedt die Oberflaeche selbst nach. Zur
+ // Laufzeit statt beim Bauen, damit ein fertiges Abbild ueber die
+ // .env umgezogen werden kann — und damit derselbe Ursprung
+ // gilt, den die CSP erlaubt.
+ "honeybar_origin": cfg.HoneybarOrigin,
+ "honeybar_key": honeybarKey,
})
})
diff --git a/backend/pkg/config/config.go b/backend/pkg/config/config.go
index ceea9c4..ce6a83b 100644
--- a/backend/pkg/config/config.go
+++ b/backend/pkg/config/config.go
@@ -83,9 +83,21 @@ type Config struct {
// (z. B. https://os.example.com). Er wird in die CSP aufgenommen — ohne das
// blockt der Browser das Skript und dessen Anfragen.
//
- // Muss zur Adresse im
-
-