mirror of
https://github.com/cloudmaker97/JTL-Shop-Entwicklungsumgebung.git
synced 2025-12-06 08:58:33 +00:00
Compare commits
No commits in common. "main" and "1.0.0" have entirely different histories.
13 changed files with 103 additions and 185 deletions
|
|
@ -1,7 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
## Description: Run just commands in the web container
|
||||
## Usage: just [command] [args...]
|
||||
## Example: "ddev just install" or "ddev just start"
|
||||
|
||||
just "$@"
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
name: jtl-shop
|
||||
type: php
|
||||
docroot: ./shop
|
||||
php_version: "8.4"
|
||||
webserver_type: apache-fpm
|
||||
xdebug_enabled: false
|
||||
additional_hostnames: []
|
||||
additional_fqdns: []
|
||||
database:
|
||||
type: mariadb
|
||||
version: "10.11"
|
||||
use_dns_when_possible: true
|
||||
composer_version: "2"
|
||||
web_environment: []
|
||||
corepack_enable: false
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
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
|
||||
RUN chmod +x /usr/local/bin/just
|
||||
BIN
.github/assets/command-exec.gif
vendored
BIN
.github/assets/command-exec.gif
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 8 MiB |
61
.github/workflows/test-install-routine.yml
vendored
61
.github/workflows/test-install-routine.yml
vendored
|
|
@ -1,61 +0,0 @@
|
|||
name: Test the installation routine
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
test-install:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 15
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Set up DDEV
|
||||
uses: ddev/github-action-setup-ddev@v1
|
||||
|
||||
- name: Start DDEV environment
|
||||
run: |
|
||||
ddev start
|
||||
ddev describe
|
||||
|
||||
- name: Run installation
|
||||
run: |
|
||||
echo "Starting JTL-Shop installation..."
|
||||
ddev just install
|
||||
|
||||
- name: Basic verification
|
||||
run: |
|
||||
echo "=== Verifying installation ==="
|
||||
# Check if basic shop files are present
|
||||
test -d shop/
|
||||
test -f shop/index.php
|
||||
test -d shop/includes/
|
||||
|
||||
# Check if database tables were created
|
||||
ddev exec "mysql -e 'SHOW TABLES;' db" | grep -q "tadmin" || (echo "Database tables not found" && exit 1)
|
||||
|
||||
echo "Installation verification completed successfully!"
|
||||
|
||||
- name: Debug on failure
|
||||
if: failure()
|
||||
run: |
|
||||
echo "=== DDEV Status ==="
|
||||
ddev describe
|
||||
echo "=== DDEV Logs ==="
|
||||
ddev logs
|
||||
echo "=== Shop Directory ==="
|
||||
ls -la shop/ || true
|
||||
echo "=== Install Directory ==="
|
||||
ls -la shop/install/ || true
|
||||
|
||||
- name: Cleanup
|
||||
if: always()
|
||||
run: |
|
||||
ddev stop
|
||||
ddev remove -RO
|
||||
8
.gitignore
vendored
8
.gitignore
vendored
|
|
@ -1,8 +0,0 @@
|
|||
# Ignore all changes except for non-default plugins and templates
|
||||
/shop/*
|
||||
!/shop/plugins
|
||||
!/shop/templates
|
||||
/shop/templates/NOVA
|
||||
|
||||
# Include the DDEV configuration
|
||||
!/.ddev
|
||||
3
.gitmodules
vendored
3
.gitmodules
vendored
|
|
@ -1,3 +0,0 @@
|
|||
[submodule "shop/plugins/dh_matomo_tracking"]
|
||||
path = shop/plugins/dh_matomo_tracking
|
||||
url = git@github.com:cloudmaker97/JTL-Matomo-Tracking.git
|
||||
78
README.md
78
README.md
|
|
@ -1,26 +1,23 @@
|
|||
# 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.
|
||||
|
||||
## Voraussetzungen
|
||||
### Vorschau der Installation mit nur einem Befehl
|
||||
|
||||

|
||||
|
||||
### 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/)
|
||||
- [DDEV: Docker Development](https://ddev.com/)
|
||||
- [Just: Command Runner](https://just.systems/)
|
||||
|
||||
## Installation und Befehle
|
||||
|
||||
```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.
|
||||
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.
|
||||
|
||||
Nach der erfolgreichen Installation kann der Shop über die angezeigte URL aufgerufen werden. Die Anmeldedaten wurden automatisch festgelegt und sind:
|
||||
|
||||
|
|
@ -29,47 +26,46 @@ Nach der erfolgreichen Installation kann der Shop über die angezeigte URL aufge
|
|||
| Shop-Administration | `admin` | `admin` |
|
||||
| Shop-Abgleich | `sync` | `sync` |
|
||||
|
||||
## 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
|
||||
### Benutzerdefinierte Installations-Routinen
|
||||
|
||||
```bash
|
||||
# Installiert den Shop unter einer anderen Domain
|
||||
ddev just shop_url="jtl-shop.ddev.site" shop_version="5.5.2"
|
||||
# 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"
|
||||
```
|
||||
|
||||
### 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
|
||||
# Installiert den Shop unter einer anderen Domain
|
||||
ddev just shop_version="5.5.2"
|
||||
# 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
|
||||
```
|
||||
|
||||
### 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.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' |
|
||||
| `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. |
|
||||
| `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` | `jtl-shop.ddev.site` | Die URL über die der Shop erreicht werden soll. Achtung: DDEV Config vorher anpassen! |
|
||||
| `install_url` | `https://jtl-shop-**X.X.X**.ddev.site` | Die URL über die |
|
||||
|
||||
### Beispiel
|
||||
### 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.
|
||||
|
|
|
|||
85
justfile
85
justfile
|
|
@ -1,48 +1,95 @@
|
|||
shop_version := "5.5.2"
|
||||
shop_url := "jtl-shop.ddev.site"
|
||||
shop_version := "5.3.1"
|
||||
php_version := "8.2"
|
||||
install_demo := "true"
|
||||
install_demo_products := "10"
|
||||
install_demo_categories := "3"
|
||||
install_demo_manufacturers := "3"
|
||||
|
||||
# Installiert den Shop mit den angegebenen Werten (Standard)
|
||||
# Installiert den Shop mit den angegebenen Werten
|
||||
[linux]
|
||||
install:
|
||||
@echo "Installiere den Shop"
|
||||
@echo "Installiere Abhängigkeiten (ddev, rsync, unzip, mkcert)"
|
||||
just install-dependencies
|
||||
just uninstall
|
||||
mkdir -p ./shop
|
||||
@echo "Lade JTL-Shop v{{shop_version}} herunter"
|
||||
cd ./shop && wget https://gitlab.com/jtl-software/jtl-shop/core/-/archive/v{{shop_version}}/core-v{{shop_version}}.zip -O core.zip
|
||||
# Unzip and ignore existing files
|
||||
cd ./shop && unzip -on core.zip && rm core.zip
|
||||
cd ./shop && unzip -o core.zip && rm core.zip
|
||||
# Overwrite all files, otherwise set --ignore-existing for rsync
|
||||
@echo "Kopiere heruntergeladene Dateien in das Shop-Verzeichnis"
|
||||
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/*
|
||||
|
||||
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://{{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://{{shop_url}}/install/install.php?task=installdemodata; \
|
||||
@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
|
||||
|
||||
[private]
|
||||
run-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
|
||||
@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; \
|
||||
fi
|
||||
clear
|
||||
@echo "Installation erfolgreich abgeschlossen."
|
||||
@echo "Erreichbar unter: https://{{shop_url}}"
|
||||
@echo "Erreichbar unter: 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
|
||||
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
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
<FilesMatch ".+\.ph(ar|p|tml)$">
|
||||
<IfModule mod_authz_core.c>
|
||||
Require all denied
|
||||
</IfModule>
|
||||
<IfModule !mod_authz_core.c>
|
||||
Order Deny,Allow
|
||||
Deny from all
|
||||
</IfModule>
|
||||
</FilesMatch>
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
<Files *.tpl>
|
||||
<IfModule mod_authz_core.c>
|
||||
Require all denied
|
||||
</IfModule>
|
||||
<IfModule !mod_authz_core.c>
|
||||
Order Deny,Allow
|
||||
Deny from all
|
||||
</IfModule>
|
||||
</Files>
|
||||
|
||||
<Files *.php>
|
||||
<IfModule mod_authz_core.c>
|
||||
Require all denied
|
||||
</IfModule>
|
||||
<IfModule !mod_authz_core.c>
|
||||
Order Deny,Allow
|
||||
Deny from all
|
||||
</IfModule>
|
||||
</Files>
|
||||
Binary file not shown.
Loading…
Reference in a new issue