Verwaltung von Frames, Waffen, Archwings, Sentinels und Pets Mithilfe von Claude gebaut.
  • HTML 61.2%
  • PHP 38.8%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-25 18:49:59 +02:00
assets/thumbs changes, includes thumbnails, use API Repository 2026-08-20 16:32:39 +02:00
data Login, Database 2026-08-20 15:34:26 +02:00
tools integrate renovate bot 2026-08-25 18:46:36 +02:00
.gitignore changes, includes thumbnails, use API Repository 2026-08-20 16:32:39 +02:00
api.php alphabetical order 2026-08-21 11:12:46 +02:00
bootstrap.php Login, Database 2026-08-20 15:34:26 +02:00
config.example.php Login, Database 2026-08-20 15:34:26 +02:00
index.html alphabetical order 2026-08-21 11:12:46 +02:00
LICENSE Initial commit 2026-08-20 13:46:50 +02:00
login.html Login, Database 2026-08-20 15:34:26 +02:00
README.md test backwards 2026-08-25 18:49:59 +02:00
renovate.json integrate renovate bot 2026-08-25 18:46:36 +02:00
schema-update-2-categories-images.sql changes, includes thumbnails, use API Repository 2026-08-20 16:32:39 +02:00
schema-update-3-meta.sql add Footer, add changes to the import 2026-08-20 17:26:39 +02:00
schema.sql add Footer, add changes to the import 2026-08-20 17:26:39 +02:00

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

  1. Datenbank vorbereiten: schema.sql einmalig gegen die MariaDB ausführen (z. B. über phpMyAdmin oder die KAS-Datenbankverwaltung bei AllInkl). Das legt die Tabellen users, items und user_item_state an und befüllt items mit der Startliste.
  2. config.php anlegen: config.example.php nach config.php kopieren und mit den echten Zugangsdaten (Host, Port, Datenbankname, Benutzer, Passwort) befüllen.
  3. Hochladen: index.html, login.html, api.php, bootstrap.php und config.php per FTP auf den Webspace laden.
  4. 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:

  1. Beide Accounts unter login.html registrieren.
  2. In tools/migrate_legacy_json.php das Mapping von alten Profilnamen (z. B. Ich, Mein Partner) zu den neuen Benutzernamen eintragen.
  3. Datei einmal per Browser mit ?confirm=yes aufrufen (z. B. https://deine-domain/tools/migrate_legacy_json.php?confirm=yes).
  4. 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):

  1. schema-update-2-categories-images.sql einmal gegen die Datenbank ausführen. Das ergänzt die Spalte image_file und teilt die alte Kategorie „Begleiter" in sentinels (Sentinels) und pets (Haustiere) auf.

  2. schema-update-3-meta.sql einmal ausführen — legt die meta-Tabelle an, in die der Import den Datenstand (Commit + Zeitpunkt) für den Footer schreibt.

  3. tools/import_wfcd_items.php per FTP hochladen und einmal im Browser mit ?confirm=yes aufrufen, 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.

  4. 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.html hochladen und im Browser öffnen: Kategorien auswählen, Limit/Pause einstellen, Start klicken — die Seite ruft import_wfcd_items.php automatisch 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.

  5. 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):

  1. tools/import_wfcd_items.php erneut hochladen.
  2. 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.
  3. 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.