diff --git a/.env.example b/.env.example index 29f73da..977f4e4 100644 --- a/.env.example +++ b/.env.example @@ -17,7 +17,7 @@ # # Das /f/ haengt der Dienst selbst an. Wer es hier mitschreibt, bekommt # Adressen mit /f/f/, und das faellt erst auf, wenn das erste Bild fehlt. -PUBLIC_URL=https://fivemanage.d4rkst3r.de +PUBLIC_URL=https://media.d4rkst3r.de # Wird beim ERSTEN Start als Benutzer "admin" angelegt. Ein spaeter geaenderter # Wert setzt das bestehende Passwort NICHT zurueck. diff --git a/README.md b/README.md index 71318da..9ec0e35 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,11 @@ Eigener Medien-Dienst für alle FiveM-Ressourcen: Dateien annehmen, ablegen, ausliefern, in einem Dashboard verwalten. **Ein Container**, SQLite, Dateien auf einer Platte. -Läuft unter **https://fivemanage.d4rkst3r.de** — Dashboard und API an der +Läuft unter **https://media.d4rkst3r.de** — Dashboard und API an der Wurzel, Dateien unter `/f/`. ``` -vehicles/adder.webp → https://fivemanage.d4rkst3r.de/f/vehicles/adder.webp +vehicles/adder.webp → https://media.d4rkst3r.de/f/vehicles/adder.webp ``` **Der Pfad ist der Schlüssel.** `vehicles/adder.webp` bleibt diff --git a/ROADMAP.md b/ROADMAP.md index 6781572..750385f 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -960,7 +960,27 @@ 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 +#### ✅ Umgestellt am 12.08.2026 + +`PUBLIC_URL=https://media.d4rkst3r.de`. **Beide Namen liefern weiter aus** — +`FILES_HOST` ist leer, der Dienst achtet gar nicht auf den Hostnamen, und in +NPM stehen beide auf demselben Host. Nachgemessen: unter beiden Namen `health +200` und dasselbe Bild. + +Nachgezogen: **7 Stellen** in den Ressourcen (`d4rk_phone/config.lua` ×2, +`config.upload.lua`, `config.upload.example.lua` ×2, `settings.json` ×2), +**2 Watchdog-Einträge** im Bot, **16 Stellen** in Dokumentation und Werkzeugen. +Die Freigabe-Links zeigen von selbst auf den neuen Namen — sie werden aus +`PUBLIC_URL` gebaut — und die alten funktionieren weiter. + +> **Der Lua-Syntaxtest schlug bei `d4rk_phone/config.lua` fehl**, und zwar an +> Zeile 93: `` customModel = `prop_player_phone_02` ``. Das ist kein Schaden, +> sondern eine **CfxLua-Erweiterung** — Backticks sind dort ein joaat-Hash und +> in Standard-Lua 5.4 ein Syntaxfehler. 85 davon stecken in der Datei. `luac -p` +> taugt für CfxLua-Dateien also nicht; geprüft wurde stattdessen, dass genau die +> zwei URL-Zeilen anders sind. + +#### ⚠️ Und die Falle auf dem Weg dorthin: 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 @@ -987,14 +1007,21 @@ 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: +**Gelöst durch die graue Wolke** — Cloudflare-Proxy aus, DNS-only, wie bei +`fivemanage`. Danach gemessen, dieselben Dateien: -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. +``` +media (grau) ohne Accept -> image/png 12295 B + mit Accept -> image/webp 2270 B +Server: openresty · vary: Accept · dreimal hintereinander stabil +Bytes identisch mit dem alten Namen (sha256 stimmt überein) +``` + +**Was das Umstellen der URLs in den Skripten NICHT gelöst hätte:** das Problem +saß am Host, nicht am Aufrufer. Hätten alle Skripte auf `media` gezeigt und +`media` wäre orange geblieben, bekämen *alle* die falschen Bytes — die +Umstellung hätte es verteilt statt behoben. Wer Cloudflare behalten will, +braucht dort eine Cache Rule, die `/f/*` und `/t/*` ausnimmt. Gegenprüfen lässt sich beides mit dem, was schon da ist: diff --git a/docs/API.md b/docs/API.md index 1cc94fe..bbd62cc 100644 --- a/docs/API.md +++ b/docs/API.md @@ -4,7 +4,7 @@ Diese Seite ist für den Fall geschrieben, dass jemand ein Skript anbindet und etwas nicht tut, was es soll. Sie nennt deshalb nicht nur die Endpunkte, sondern auch **was schiefgehen kann und wie die Antwort dann aussieht**. -Der Dienst läuft unter `https://fivemanage.d4rkst3r.de`. Dateien liegen darunter +Der Dienst läuft unter `https://media.d4rkst3r.de`. Dateien liegen darunter unter `/f/`. --- @@ -15,7 +15,7 @@ unter `/f/`. entsteht daraus, indem der Ursprung davorgesetzt wird: ``` -vehicles/adder.webp → https://fivemanage.d4rkst3r.de/f/vehicles/adder.webp +vehicles/adder.webp → https://media.d4rkst3r.de/f/vehicles/adder.webp ``` Deshalb kann die Vorlage in einem Handy-Skript schlicht `{model}.webp` lauten. @@ -47,7 +47,7 @@ Dateisystems verlassen sollen. Für ein Skript heißt das: **die Vorlage arbeitet mit Kleinbuchstaben.** ```lua -local url = ('https://fivemanage.d4rkst3r.de/f/items/%s.png'):format(item:lower()) +local url = ('https://media.d4rkst3r.de/f/items/%s.png'):format(item:lower()) ``` Über `/api/upload` mit eigenem `X-Path` gilt das nicht — dort steht der Pfad @@ -92,7 +92,7 @@ Ressourcen: Kamera, Handy, MDT, Fahrzeugstudio. Sie alle umzuschreiben heißt, fremde Skripte anzufassen — und beim nächsten Update wieder. **Der Dienst spricht deshalb ihre Sprache.** Der Umzug ist eine Zeile je Skript: -`api.fivemanage.com` → `fivemanage.d4rkst3r.de`. Der Schlüssel bleibt derselbe +`api.fivemanage.com` → `media.d4rkst3r.de`. Der Schlüssel bleibt derselbe Kopf, die Antwort dieselbe Form. Als Schlüssel setzt du einen **Token dieses Dienstes** ein. @@ -114,7 +114,7 @@ exports['screenshot-basic']:requestScreenshotUpload( -- nachher — eine Zeile exports['screenshot-basic']:requestScreenshotUpload( - 'https://fivemanage.d4rkst3r.de/api/image', 'image', + 'https://media.d4rkst3r.de/api/image', 'image', { headers = { Authorization = apiKey } }, cb) ``` @@ -180,8 +180,8 @@ Wer auch das rot haben will, hängt `?streng=1` an — dann gibt alles außer ### In Uptime Kuma ``` -Dienst läuft https://fivemanage.d4rkst3r.de/status -Braucht Pflege https://fivemanage.d4rkst3r.de/status?streng=1 +Dienst läuft https://media.d4rkst3r.de/status +Braucht Pflege https://media.d4rkst3r.de/status?streng=1 ``` > **Warum `bestand` dabei ist.** Nachgemessen an genau diesem Dienst: wird eine @@ -242,7 +242,7 @@ Nimmt die Datei in einer von **drei Rumpfformen** entgegen: ```json { - "url": "https://fivemanage.d4rkst3r.de/f/vehicles/adder.webp", + "url": "https://media.d4rkst3r.de/f/vehicles/adder.webp", "path": "vehicles/adder.webp", "size": 132760, "sha256": "36cb4ddf…", @@ -273,7 +273,7 @@ Dienst gebaut wurde. local TOKEN = 'd4rk_…' -- im Dashboard anlegen local function hochladen(pfad, bytes, cb) - PerformHttpRequest('https://fivemanage.d4rkst3r.de/api/upload', + PerformHttpRequest('https://media.d4rkst3r.de/api/upload', function(status, body) if status ~= 200 then return cb(nil, body) end cb(json.decode(body).url) diff --git a/docs/Home.md b/docs/Home.md index 768a09d..0fee896 100644 --- a/docs/Home.md +++ b/docs/Home.md @@ -3,7 +3,7 @@ Eigener Medien-Dienst für alle FiveM-Ressourcen: Dateien annehmen, ablegen, ausliefern, in einem Dashboard verwalten. -**Läuft unter** https://fivemanage.d4rkst3r.de — Dashboard und API an der +**Läuft unter** https://media.d4rkst3r.de — Dashboard und API an der Wurzel, Dateien unter `/f/`. --- diff --git a/docs/npm-advanced.conf b/docs/npm-advanced.conf index 6c67676..8533556 100644 --- a/docs/npm-advanced.conf +++ b/docs/npm-advanced.conf @@ -1,6 +1,6 @@ # d4rk_media — der Block fuer Nginx Proxy Manager # -# WOHIN: NPM oeffnen -> Hosts -> Proxy Hosts -> fivemanage.d4rkst3r.de +# WOHIN: NPM oeffnen -> Hosts -> Proxy Hosts -> media.d4rkst3r.de # -> Edit -> Reiter "Advanced" -> Feld "Custom Nginx Configuration" # # WAS: den GESAMTEN Inhalt dieser Datei dort hineinkopieren. Was schon drin diff --git a/tools/proxy-pruefen.ps1 b/tools/proxy-pruefen.ps1 index e825938..aa714f4 100644 --- a/tools/proxy-pruefen.ps1 +++ b/tools/proxy-pruefen.ps1 @@ -9,7 +9,7 @@ # war es nicht. Die Kopfzeile sagt es eindeutig, aber man muss sie eben ansehen. param( - [string]$Basis = 'https://fivemanage.d4rkst3r.de', + [string]$Basis = 'https://media.d4rkst3r.de', # Fuer die API-Messung. Ohne ihn wird sie uebersprungen -- sie braucht einen # gueltigen Token, um "mit" und "ohne" unterscheiden zu koennen. [string]$Token = '' diff --git a/tools/uebernehmen.ps1 b/tools/uebernehmen.ps1 index 1ed17e4..d986f99 100644 --- a/tools/uebernehmen.ps1 +++ b/tools/uebernehmen.ps1 @@ -28,7 +28,7 @@ param( [Parameter(Mandatory = $true)][string]$Von, [string]$Nach = '', [switch]$Probe, - [string]$Dienst = 'https://fivemanage.d4rkst3r.de', + [string]$Dienst = 'https://media.d4rkst3r.de', [string]$Container = 'd4rk-media', [int]$ProStapel = 20 )