- HTML 61.2%
- PHP 38.8%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| assets/thumbs | ||
| data | ||
| tools | ||
| .gitignore | ||
| api.php | ||
| bootstrap.php | ||
| config.example.php | ||
| index.html | ||
| LICENSE | ||
| login.html | ||
| README.md | ||
| renovate.json | ||
| schema-update-2-categories-images.sql | ||
| schema-update-3-meta.sql | ||
| schema.sql | ||
Warframe ArsenAll
Ein selbst gehosteter Sammlungs-Tracker für Warframes, Waffen und Begleiter, mit Login. Läuft auf jedem Webspace mit PHP + MariaDB.
Funktionen
- Login mit Registrierung — jede Person hat einen eigenen Account, dessen Sammlungs-Stand gegen Zugriff durch andere geschützt ist
- Gemeinsame, für alle Accounts geteilte Grundliste: Warframes, Primär-, Sekundär-, Nahkampfwaffen, Archwings, Archwing-Waffen (Gun & Melee), Sentinels, Sentinel-Waffen, Haustiere
- Kleine Thumbnails neben den Namen (aus
assets/thumbs/, siehe Datenimport unten) - Reihenfolge der Items per Drag & Drop anpassbar (z. B. Prime-Version neben die Basisversion schieben)
- Pro Account getrennt: "besitze ich" (Häkchen) und "gemeistert" (Lorbeerkranz, leuchtet grün)
- Springt per Klick auf die Kategorie-Kacheln direkt zum jeweiligen Abschnitt
- Footer zeigt den Datenstand (Datum + Commit von
wfcd/warframe-items) des letzten Imports
Aufbau
index.html Frontend der App (nur nach Login erreichbar)
login.html Login- und Registrierungsseite
api.php Backend-Endpunkte (JSON über PDO/MariaDB)
bootstrap.php DB-Verbindung, Session-Setup, Auth-Helper
config.php Echte DB-Zugangsdaten (NICHT im Repo, siehe unten)
config.example.php Vorlage für config.php
schema.sql Tabellen + Startbestand, einmalig ausführen (Neuinstallation)
schema-update-2-categories-images.sql Delta-Update: Bild-Spalte + neue Kategorien (Bestandsinstallation)
schema-update-3-meta.sql Delta-Update: meta-Tabelle für den Datenstand-Footer
tools/migrate_legacy_json.php Einmaliger Import alter data/*.json-Stände
tools/import_wfcd_items.php Einmaliger Datenimport aus wfcd/warframe-items + Thumbnails
tools/import_runner.html Hilfsseite: ruft den Import automatisch wiederholt auf
assets/thumbs/ Heruntergeladene Item-Thumbnails (nicht im Git-Repo)
data/ Nur noch für die alte, dateibasierte Version relevant
Einrichtung
- Datenbank vorbereiten:
schema.sqleinmalig gegen die MariaDB ausführen (z. B. über phpMyAdmin oder die KAS-Datenbankverwaltung bei AllInkl). Das legt die Tabellenusers,itemsunduser_item_statean und befülltitemsmit der Startliste. config.phpanlegen:config.example.phpnachconfig.phpkopieren und mit den echten Zugangsdaten (Host, Port, Datenbankname, Benutzer, Passwort) befüllen.- Hochladen:
index.html,login.html,api.php,bootstrap.phpundconfig.phpper FTP auf den Webspace laden. - Aufrufen:
login.htmlöffnen, Account registrieren, loslegen.
Wichtig: config.php enthält echte Datenbank-Zugangsdaten und ist bewusst
in .gitignore — sie wird nie committet, nur manuell hochgeladen.
Bestandsdaten aus der alten Version übernehmen
Falls vorher schon mit der dateibasierten Version (JSON in data/) gesammelt
wurde:
- Beide Accounts unter
login.htmlregistrieren. - In
tools/migrate_legacy_json.phpdas Mapping von alten Profilnamen (z. B.Ich,Mein Partner) zu den neuen Benutzernamen eintragen. - Datei einmal per Browser mit
?confirm=yesaufrufen (z. B.https://deine-domain/tools/migrate_legacy_json.php?confirm=yes). - Ausgabe prüfen, danach die Datei vom Server löschen.
Datenimport aus wfcd/warframe-items (Warframes/Waffen vervollständigen + Thumbnails)
Die Grundliste kann mit Daten aus dem Community-Repo
wfcd/warframe-items (MIT-Lizenz) vervollständigt
werden — inklusive kleiner Thumbnails, die dabei heruntergeladen und unter assets/thumbs/
abgelegt werden (keine Bilder werden live von einer fremden CDN eingebunden). Die Bild-Assets
selbst stammen aus dem Spiel bzw. der Community-CDN cdn.warframestat.us; eine explizite Lizenz
dafür gibt es nicht, die Nutzung erfolgt für den privaten Eigenbedarf.
Ablauf (nur bei bereits bestehender Installation nötig):
-
schema-update-2-categories-images.sqleinmal gegen die Datenbank ausführen. Das ergänzt die Spalteimage_fileund teilt die alte Kategorie „Begleiter" insentinels(Sentinels) undpets(Haustiere) auf. -
schema-update-3-meta.sqleinmal ausführen — legt diemeta-Tabelle an, in die der Import den Datenstand (Commit + Zeitpunkt) für den Footer schreibt. -
tools/import_wfcd_items.phpper FTP hochladen und einmal im Browser mit?confirm=yesaufrufen, z. B.https://deine-domain/tools/import_wfcd_items.php?confirm=yes. Bestehende Einträge/Reihenfolge werden nicht verändert, es werden nur fehlende Items ergänzt und Thumbnails nachgetragen. -
Bei Zeitüberschreitung (Shared-Hosting-Limits für Skriptlaufzeit, auch bei einzelnen großen Kategorien wie
melee): pro Kategorie einzeln aufrufen, z. B.&category=warframes,&category=primary, … (Kategorie-Keys:warframes,primary,secondary,melee,archwing,arch-gun,arch-melee,sentinels,sentinel-weapons,pets). Reicht das immer noch nicht, zusätzlich&limit=<n>anhängen (z. B.&limit=10) — begrenzt die Anzahl neuer Bild-Downloads pro Aufruf. Der Import ist wiederholbar — bereits vorhandene Items/Bilder werden übersprungen, die Ausgabe zeigt laufend Punkte als Fortschrittsanzeige.Am einfachsten dafür
tools/import_runner.htmlhochladen und im Browser öffnen: Kategorien auswählen, Limit/Pause einstellen, Start klicken — die Seite ruftimport_wfcd_items.phpautomatisch so lange wiederholt auf (mit Pause dazwischen), bis jede ausgewählte Kategorie wirklich vollständig ist, auch wenn einzelne Aufrufe zwischendurch vom Hoster abgebrochen werden. Tab einfach offen lassen, bis „Alle ausgewählten Kategorien fertig." erscheint. -
Ausgabe prüfen, danach
tools/import_wfcd_items.php(und ggf.tools/import_runner.html) vom Server löschen.
Bei einer Neuinstallation ist das nicht nötig — schema.sql legt die neuen Kategorien direkt
mit an, der Import kann trotzdem danach ausgeführt werden, um Thumbnails zu ergänzen und die Liste
zu vervollständigen.
Später erneut ausführen (z. B. wenn im Spiel neue Items dazukommen)
Der Import ist bewusst wiederholbar gebaut. Wenn wfcd/warframe-items aktualisiert wurde (neue
Warframes/Waffen im Spiel):
tools/import_wfcd_items.phperneut hochladen.- Wie oben mit
?confirm=yes(ggf. pro Kategorie mit&category=<key>) aufrufen — neue Items werden ergänzt, bestehende bleiben inkl. Reihenfolge und Häkchen unverändert. - Datei danach wieder löschen.
Falls sich bei einem bereits importierten Item nur das Thumbnail ändert (z. B. nach einem
Grafik-Rework), zusätzlich &refresh=yes anhängen — dann wird für jedes gefundene Item das Bild
neu von der CDN geladen und ersetzt, statt nur bei fehlenden Bildern nachzuladen. Das dauert
entsprechend länger (wieder ggf. pro Kategorie einzeln aufrufen).
Zugriffsschutz
Der Zugriff läuft jetzt über echtes Login (Passwörter werden gehasht gespeichert, nie im Klartext). Ein zusätzlicher Verzeichnisschutz auf Serverebene ist damit nicht mehr nötig.
Entwicklung / Versionskontrolle
Dieses Repo liegt auf einer selbst gehosteten Forgejo-Instanz.
Lokal einrichten:
cd warframe-arsenall
git init
git remote add origin <URL-deines-Forgejo-Repos>
git add .
git commit -m "Initial commit"
git branch -M main
git push -u origin main
Änderungen danach ganz normal per git add / git commit / git push.
Das Deployment auf den Webspace erfolgt weiterhin manuell per FTP
(kein automatisches Deploy-Skript eingerichtet). config.php wird dabei
nicht aus Git übernommen, sondern bleibt dauerhaft direkt auf dem Server.