feat: der Dienst nennt sich selbst -- und Cloudflare bricht die WebP-Auslieferung

DER NAME KAM VIERMAL FEST AUS DEM QUELLTEXT: Kopfzeile, Anmeldeseite, Fusszeile
einer Freigabe, Tab-Titel -- und zwar als "d4rk_media", was der Name des
Repositorys ist und nicht der des Dienstes. Wer ihn aendern wollte, musste vier
Stellen finden und eine davon uebersehen.

Er kommt jetzt vom Server, aus der Einstellung marke.name -- DERSELBEN, die
schon in der Fusszeile der Discord-Meldungen steht ("D4RKST3R // MEDIA"). Ein
zweiter Name fuer die Oberflaeche waere ein zweiter, der beim naechsten Mal
anders lautet als der erste.

Ausgeliefert wird er ueber /api/dash/auth/config (oeffentlich, die
Anmeldeseite hat noch keine Sitzung) und in der Freigabe-Antwort (die Seite ist
oeffentlich und holt sonst nichts, was ihn kennen koennte). Angezeigt wird
"<marke> Media" -- die Marke allein waere falsch, sie steht ueber allem, was
hier laeuft.

EINE STELLE BLEIBT ABSICHTLICH: der Schluessel im Speicher des Browsers
(merker.ts) heisst weiter "d4rk_media.". Wer ihn umbenennt, wirft still alle
gemerkten Ansichtseinstellungen weg, und niemand versteht, warum die Galerie
ploetzlich wieder bei 60 Kacheln steht. Steht als Kommentar daneben.

---

UND DER NEUE NAME HAENGT HINTER CLOUDFLARE, was die WebP-Auslieferung bricht.

NPM ist sauber, sogar besser als vorgeschlagen: beide Namen auf DEMSELBEN Host,
die drei ^~-Bloecke gelten damit fuer beide. Der DNS-Eintrag geht aber ueber
Cloudflare (188.114.97.3, Server: cloudflare), waehrend fivemanage direkt auf
88.218.224.10 zeigt.

Gemessen, dieselbe Datei:

    fivemanage (direkt)      ohne Accept  ->  image/png   12295 B   richtig
                              mit Accept  ->  image/webp   2270 B   richtig

    media (Cloudflare)     1. mit Accept  ->  image/webp   2270 B   MISS
                           2. mit Accept  ->  image/webp   2270 B   HIT
                           3. OHNE Accept ->  image/webp   2270 B   HIT   FALSCH

Und andersherum genauso -- wer zuerst kommt, praegt den Zwischenspeicher fuer
alle. Es sind unsere eigenen Bytes (2270 = unsere WebP-Fassung), also kein
Polish, sondern ein Cache-Schluessel ohne Accept. Vary: Accept wird an den
Client durchgereicht, aber nicht zum Unterscheiden benutzt.

Fuer ein Lua-Skript heisst das: items/foo.png liefert WebP-Bytes unter einem
.png-Namen, und das faellt erst auf, wenn irgendwo ein Bild nicht laedt.

PUBLIC_URL ist deshalb NICHT umgestellt. Genau davor stand die Warnung im
letzten Commit, und sie war keine Vorsicht, sondern eine Vorhersage.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-12 00:43:29 +02:00
co-authored by Claude Opus 5
parent cf2e3d2387
commit 72fd330ae6
11 changed files with 131 additions and 8 deletions
+36
View File
@@ -960,6 +960,42 @@ einfügen.** Ein neuer Host bringt seine eigene `assets.conf` mit.
**3. Sagen.** Dann setze ich `PUBLIC_URL` um und ziehe Dokumentation, Fotostudio,
Handy und die Watchdog-Einträge nach.
#### ⚠️ DNS und NPM stehen — aber der Name hängt hinter Cloudflare
Am 12.08.2026 eingerichtet. NPM ist dabei sogar besser gelöst als vorgeschlagen:
**beide Namen auf demselben Host** (`server_name fivemanage.d4rkst3r.de
media.d4rkst3r.de;`), die drei `^~`-Blöcke gelten damit für beide.
Der DNS-Eintrag geht aber über Cloudflare, und **das bricht die
WebP-Auslieferung.** Gemessen, dieselbe Datei, dieselbe Sekunde:
```
fivemanage (direkt) ohne Accept -> image/png 12295 B richtig
mit Accept -> image/webp 2270 B richtig
media (Cloudflare) 1. mit Accept -> image/webp 2270 B MISS
2. mit Accept -> image/webp 2270 B HIT
3. OHNE Accept -> image/webp 2270 B HIT ← FALSCH
```
Und andersherum genauso: wer zuerst kommt, prägt den Zwischenspeicher für alle.
Es sind **unsere eigenen Bytes** (2270 B = unsere WebP-Fassung), also kein
Cloudflare-Polish, sondern ein **Cache-Schlüssel ohne `Accept`**. `Vary: Accept`
wird an den Client durchgereicht, aber nicht zum Unterscheiden benutzt —
Cloudflare variiert standardmäßig nur über `Accept-Encoding`.
Für ein Lua-Skript heißt das: `items/foo.png` liefert WebP-Bytes unter einem
`.png`-Namen, und das fällt erst auf, wenn irgendwo ein Bild nicht lädt.
**Deshalb ist `PUBLIC_URL` noch nicht umgestellt.** Zwei Wege heraus:
1. **Graue Wolke** für `media` — Cloudflare-Proxy aus, DNS-only, wie bei
`fivemanage`. Der Ursprung ist ohnehin nicht verborgen (`fivemanage` zeigt
direkt darauf), Cloudflare bringt hier also nichts, was den Bruch aufwöge.
2. Cloudflare behalten und dort eine **Cache Rule** anlegen, die `/f/*` und
`/t/*` vom Zwischenspeicher ausnimmt. Funktioniert, ist aber eine dritte
Stelle, an der dieselbe Regel gepflegt werden will.
Gegenprüfen lässt sich beides mit dem, was schon da ist:
```powershell