# d4rk_media 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 Wurzel, Dateien unter `/f/`. --- ## Wo was steht | | | |---|---| | **[API](API)** | Endpunkte, Kopfzeilen, Fehlermeldungen, Grenzen — und was beim Anbinden schiefgeht | | `ROADMAP.md` im Repo | Zuschnitt, Stand, Reihenfolge, offene Entscheidungen | | `CLAUDE.md` im Repo | die Arbeitsweise: prüfen statt raten | Das Warum einer Änderung steht in der Commit-Nachricht, nicht nur im Diff. --- ## Der Zuschnitt in vier Sätzen **Ein Container.** SQLite statt PostgreSQL, Dateien auf einer Platte statt MinIO. Das ist nicht die kleine Lösung, sondern die, die man nicht pflegt. **Der Pfad ist der Schlüssel.** `vehicles/adder.webp` bleibt `vehicles/adder.webp`, damit die Vorlage im Handy `{model}.webp` lauten kann. Die Adressen stehen nirgends in der Datenbank — sie werden bei jeder Antwort neu gebaut. **Jeder Knopf gibt Rückmeldung, auch der erfolgreiche.** Das ist der Fehler, an dem der Fivemanage-Anlauf gescheitert ist: ein Knopf ohne Antwort sieht aus wie ein kaputter Knopf, und das Ergebnis waren neunzehn gleichnamige Organisationen. **Nicht nachgebaut wird das Logging.** Dafür schleppt Fivemanage ClickHouse mit, und genau da ist der Wartungsaufwand echt. --- ## Was der Dienst kann - **Hochladen** über die Skript-API (Token) oder aus dem Dashboard (Sitzung) — Bilder, Videos, Ton, PDF - **Ausliefern** mit ETag, Bereichsanfragen und Vorschaubildern - **Galerie** mit Ordnerbaum, Suche, Filter nach Medienart, Sortierung, Mehrfachauswahl, Verschieben und Löschen - **Verlauf**: wer hat wann was abgelegt, ersetzt, verschoben oder gelöscht - **Anmeldung** über Discord (Rolle auf dem Server) oder Passwort - **Sicherung** täglich, geprüft, in die Nextcloud --- ## Wenn etwas nicht geht 1. **Ein Bild ändert sich nicht.** Der Proxy hielt Bilder früher 30 Minuten fest. Behoben — siehe [API](API), Abschnitt *Zwischenspeicher des Proxys*. 2. **Die Anmeldung sagt 200, aber man ist nicht angemeldet.** `NODE_ENV=production` setzt das Cookie auf `Secure`; über eine nackte `http`-Adresse verwirft der Browser es still. Über den Proxy mit TLS gibt es das Problem nicht. 3. **Ein Upload gibt 400 mit „ist als Pfadteil nicht erlaubt".** Jeder Teil eines Pfades muss mit einem Buchstaben oder einer Ziffer beginnen. Ein führender Unterstrich fällt durch. 4. **Ein Fehler ohne Text.** Sollte es nicht mehr geben: der Dienst hat eine Auffanglinie, die auch bei unerwarteten Fehlern einen Satz mitgibt.