Skip to content

benjamin-lam/asset-tool

Repository files navigation

asset-tool

Lokales Asset-Processing-Tool (PHP 8.2 + Apache + Docker) für Upload, Workflow-basierte Bildausgabe und ZIP-Export.

Features

  • Upload von Bildern (JPG, PNG, WEBP, SVG)
  • Workflow-Verarbeitung über src/workflows.json
  • Metadaten/Logs pro Asset in output/<slug>/meta.json
  • ZIP-Download generierter Sets

Sicherheit (Stand dieser Revision)

  • CSRF-Schutz für POST-Requests
  • Path-Traversal-Schutz in detail.php/delete.php
  • Upload-Whitelist (Extension + MIME) + 10MB Limit
  • Session-basiertes Rate-Limiting für Upload/Workflow-Run
  • Security-Header, CSP und Listing-Block via .htaccess
  • Konsolidierte Konfiguration in src/config.php
  • Siehe auch: SECURITY.md

Voraussetzungen

  • Docker + Docker Compose

Start

docker compose up --build

Dann im Browser öffnen:

How to Use

  1. Asset hochladen
    • In der Übersicht auf Upload New klicken.
    • Bild auswählen und optional Domain/Projekt sowie Beschreibung setzen.
    • Upload mit Asset Speichern abschicken.
  2. Workflow ausführen
    • In der Übersicht beim Asset auf Edit & Export klicken.
    • Gewünschten Workflow starten.
    • Generierte Dateien in der Output-Pipeline prüfen oder als ZIP herunterladen.
  3. Asset löschen
    • In der Übersicht den Papierkorb-Button verwenden.
    • Löschung läuft als CSRF-geschützter POST-Request mit Bestätigung.

Projektstruktur

  • src/index.php – Übersicht
  • src/upload.php – Upload + Domain-Zuordnung
  • src/detail.php – Workflow-Run + Export
  • src/delete.php – Löschen von Asset + Output
  • src/workflows.json – Workflow-Definitionen
  • src/config.php – Konstanten, CSRF, Logging, Limits

Workflows anpassen

src/workflows.json enthält Aufgaben pro Workflow (Suffix, Format, Breite/Höhe). Nach Änderungen Seite neu laden.

Troubleshooting

  • Upload schlägt fehl: Container-Logs prüfen (docker compose logs -f).
  • Leere Workflow-Liste: JSON-Syntax von src/workflows.json prüfen.
  • Fehlende Bildfunktionen: sicherstellen, dass Container mit Imagick/GD gebaut wurde.

License

MIT License.

Hinweis

raw/ und output/ sind Laufzeitdaten und in .gitignore ausgeschlossen.

About

Verwende Code mit Vorsicht.

Resources

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors