feat: der Dienst heisst media.d4rkst3r.de -- beide Namen liefern weiter aus
PUBLIC_URL umgestellt. FILES_HOST ist leer, der Dienst achtet also gar nicht
auf den Hostnamen, und in NPM stehen beide auf DEMSELBEN Host -- die drei
^~-Bloecke gelten damit fuer beide. Nachgemessen: unter beiden Namen health 200
und dasselbe Bild, bytegleich.
Nachgezogen:
7 Stellen in den Ressourcen d4rk_phone/config.lua (2)
d4rk_photostudio/config.upload.lua
d4rk_photostudio/config.upload.example.lua (2)
d4rk_photostudio/settings.json (2)
2 Watchdog-Eintraege im Bot inklusive Anzeigename
16 Stellen in Doku/Werkzeugen README, docs/API.md, Home.md,
npm-advanced.conf, proxy-pruefen.ps1,
uebernehmen.ps1, .env.example
Die Freigabe-Links zeigen von selbst auf den neuen Namen -- sie werden aus
PUBLIC_URL gebaut und stehen nirgends gespeichert. Die alten funktionieren
weiter.
DIE ROADMAP BEHAELT DEN ALTEN NAMEN, an sechzehn Stellen und mit Absicht: dort
steht die Geschichte, warum er ueberhaupt "fivemanage" hiess. Sie zu ersetzen
machte aus einer Begruendung Unsinn.
ZWEI DINGE, DIE DABEI AUFFIELEN.
Cloudflare stand vor dem neuen Namen und brach die WebP-Auslieferung: der
Cache-Schluessel kennt Accept nicht, also bekam ein Aufrufer OHNE
"Accept: image/webp" die WebP-Fassung aus dem Zwischenspeicher -- unsere
eigenen Bytes unter einem .png-Namen. Nach dem Umstellen auf DNS-only gemessen
und in Ordnung: ohne Accept image/png 12295 B, mit Accept image/webp 2270 B,
Server: openresty, vary: Accept, dreimal hintereinander stabil.
Und der Lua-Syntaxtest schlug bei d4rk_phone/config.lua fehl -- 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 fuer
CfxLua-Dateien also nicht; geprueft wurde stattdessen, dass genau die zwei
URL-Zeilen anders sind.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
+35
-8
@@ -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:
|
||||
|
||||
|
||||
+9
-9
@@ -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)
|
||||
|
||||
+1
-1
@@ -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/`.
|
||||
|
||||
---
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user