diff --git a/.ddev/config.yaml b/.ddev/config.yaml index 872fe68..536b205 100644 --- a/.ddev/config.yaml +++ b/.ddev/config.yaml @@ -1,7 +1,7 @@ name: jtl-shop type: php docroot: ./shop -php_version: "8.2" +php_version: "8.4" webserver_type: apache-fpm xdebug_enabled: false additional_hostnames: [] diff --git a/.ddev/web-build/Dockerfile b/.ddev/web-build/Dockerfile.justfile similarity index 63% rename from .ddev/web-build/Dockerfile rename to .ddev/web-build/Dockerfile.justfile index c314739..154a7b3 100644 --- a/.ddev/web-build/Dockerfile +++ b/.ddev/web-build/Dockerfile.justfile @@ -1,9 +1,3 @@ -ARG BASE_IMAGE -FROM $BASE_IMAGE -USER root -# Install just from GitHub releases RUN curl -L "https://github.com/casey/just/releases/download/1.36.0/just-1.36.0-x86_64-unknown-linux-musl.tar.gz" \ | tar -xz -C /usr/local/bin - -# Make just executable RUN chmod +x /usr/local/bin/just \ No newline at end of file diff --git a/README.md b/README.md index 3f46853..bc209ac 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,26 @@ # Entwicklungsumgebung für den JTL-Shop -## Beschreibung - Dieses Repository enthält alle benötigten Scripts, um einen JTL-Shop schnell und automatisiert zu Entwicklungszwecken zu installieren. Die Nutzung für produktive Systeme ist mit diesem Projekt nicht vorgesehen und wird auch nicht empfohlen. -### Vorschau der Installation mit nur einem Befehl - -![Installation im Terminal](https://github.com/cloudmaker97/JTL-Shop-Entwicklungsumgebung/assets/4189795/98325070-fb9a-4f19-94b0-89bc162a07db) - -### Voraussetzungen +## Voraussetzungen Es gelten die Lizenzbedingungen der JTL-Software-GmbH. Die Lizenzbedingungen sind in diesem Projekt als Lizenzdatei hinterlegt. Zur Nutzung dieses Repositories sind zudem folgende Voraussetzungen notwendig: - [Docker: Virtualisierung](https://www.docker.com/) -- [Just: Command Runner](https://just.systems/) +- [DDEV: Docker Development](https://ddev.com/) ## Installation und Befehle -Zur Installation des Shops wird nur ein Befehl benötigt. Der Befehl `just install` installiert den Shop mit der neusten Version und den standardmäßigen Einstellungen. +```bash +# 1. Klonen des Repository via SSH +git clone git@github.com:cloudmaker97/JTL-Shop-Entwicklungsumgebung.git +# 2. Anschließend in der Verzeichnis wechseln +cd JTL-Shop-Entwicklungsumgebung +# 3. Installation unter Standardeinstellungen +ddev just install +``` + +Zur Installation des Shops wird nur ein Befehl benötigt. Der Befehl `ddev just install` installiert den Shop mit der neusten Version und den standardmäßigen Einstellungen. Nach der erfolgreichen Installation kann der Shop über die angezeigte URL aufgerufen werden. Die Anmeldedaten wurden automatisch festgelegt und sind: @@ -26,46 +29,43 @@ Nach der erfolgreichen Installation kann der Shop über die angezeigte URL aufge | Shop-Administration | `admin` | `admin` | | Shop-Abgleich | `sync` | `sync` | -### Benutzerdefinierte Installations-Routinen +## Benutzerdefinierte Installations-Routinen + +### Nutzung einer zweiten DDEV-Instanz + +1. Repository klonen +2. Änderung der Domain in `.ddev/config.yaml` +3. Den Container zwingend mit `ddev restart` neu starten +4. Anschließend die Installation mit Argument starten ```bash -# Führt die Installation mit spezifischen Werten aus. -# Darüber kann die Installation der Shop-Version gesteuert werden, -# die PHP-Version und ob Demo-Daten installiert werden sollen. -# Weitere Parameter sind in der Tabelle unten aufgeführt. -just shop_version="5.3.1" install_demo="false" php_version="8.1" +# Installiert den Shop unter einer anderen Domain +ddev just shop_url="jtl-shop.ddev.site" shop_version="5.5.2" ``` +### Nutzung einer anderen Shop-Version + +> Da die JTL-Shop Core den Installer nicht mehr zur Verfügung stellt, ist es notwendig, die Installer-Dateien in diesem Repository im Ordner `tools/installer` zu hinterlegen. Die Dateien sind in den entsprechenden Versionen im Dateinamen `install_X.X.X.zip` hinterlegt. Die Installations-Dateien können von der [Webseite von JTL](https://www.jtl-software.de/) mit einem Kundenkonto bezogen werden. Es ist außerdem notwendig, dass in dem Repository des JTL-Shops / Core die Versionen als Tags hinterlegt sind. Diese Tags müssen mit den Versionen im Dateinamen der Installer-Dateien übereinstimmen. + +1. Repository klonen +2. Notwendige PHP-Version unter `.ddev/config.yaml` eintragen +3. Den Container zwingend mit `ddev restart` neu starten +4. Anschließend die Installation mit Argument starten + ```bash -# Erstellt ein Backup der Datenbank, Deinstalliert den Shop, -# und löscht anschließend alle Dateien und Datenbanken. Die Datenbanken -# werden als Snapshot im `.ddev/db_snapshots` Ordner gespeichert. -just uninstall +# Installiert den Shop unter einer anderen Domain +ddev just shop_version="5.5.2" ``` +### Sonstige Installationsparameter + +Hier sind alle Installationsparameter die mit der Installation mitgegeben werden um die Installation zu beeinflussen, Testprodukte zu erstellen etc. + | Parameter | Standardwert | Beschreibung | | --- | --- | --- | -| `shop_version` | `5.3.1` | Die Shop-Version, die installiert werden soll. Aktuell stehen zur Auswahl `5.3.1`, `5.2.5`, `5.1.6` oder `5.0.6`. Um weitere Versionen anzubieten, siehe weiter unten im Abschnitt 'Unterstützte Shop-Versionen' | -| `php_version` | `8.2` | Die PHP-Version, die genutzt werden soll. `5.6`, `7.0`, `7.1`, `7.2`, `7.3`, `7.4`, `8.0`, `8.1`, `8.2`, oder `8.3` | +| `shop_version` | `5.5.2` | Die Shop-Version, die installiert werden soll. Aktuell stehen zur Auswahl `5.5.2`, `5.3.1`, `5.2.5`, `5.1.6` oder `5.0.6`. Um weitere Versionen anzubieten, siehe weiter unten im Abschnitt 'Unterstützte Shop-Versionen' | | `install_demo` | `true` | Ob der neue Shop Demo-Daten enthalten soll, ansonsten muss `false` angegeben werden. | | `install_demo_products` | `10` | Falls die Demo-Daten installiert werden: Anzahl der zu generierenden Produkte | | `install_demo_categories` | `3` | Falls die Demo-Daten installiert werden: Anzahl zu generierenden der Kategorien | | `install_demo_manufacturers` | `3` | Falls die Demo-Daten installiert werden: Anzahl der zu generierenden Hersteller | -| `install_url` | `https://jtl-shop-**X.X.X**.ddev.site` | Die URL über die | - -### Befehle für den DDEV-Entwicklungsserver - -```bash -# Startet den Entwicklungs-Container -just start -# Stoppt den Entwicklungs-Container -just stop -# Zeigt die Beschreibung und URLs des Containers an -just describe -``` - -## Unterstützte Shop-Versionen - -Da die JTL-Shop Core den Installer nicht mehr zur Verfügung stellt, ist es notwendig, die Installer-Dateien in diesem Repository im Ordner `tools/installer` zu hinterlegen. Die Dateien sind in den entsprechenden Versionen im Dateinamen `install_**X.X.X**.zip` hinterlegt. Die Installations-Dateien können von der [Webseite von JTL](https://www.jtl-software.de/) mit einem Kundenkonto bezogen werden. - -Es ist außerdem notwendig, dass in dem Repository des JTL-Shops / Core die Versionen als Tags hinterlegt sind. Diese Tags müssen mit den Versionen im Dateinamen der Installer-Dateien übereinstimmen. +| `install_url` | `jtl-shop.ddev.site` | Die URL über die der Shop erreicht werden soll. Achtung: DDEV Config vorher anpassen! | \ No newline at end of file diff --git a/justfile b/justfile index f8faff4..bb6c7f0 100644 --- a/justfile +++ b/justfile @@ -1,15 +1,13 @@ -shop_version := "5.3.1" -php_version := "8.2" +shop_version := "5.5.2" +shop_url := "jtl-shop.ddev.site" install_demo := "true" install_demo_products := "10" install_demo_categories := "3" install_demo_manufacturers := "3" # Installiert den Shop mit den angegebenen Werten (Standard) -[linux] install: - @echo "Installiere Abhängigkeiten (ddev, rsync, unzip, mkcert)" - just install-dependencies + @echo "Installiere den Shop" just uninstall mkdir -p ./shop @echo "Lade JTL-Shop v{{shop_version}} herunter" @@ -21,79 +19,30 @@ install: cd ./shop && rsync -av core-*/* . && rm -rf core-* @echo "Kopiere Installer in das Shop-Verzeichnis" just copy-installer - @echo "Konfiguriere die Entwicklungsumgebung" - just ddev-configuration @echo "Installiere den Shop automatisch und lösche das Installationsverzeichnis" just run-installer -[private] -[linux] -install-dependencies: - sudo apt-get update - sudo apt-get install -y curl rsync unzip - curl -fsSL https://ddev.com/install.sh | bash - mkcert -install # Deinstalliert den Shop. Löscht alle Dateien und Datenbanken -[linux] uninstall: + @echo "Deinstalliere den Shop" @rm -rf ./shop/* - @if [ -d ".ddev" ]; then \ - echo "Entferne vorherige Installation" \ - ddev delete -y; \ - else \ - echo "Keine vorhandene Installation gefunden."; \ - fi -# Startet die Entwicklungsumgebung -[linux] -start: - @if [ -d ".ddev" ]; then \ - ddev start; \ - else \ - echo "Keine Konfiguration gefunden, bitte zuerst 'just install' ausführen."; \ - fi - -# Fährt die Entwicklungsumgebung herunter -[linux] -stop: - @if [ -d ".ddev" ]; then \ - ddev stop; \ - else \ - echo "Keine Konfiguration gefunden, bitte zuerst 'just install' ausführen."; \ - fi - -# Zeigt Informationen zur Entwicklungsumgebung an -[linux] -describe: - @if [ -d ".ddev" ]; then \ - ddev describe; \ - else \ - echo "Keine Konfiguration gefunden, bitte zuerst 'just install' ausführen."; \ - fi - -[linux] -[private] run-installer: + # Composer install + @echo "\r\nInstalliere Composer Abhängigkeiten..." + @cd ./shop && composer install --working-dir=./includes + # Installer @echo "\r\nInstalliere die Datenbank..." - @curl --silent -X POST -k -H 'Content-Type: application/x-www-form-urlencoded' -d 'admin[name]=admin&admin[pass]=admin&admin[locale]=de&wawi[name]=sync&wawi[pass]=sync&db[host]=db&db[pass]=db&db[socket]=&db[user]=db&db[name]=db&demoProducts={{install_demo_products}}&demoCategories={{install_demo_categories}}&demoManufacturers={{install_demo_manufacturers}}' https://jtl-shop-{{shop_version}}.ddev.site/install/install.php?task=doinstall + @curl --silent -X POST -k -H 'Content-Type: application/x-www-form-urlencoded' -d 'admin[name]=admin&admin[pass]=admin&admin[locale]=de&wawi[name]=sync&wawi[pass]=sync&db[host]=db&db[pass]=db&db[socket]=&db[user]=db&db[name]=db&demoProducts={{install_demo_products}}&demoCategories={{install_demo_categories}}&demoManufacturers={{install_demo_manufacturers}}' https://{{shop_url}}/install/install.php?task=doinstall @if [ {{install_demo}} = "true" ]; then \ - curl --silent -X POST -k -H 'Content-Type: application/x-www-form-urlencoded' -d 'admin[name]=admin&admin[pass]=admin&admin[locale]=de&wawi[name]=sync&wawi[pass]=sync&db[host]=db&db[pass]=db&db[socket]=&db[user]=db&db[name]=db&demoProducts={{install_demo_products}}&demoCategories={{install_demo_categories}}&demoManufacturers={{install_demo_manufacturers}}' https://jtl-shop-{{shop_version}}.ddev.site/install/install.php?task=installdemodata; \ + curl --silent -X POST -k -H 'Content-Type: application/x-www-form-urlencoded' -d 'admin[name]=admin&admin[pass]=admin&admin[locale]=de&wawi[name]=sync&wawi[pass]=sync&db[host]=db&db[pass]=db&db[socket]=&db[user]=db&db[name]=db&demoProducts={{install_demo_products}}&demoCategories={{install_demo_categories}}&demoManufacturers={{install_demo_manufacturers}}' https://{{shop_url}}/install/install.php?task=installdemodata; \ fi - clear @echo "Installation erfolgreich abgeschlossen." - @echo "Erreichbar unter: https://jtl-shop-{{shop_version}}.ddev.site" + @echo "Erreichbar unter: https://{{shop_url}}" -[linux] [private] copy-installer: cp ./tools/installer/install_{{shop_version}}.zip ./shop/install/installer.zip unzip -o ./shop/install/installer.zip -d ./shop/install - rm ./shop/install/installer.zip - -[linux] -[private] -ddev-configuration: - ddev config --php-version {{php_version}} --project-type php --docroot ./shop --project-name jtl-shop-{{shop_version}} - ddev start - ddev exec composer install --working-dir=./shop/includes \ No newline at end of file + rm ./shop/install/installer.zip \ No newline at end of file diff --git a/shop/templates/.gitkeep b/shop/templates/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/tools/installer/install_5_5_2.zip b/tools/installer/install_5_5_2.zip new file mode 100644 index 0000000..06fa459 Binary files /dev/null and b/tools/installer/install_5_5_2.zip differ