Basis-Umgebung für den JTL-Shop erstellt

This commit is contained in:
Dennis Heinrich 2024-04-05 21:39:27 +02:00
commit 7432a0b5d3
8 changed files with 152 additions and 0 deletions

68
README.md Normal file
View file

@ -0,0 +1,68 @@
# Shop Entwicklung
## 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.
### Lizenz der Shop-Software
> Die Shop-Software wurde durch die [JTL-Software GmbH](https://www.jtl-software.de/) erstellt und unterliegt den jeweiligen Lizenzbedingungen, welche auch hier einsehbar sind: [JTL-Shop / Core](https://gitlab.com/jtl-software/jtl-shop/core/-/blob/master/LICENSE.md).
### Lizenz der Scripts in diesem Projekt
> Die Scripts zur automatisierten Installation wurden von [Dennis Heinrich](https://dennis-heinri.ch) erstellt und unterliegen ebenfalls den selben Lizenzbedingungen, wie die Shop-Software.
## 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. Optional kann auch eine spezifische Version installiert werden. Dazu wird eine unterstützte Versionsnummer verwendet.
```bash
# Führt die Installation mit der neusten Shop-Version auf PHP 8.1
# aus und installiert anschließend den Shop mit Demo-Daten.
just
```
```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.
just shop_version="5.3.1" install_demo="false" php_version="8.1"
```
```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
```
```bash
# Diese Befehle sind zur Steuerung des DDEV-Containers vorgesehen.
# <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
# Startet den DDEV-Container
just start
# Stoppt den DDEV-Container
just stop
# Zeigt die Beschreibung und URLs des Containers an
just describe
```
| 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` |
| `install_demo` | `true` | Ob der neue Shop Demo-Daten enthalten soll, ansonsten muss `false` angegeben werden. |
## Voraussetzungen
Zur Nutzung dieses Repositories sind folgende Voraussetzungen notwendig:
- [DDEV: Entwicklungsserver](https://ddev.readthedocs.io/en/stable/)
- [Docker: Virtualisierung](https://www.docker.com/)
- [Just: Command Runner](https://just.systems/)
## 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.

75
justfile Normal file
View file

@ -0,0 +1,75 @@
shop_version := "5.3.1"
php_version := "8.2"
install_demo := "true"
# Installiert den Shop mit den angegebenen Werten
[linux]
install:
just uninstall
mkdir -p ./shop
cd ./shop && wget https://gitlab.com/jtl-software/jtl-shop/core/-/archive/v{{shop_version}}/core-v{{shop_version}}.zip -O core.zip
cd ./shop && unzip -o core.zip && rm core.zip
sudo apt-get update && sudo apt-get install rsync
# Overwrite all files, otherwise set --ignore-existing for rsync
cd ./shop && rsync -av core-*/* . && rm -rf core-*
just copy-installer
just ddev-configuration
just run-installer
# Deinstalliert den Shop. Löscht alle Dateien und Datenbanken
[linux]
uninstall:
@rm -rf ./shop/*
@if [ -d ".ddev" ]; then \
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
[private]
run-installer:
@echo "\r\nInstalling JTL-Shop {{shop_version}}..."
@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=10&demoCategories=10&demoManufacturers=10' https://jtl-shop-{{shop_version}}.ddev.site/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=10&demoCategories=10&demoManufacturers=10' https://jtl-shop-{{shop_version}}.ddev.site/install/install.php?task=installdemodata; \
fi
@echo "Installation finished. You can now access the shop at https://jtl-shop-{{shop_version}}.ddev.site"
[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
[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

View file

@ -0,0 +1,9 @@
{
"folders": [
{
"path": ".",
"name": "JTL-Shop: System zur Entwicklung"
}
],
"settings": {}
}

0
shop/.gitkeep Normal file
View file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.