#
enerSpace Tool-Sammlung
Dieses Skript bietet eine Vielzahl von Tools zur Automatisierung von Aufgaben wie der Installation von Shopware 6, der Verwaltung moderner Bildformate (WebP/AVIF), der Größenänderung von Bildern, dem Schutz von Entwicklungsumgebungen und mehr. Es ist für die Nutzung über die Kommandozeile ausgelegt und unterstützt verschiedene Optionen und Argumente.
Next Feature: Erstellung einer Staging-Umgebung per Cronjob.
#
Verwendung
#
Grundlegende Syntax
estools [command] [options] [arguments]
Wenn keine Argumente angegeben werden, wird die allgemeine Hilfe (usage
) angezeigt.
#
Verfügbare Befehle
#
Befehle im Detail
#
Allgemeine Befehle
#
help
Zeigt die allgemeine Hilfe mit einer Übersicht aller verfügbaren Befehle.
estools help
#
Shopware-Befehle
Installiert die aktuelle Version von Shopware 6 im angegebenen Verzeichnis. Zusätzlich wird eine angepasste Konfigurationsdatei unter /config/packages/ abgelegt, welche systemspezifische Einstellungen enthält.
Syntax:
estools es:sw6:install [path] [options]
Argumente:
path
: Hauptverzeichnis, in das Shopware installiert werden soll (z. B./httpdocs
).
Optionen:
-c, --clear
: Löscht den Inhalt des Verzeichnisses ohne Rückfrage.-q, --quiet
: Unterdrückt Ausgaben und löscht den Inhalt ohne Rückfrage.-h, --help
: Zeigt die Hilfe an.
Beispiel:
estools es:sw6:install /httpdocs
Erstellt das Shopware 6 Template vor der Ausführung des First Run Wizards.
Syntax:
estools es:sw6:firstrun [path] [options]
Argumente:
path
: Hauptverzeichnis von Shopware (z. B./httpdocs
).
Optionen:
-q, --quiet
: Unterdrückt Ausgaben.-h, --help
: Zeigt die Hilfe an.
Beispiel:
estools es:sw6:firstrun /httpdocs
#
Bildbearbeitung
Erstellt oder aktualisiert WebP- und/oder AVIF-Bilder aus vorhandenen JPG- oder PNG-Dateien in einem angegebenen Verzeichnis.
Zweck:
Mit diesem Befehl lassen sich moderne Bildformate (WebP und AVIF) aus vorhandenen JPG- oder PNG-Dateien automatisch generieren. Ziel ist eine deutliche Reduzierung der Dateigröße, was zu schnelleren Ladezeiten von Webseiten führt. Bestehende Konvertierungen werden erkannt und übersprungen, um Ressourcen zu sparen. Eine SQLite-Datenbank dokumentiert jede Verarbeitung und sorgt für Nachverfolgbarkeit und Effizienz.
Funktionsweise:
Initialisierung: Beim ersten Start wird im Verzeichnis
/.enerspace/filedatabases/
eine SQLite-Datenbank erstellt. Der Datenbankname ist ein MD5-Hash des Zielverzeichnisses. Die Datenbank speichert Dateipfad, Zeitstempel und den Status der WebP-/AVIF-Erstellung.Farbraumprüfung: Für jede JPG- oder PNG-Datei wird geprüft, ob sie im CMYK-Farbraum vorliegt. Falls ja, erfolgt eine temporäre Konvertierung nach RGB mit
convert
, da WebP und AVIF nur RGB unterstützen.Konvertierung: Für jede geeignete Datei werden entsprechende
.webp
- und/oder.avif
-Dateien erzeugt (z. B.bild.jpg
→bild.jpg.webp
,bild.jpg.avif
). Die Qualität richtet sich nach der angegebenen Option.Originaldatei überschreiben: Wird die Option
-m/--convert-cmyk
verwendet, wird das ursprüngliche CMYK-Bild dauerhaft durch die RGB-Version ersetzt, um künftige Verarbeitungen zu vereinfachen.Parallelisierung: Mehrere Dateien können gleichzeitig verarbeitet werden. Die Anzahl paralleler Prozesse wird über
--jobs
gesteuert. Dies reduziert die Gesamtverarbeitungszeit bei großen Bildbeständen erheblich.Bereinigung: Verwaiste WebP- oder AVIF-Dateien – also Dateien ohne zugehöriges Original – werden bei jedem Aufruf automatisch erkannt und gelöscht.
Syntax:
estools es:modern-image:generate [path] [options]
Argumente:
path
: Zielverzeichnis für die Bildkonvertierung (z. B./httpdocs/media/image
). Es werden rekursiv alle Bilder durchsucht und verarbeitet.
Optionen:
-i, --imagequality <0–100>
: Legt die Bildqualität fest (Standard: 80). Höhere Werte = bessere Qualität, größere Dateien.-f, --format <webp|avif|both>
: Gibt an, welche Formate erstellt werden. Standard istwebp
.-m, --convert-cmyk
: Überschreibt CMYK-Bilder dauerhaft mit RGB-Version.-j, --jobs <Anzahl>
: Anzahl gleichzeitiger Prozesse (Standard: 1). Abhängig von der CPU-Leistung.-q, --quiet
: Unterdrückt Ausgaben wie Fortschrittsanzeige und Statistik.-h, --help
: Zeigt die Hilfe an.
Beispiele:
# Nur WebP mit Standardqualität
estools es:modern-image:generate /httpdocs/media/image
# WebP und AVIF mit Qualität 90, vier parallele Prozesse
estools es:modern-image:generate /httpdocs/media/image -f both -i 90 -j 4
# Nur AVIF, CMYK-Originale werden ersetzt
estools es:modern-image:generate /httpdocs/media/image -f avif -m
# Silent-Modus
estools es:modern-image:generate /httpdocs/media/image -q
Einsatzmöglichkeiten:
- Webseitenoptimierung: Reduziert die Dateigröße von Bildern, um Ladezeiten zu verbessern, ohne dass ein separates Plugin erforderlich ist.
- Browserkompatibilität: In Kombination mit
.htaccess
-Regeln (siehees:modern-image:htaccess-update
) wird das passende Format (AVIF, WebP oder Original) je nach Browserunterstützung ausgeliefert. - Automatisierung: Ideal für regelmäßige Updates per Cronjob, da neue Bilder automatisch erkannt und alte, nicht mehr benötigte Dateien gelöscht werden.
- Farbraumkorrektur: Mit
-m/--convert-cmyk
können problematische CMYK-Bilder direkt korrigiert werden, was nützlich ist, wenn Originale in einem webtauglichen Format benötigt werden.
Vorteil
Die serverseitige Konvertierung erfolgt unabhängig vom eingesetzten CMS und erfordert keine kostenpflichtigen Plugins. Integration ist einfach und flexibel möglich.
Hinweis
Die SQLite-Datenbank erkennt bereits konvertierte Dateien. Neue, gelöschte oder geänderte Bilder werden zuverlässig verarbeitet. Die Datenbank bleibt auch bei Abbrüchen konsistent.
Warnung
Der Wert von --jobs
sollte die Anzahl verfügbarer CPU-Kerne nicht überschreiten (z. B. mit nproc
ermittelbar). Auf Shared-Hosting-Systemen wird maximal --jobs 3
empfohlen.
Achtung
Die zusätzlichen Formate erhöhen den Speicherbedarf. Vor der Verwendung sollte ausreichend Speicherplatz geprüft werden. Bei Prozessabbruch können temporäre Dateien verbleiben.
Entfernt alle WebP- und AVIF-Dateien aus einem Verzeichnis.
Syntax:
estools es:modern-image:clear [path] [options]
Argumente:
path
: Hauptverzeichnis (z. B./httpdocs/media/image
).
Optionen:
-q, --quiet
: Unterdrückt Ausgaben.-h, --help
: Zeigt die Hilfe an.
Beispiel:
estools es:modern-image:clear /httpdocs/media/image
Hinweis
Wenn Sie die Dateien mit dem Befehl: estools es:modern-image:generate /httpdocs/media/image
generiert haben, sollte der Löschbefehl die gleiche Ordnerstruktur aufweisen. Ansonsten werden die Dateien nicht gelöscht, da die erstellte Datenbank an den Ordnerpfad gebunden ist.
Zeigt den .htaccess
-Code für die Unterstützung von WebP/AVIF an.
Syntax:
estools es:modern-image:htaccess-show
Hinweis
Bei unserem reinen Nginx Hosting, sind bereits alle Regeln automatisch hinterlegt. Hier müssen keine .htaccess Regeln hinterlegt werden.
Erweitert eine .htaccess
-Datei um WebP/AVIF-Unterstützung.
Syntax:
estools es:modern-image:htaccess-update [path] [options]
Argumente:
path
: Hauptverzeichnis (z. B./httpdocs
).
Optionen:
-r, --remove
: Entfernt die Anpassungen.-q, --quiet
: Unterdrückt Ausgaben.-h, --help
: Zeigt die Hilfe an.
Beispiel:
estools es:modern-image:htaccess-update /httpdocs
Ändert die Größe von Bilddateien (JPG/PNG). Zudem werden überflüüsige Informationen aus den Bildern entfernt um die Dateigröße weiter zu komprimieren.
Syntax:
estools es:image:resize [path] [options]
Argumente:
path
: Hauptverzeichnis der Bilder (z. B./httpdocs/media/image
).
Optionen:
-h, --height <value>
: Maximale Höhe (Standard: 1920).-w, --width <value>
: Maximale Breite (Standard: 1920).-i, --imagequality <value>
: Bildqualität (Standard: 80).-q, --quiet
: Unterdrückt Ausgaben.-h, --help
: Zeigt die Hilfe an.
Beispiel:
estools es:image:resize /httpdocs/media/image -h 1080 -w 1080
Hinweis
Der Vorgang kann einige Zeit in Anspruch nehmen, insbesondere bei der Verarbeitung vieler PNG-Dateien. Da der Prozess rechenintensiv ist, könnte Ihre Webseite währenddessen langsamer reagieren oder überlastet wirken.
#
Admintools
Setzt einen Passwortschutz für eine Entwicklungsumgebung via .htaccess
.
Syntax:
estools es:dev:password [path] [options]
Argumente:
path
: Hauptverzeichnis (z. B./httpdocs
).
Optionen:
-r, --remove
: Entfernt den Passwortschutz.-h, --help
: Zeigt die Hilfe an.
Beispiel:
estools es:dev:password /httpdocs
Ausgabe (Beispiel):
Login
-------------------------
User: admin
Pass: Xk7$mP9q
-------------------------
Hinweis
Diese Funktion ist bei einem reinem Nginx-Hosting nicht verfügbar. Falls Sie ein Verzeichnis schützen möchten, kontaktieren Sie uns bitte direkt.
#
Tools für die SSH Umgebung
Setzt die Standard-PHP-Version für die SSH-Umgebung.
Syntax:
estools es:php:set [version]
Argumente:
version
: PHP-Version (z. B.7.4
,8.1
). Unterstützte Versionen: 7.1 bis 8.4.
Beispiel:
estools es:php:set 8.1
Hinweis
Ändert die PHP-Version für den Standard Befel php auf der SSH Umgebung.