docs: das Wiki gibt es jetzt -- und es kommt aus docs/
Gitea legt das Wiki-Repo erst mit der ersten Seite an; Klon und Push antworten davor mit 500, obwohl has_wiki auf true steht. Angelegt ueber die API (POST /api/v1/repos/<besitzer>/<repo>/wiki/new) -- danach ist es ein gewoehnliches Git-Repo und laesst sich klonen wie jedes andere. https://git.d4rkst3r.de/D4rkst3r/d4rk_media/wiki DIE QUELLE BLEIBT docs/ IM REPO. Ein Wiki hat keinen Zusammenhang mit dem Code: niemand sieht, ob die Anleitung noch zu dem passt, was der Dienst tut. Unter docs/ wandert sie im selben Commit mit der Aenderung, die sie beschreibt. tools/wiki.ps1 traegt sie danach hinaus -- EINSEITIG, und die Wiki-Seite sagt das auch: wer dort tippt, verliert es beim naechsten Lauf. Unschoen, aber ehrlicher als zwei Quellen, die auseinanderlaufen. Zwei Seiten: Home (Zuschnitt, was der Dienst kann, was zu tun ist, wenn etwas nicht geht) und API (Endpunkte, Kopfzeilen, Fehlerantworten, Grenzen -- und die beiden Proxy-Fallen von heute). Nachgemessen: beide Seiten sind ohne Anmeldung lesbar (200), ein zweiter Lauf des Skripts erkennt "bereits aktuell", und eine Aenderung kommt an. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -216,3 +216,7 @@ Im Dashboard unter **API** — oder direkt, mit gültiger Sitzung:
|
||||
```
|
||||
|
||||
Die Lua-Fassung liest man in einer Resource als `Urls.adder` aus.
|
||||
|
||||
---
|
||||
|
||||
*Diese Seite wird aus `docs/` im Repo erzeugt — Änderungen hier gehen beim nächsten Lauf verloren.*
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user