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.

AutorRico Rothenburger (enerSpace.de)
Erstellt am15.08.2019
Letzte Änderung03.04.2025
Version1.2.4

Verwendung

Grundlegende Syntax

bash
estools [command] [options] [arguments]

Wenn keine Argumente angegeben werden, wird die allgemeine Hilfe (usage) angezeigt.

Verfügbare Befehle

KategorieBefehlBeschreibung
AllgemeinhelpZeigt die Hilfe für Kommandos an
changelogZeigt das Changelog des Skripts an
Shopwarees:sw6:installInstalliert Shopware 6
es:sw6:firstrunErstellt das Shopware 6 Template vor dem First Run Wizard
Bildbearbeitunges:modern-image:generateErstellt oder aktualisiert WebP/AVIF-Dateien
es:modern-image:clearEntfernt alle WebP/AVIF-Dateien
es:modern-image:htaccess-showZeigt den .htaccess-Code für WebP/AVIF-Unterstützung
es:modern-image:htaccess-updateErweitert .htaccess für WebP/AVIF-Unterstützung
es:image:resizeÄndert die Größe von Bilddateien
Admintoolses:dev:passwordSetzt einen Passwortschutz für die DEV-Umgebung
SSH Umgebunges:php:setSetzt die Standard-PHP-Version auf der SSH-Umgebung

Befehle im Detail

Allgemeine Befehle

help

Zeigt die allgemeine Hilfe mit einer Übersicht aller verfügbaren Befehle.

bash
estools help

Shopware-Befehle

es:sw6:install

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:

bash
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:

bash
estools es:sw6:install /httpdocs
es:sw6:firstrun

Erstellt das Shopware 6 Template vor der Ausführung des First Run Wizards.

Syntax:

bash
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:

bash
estools es:sw6:firstrun /httpdocs

Bildbearbeitung

es:modern-image:generate

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:

  1. 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.

  2. 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.

  3. Konvertierung: Für jede geeignete Datei werden entsprechende .webp- und/oder .avif-Dateien erzeugt (z. B. bild.jpgbild.jpg.webp, bild.jpg.avif). Die Qualität richtet sich nach der angegebenen Option.

  4. 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.

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

  6. Bereinigung: Verwaiste WebP- oder AVIF-Dateien – also Dateien ohne zugehöriges Original – werden bei jedem Aufruf automatisch erkannt und gelöscht.

Syntax:

bash
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 ist webp.
  • -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:

bash
# 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 (siehe es: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.

es:modern-image:clear

Entfernt alle WebP- und AVIF-Dateien aus einem Verzeichnis.

Syntax:

bash
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:

bash
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.

es:modern-image:htaccess-show

Zeigt den .htaccess-Code für die Unterstützung von WebP/AVIF an.

Syntax:

bash
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.

es:modern-image:htaccess-update

Erweitert eine .htaccess-Datei um WebP/AVIF-Unterstützung.

Syntax:

bash
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:

bash
estools es:modern-image:htaccess-update /httpdocs
es:image:resize

Ä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:

bash
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:

bash
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

es:dev:password

Setzt einen Passwortschutz für eine Entwicklungsumgebung via .htaccess.

Syntax:

bash
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:

bash
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

es:php:set

Setzt die Standard-PHP-Version für die SSH-Umgebung.

Syntax:

bash
estools es:php:set [version]

Argumente:

  • version: PHP-Version (z. B. 7.4, 8.1). Unterstützte Versionen: 7.1 bis 8.4.

Beispiel:

bash
estools es:php:set 8.1

Hinweis

Ändert die PHP-Version für den Standard Befel php auf der SSH Umgebung.