Files
Aether/frontend/index.html
T
marcandClaude Opus 5 3b12d2e943 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>
2026-08-24 22:11:19 +02:00

46 lines
2.2 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8" />
<!-- viewport-fit=cover: Als installierte App soll der Inhalt den ganzen
Schirm nutzen und nicht neben der Kamera-Aussparung eingerahmt stehen.
Der Preis ist, dass er dann *unter* Statusleiste und Wischbalken laufen
kann – dagegen die safe-area-Abstände in index.css. -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
<link rel="icon" type="image/svg+xml" href="/icon.svg" />
<link rel="apple-touch-icon" href="/icon-192.png" />
<!-- Das Plugin fuegt keinen Link mehr ein (manifest: false) – der Server
erzeugt das Manifest aus den Einstellungen. -->
<link rel="manifest" href="/manifest.webmanifest" />
<meta name="theme-color" content="#6366f1" />
<title>Aether</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
<!-- HoneyOS-Leiste: der Umschalter zwischen den eigenen Apps. Sie rendert
in einem Shadow DOM, Aethers Stile berührt sie nicht.
Sie steht hier statt serverseitig eingespritzt, weil der Service Worker
die index.html in seinen Vorrat legt (navigateFallback) — was zur
Bauzeit nicht drinsteht, käme beim Browser nie an.
`defer`: ohne wartet der Seitenaufbau auf das Skript. Ist HoneyOS
langsam oder aus, darf das Aether nicht ausbremsen.
Damit der Browser sie überhaupt lädt, muss HONEYBAR_ORIGIN in der .env
auf denselben Ursprung zeigen — sonst blockt die CSP.
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>
</html>