mirror of
https://github.com/Dokploy/templates.git
synced 2026-07-10 00:15:28 +02:00
Merge pull request #782 from zrja/zrja/shopware-v1
feat: add Shopware blueprint
This commit is contained in:
332
blueprints/shopware/docker-compose.yml
Normal file
332
blueprints/shopware/docker-compose.yml
Normal file
@@ -0,0 +1,332 @@
|
||||
version: "3.8"
|
||||
|
||||
# Dokploy Blueprint notes:
|
||||
# - This stack is intentionally self-contained for one-click deployments.
|
||||
# - The first deployment is slower because bootstrap downloads Shopware into a persistent volume.
|
||||
# - Shopware source code and generated JWT keys live in named volumes so redeploys remain stable.
|
||||
# - Failed messenger jobs remain in the `failed` queue for manual retry via Shopware console commands.
|
||||
|
||||
x-shopware-env: &shopware-env
|
||||
APP_ENV: "${APP_ENV:-prod}"
|
||||
APP_SECRET: "${APP_SECRET}"
|
||||
INSTANCE_ID: "${INSTANCE_ID}"
|
||||
APP_URL: "${APP_URL}"
|
||||
ENABLE_DEMO_DATA: "${ENABLE_DEMO_DATA:-1}"
|
||||
TRUSTED_PROXIES: "${TRUSTED_PROXIES:-private_ranges}"
|
||||
SYMFONY_TRUSTED_PROXIES: "${SYMFONY_TRUSTED_PROXIES:-private_ranges}"
|
||||
SYMFONY_TRUSTED_HEADERS: "${SYMFONY_TRUSTED_HEADERS:-x-forwarded-for,x-forwarded-host,x-forwarded-proto,x-forwarded-port,x-forwarded-prefix}"
|
||||
DATABASE_HOST: "database"
|
||||
DATABASE_PORT: "3306"
|
||||
DATABASE_NAME: "${DATABASE_NAME:-shopware}"
|
||||
DATABASE_USER: "${DATABASE_USER:-shopware}"
|
||||
DATABASE_PASSWORD: "${DATABASE_PASSWORD}"
|
||||
DATABASE_URL: "${DATABASE_URL}"
|
||||
REDIS_HOST: "redis"
|
||||
REDIS_PORT: "6379"
|
||||
REDIS_PASSWORD: "${REDIS_PASSWORD}"
|
||||
MAILER_DSN: "${MAILER_DSN:-null://localhost}"
|
||||
LOCK_DSN: "${LOCK_DSN}"
|
||||
MESSENGER_TRANSPORT_DSN: "${MESSENGER_TRANSPORT_DSN:-doctrine://default?queue_name=async}"
|
||||
MESSENGER_TRANSPORT_LOW_PRIORITY_DSN: "${MESSENGER_TRANSPORT_LOW_PRIORITY_DSN:-doctrine://default?queue_name=low_priority}"
|
||||
MESSENGER_TRANSPORT_FAILURE_DSN: "${MESSENGER_TRANSPORT_FAILURE_DSN:-doctrine://default?queue_name=failed}"
|
||||
COMPOSER_PLUGIN_LOADER: "${COMPOSER_PLUGIN_LOADER:-1}"
|
||||
SHOPWARE_HTTP_CACHE_ENABLED: "${SHOPWARE_HTTP_CACHE_ENABLED:-1}"
|
||||
SHOPWARE_HTTP_DEFAULT_TTL: "${SHOPWARE_HTTP_DEFAULT_TTL:-7200}"
|
||||
INSTALL_LOCALE: "${INSTALL_LOCALE:-en-GB}"
|
||||
INSTALL_CURRENCY: "${INSTALL_CURRENCY:-EUR}"
|
||||
INSTALL_ADMIN_USERNAME: "${INSTALL_ADMIN_USERNAME:-admin}"
|
||||
INSTALL_ADMIN_PASSWORD: "${INSTALL_ADMIN_PASSWORD}"
|
||||
PHP_SESSION_HANDLER: "${PHP_SESSION_HANDLER:-redis}"
|
||||
PHP_SESSION_SAVE_PATH: "${PHP_SESSION_SAVE_PATH}"
|
||||
PHP_SESSION_COOKIE_LIFETIME: "${PHP_SESSION_COOKIE_LIFETIME:-0}"
|
||||
PHP_SESSION_GC_MAXLIFETIME: "${PHP_SESSION_GC_MAXLIFETIME:-1440}"
|
||||
PHP_MAX_UPLOAD_SIZE: "${PHP_MAX_UPLOAD_SIZE:-128M}"
|
||||
PHP_MAX_EXECUTION_TIME: "${PHP_MAX_EXECUTION_TIME:-300}"
|
||||
PHP_MEMORY_LIMIT: "${PHP_MEMORY_LIMIT:-512M}"
|
||||
FPM_PM: "${FPM_PM:-dynamic}"
|
||||
FPM_PM_MAX_CHILDREN: "${FPM_PM_MAX_CHILDREN:-20}"
|
||||
FPM_PM_START_SERVERS: "${FPM_PM_START_SERVERS:-4}"
|
||||
FPM_PM_MIN_SPARE_SERVERS: "${FPM_PM_MIN_SPARE_SERVERS:-2}"
|
||||
FPM_PM_MAX_SPARE_SERVERS: "${FPM_PM_MAX_SPARE_SERVERS:-6}"
|
||||
BLUE_GREEN_DEPLOYMENT: "${BLUE_GREEN_DEPLOYMENT:-0}"
|
||||
|
||||
x-shopware-runtime-volumes: &shopware-runtime-volumes
|
||||
- shopware-code:/var/www/html
|
||||
- shopware-secrets:/run/shopware-secrets
|
||||
- files:/var/www/html/files
|
||||
- theme:/var/www/html/public/theme
|
||||
- media:/var/www/html/public/media
|
||||
- thumbnail:/var/www/html/public/thumbnail
|
||||
- sitemap:/var/www/html/public/sitemap
|
||||
|
||||
services:
|
||||
database:
|
||||
image: mysql:8.4
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
MYSQL_DATABASE: "${DATABASE_NAME:-shopware}"
|
||||
MYSQL_USER: "${DATABASE_USER:-shopware}"
|
||||
MYSQL_PASSWORD: "${DATABASE_PASSWORD}"
|
||||
MYSQL_ROOT_PASSWORD: "${MYSQL_ROOT_PASSWORD}"
|
||||
command:
|
||||
- --character-set-server=utf8mb4
|
||||
- --collation-server=utf8mb4_unicode_ci
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD-SHELL
|
||||
- mysqladmin ping -h 127.0.0.1 -uroot -p$${MYSQL_ROOT_PASSWORD} --silent
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 20
|
||||
start_period: 30s
|
||||
volumes:
|
||||
- database-data:/var/lib/mysql
|
||||
|
||||
redis:
|
||||
image: redis:7.4-alpine
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
REDIS_PASSWORD: "${REDIS_PASSWORD}"
|
||||
command:
|
||||
- redis-server
|
||||
- --appendonly
|
||||
- "yes"
|
||||
- --requirepass
|
||||
- "${REDIS_PASSWORD}"
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD-SHELL
|
||||
- redis-cli -a "$${REDIS_PASSWORD}" ping | grep -q PONG
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 20
|
||||
volumes:
|
||||
- redis-data:/data
|
||||
|
||||
bootstrap:
|
||||
image: ${SHOPWARE_CLI_IMAGE:-shopware/shopware-cli:0.14.3-php-8.4}
|
||||
restart: "no"
|
||||
environment:
|
||||
<<: *shopware-env
|
||||
COMPOSER_ALLOW_SUPERUSER: "1"
|
||||
COMPOSER_HOME: "/tmp/composer"
|
||||
SHOPWARE_VERSION: "${SHOPWARE_VERSION:-6.7.12.1}"
|
||||
SHOPWARE_DOCKER_VERSION: "${SHOPWARE_DOCKER_VERSION:-0.3.0}"
|
||||
ENABLE_DEMO_DATA: "${ENABLE_DEMO_DATA:-1}"
|
||||
DEMO_DATA_VERSION: "${DEMO_DATA_VERSION:-2.1.0}"
|
||||
depends_on:
|
||||
database:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
entrypoint:
|
||||
- /bin/sh
|
||||
- -ec
|
||||
- |
|
||||
mkdir -p /run/shopware-secrets /var/www/html
|
||||
|
||||
if [ ! -s /run/shopware-secrets/jwt-private.pem ] || [ ! -s /run/shopware-secrets/jwt-public.pem ]; then
|
||||
echo "Generating JWT keypair."
|
||||
openssl genpkey -algorithm RSA -out /run/shopware-secrets/jwt-private.pem -pkeyopt rsa_keygen_bits:2048
|
||||
openssl rsa -pubout -in /run/shopware-secrets/jwt-private.pem -out /run/shopware-secrets/jwt-public.pem
|
||||
chmod 600 /run/shopware-secrets/jwt-private.pem
|
||||
chmod 644 /run/shopware-secrets/jwt-public.pem
|
||||
fi
|
||||
|
||||
export JWT_PRIVATE_KEY="$$(cat /run/shopware-secrets/jwt-private.pem)"
|
||||
export JWT_PUBLIC_KEY="$$(cat /run/shopware-secrets/jwt-public.pem)"
|
||||
|
||||
if [ -f /var/www/html/composer.json ] && [ -f /var/www/html/bin/console ] && [ -f /var/www/html/vendor/autoload.php ]; then
|
||||
echo "Shopware source already exists. Skipping bootstrap."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if find /var/www/html -mindepth 1 -maxdepth 1 -print -quit | grep -q .; then
|
||||
echo "Incomplete Shopware source detected. Cleaning bootstrap volume."
|
||||
find /var/www/html -mindepth 1 -maxdepth 1 -exec rm -rf {} +
|
||||
fi
|
||||
|
||||
tmp_dir="$$(mktemp -d)"
|
||||
|
||||
# Composer >=2.9 refuses to install pinned versions that are affected by
|
||||
# security advisories published later. Keep the pinned bootstrap deterministic.
|
||||
composer config -g audit.block-insecure false 2>/dev/null || true
|
||||
|
||||
composer create-project --no-interaction --prefer-dist "shopware/production:${SHOPWARE_VERSION}" "$$tmp_dir"
|
||||
cd "$$tmp_dir"
|
||||
composer require --no-interaction "shopware/docker:${SHOPWARE_DOCKER_VERSION}"
|
||||
|
||||
if [ "${ENABLE_DEMO_DATA}" = "1" ]; then
|
||||
composer require --no-interaction --prefer-dist "swag/demo-data:${DEMO_DATA_VERSION}"
|
||||
fi
|
||||
|
||||
shopware-cli project ci "$$tmp_dir"
|
||||
cp -a "$$tmp_dir"/. /var/www/html/
|
||||
volumes:
|
||||
- shopware-code:/var/www/html
|
||||
- shopware-secrets:/run/shopware-secrets
|
||||
|
||||
init-permissions:
|
||||
image: alpine:3.21
|
||||
restart: "no"
|
||||
command:
|
||||
- sh
|
||||
- -ec
|
||||
- |
|
||||
mkdir -p \
|
||||
/var/www/html/files \
|
||||
/var/www/html/public/theme \
|
||||
/var/www/html/public/media \
|
||||
/var/www/html/public/thumbnail \
|
||||
/var/www/html/public/sitemap \
|
||||
/run/shopware-secrets
|
||||
chown -R 82:82 /var/www/html /run/shopware-secrets
|
||||
depends_on:
|
||||
bootstrap:
|
||||
condition: service_completed_successfully
|
||||
volumes: *shopware-runtime-volumes
|
||||
|
||||
init:
|
||||
image: ${SHOPWARE_BASE_IMAGE:-shopware/docker-base:8.4.19-nginx}
|
||||
restart: "no"
|
||||
entrypoint:
|
||||
- /bin/sh
|
||||
- -ec
|
||||
- |
|
||||
export JWT_PRIVATE_KEY="$(cat /run/shopware-secrets/jwt-private.pem)"
|
||||
export JWT_PUBLIC_KEY="$(cat /run/shopware-secrets/jwt-public.pem)"
|
||||
|
||||
/setup
|
||||
|
||||
if [ "${ENABLE_DEMO_DATA:-1}" != "1" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
cd /var/www/html
|
||||
|
||||
echo "Demo data enabled. Refreshing plugin list."
|
||||
php bin/console -n plugin:refresh
|
||||
|
||||
if [ ! -d /var/www/html/custom/plugins/SwagPlatformDemoData ]; then
|
||||
echo "SwagPlatformDemoData is not present in the volume."
|
||||
echo "Continuing without demo data activation."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if ! plugin_state="$$(
|
||||
php bin/console -n plugin:list --json | php -r '
|
||||
$$plugins = json_decode(stream_get_contents(STDIN), true);
|
||||
if (!is_array($$plugins)) {
|
||||
fwrite(STDERR, "Unable to parse plugin list\n");
|
||||
exit(2);
|
||||
}
|
||||
|
||||
foreach ($$plugins as $$plugin) {
|
||||
if (($$plugin["name"] ?? null) !== "SwagPlatformDemoData") {
|
||||
continue;
|
||||
}
|
||||
|
||||
$$installed = ($$plugin["installed"] ?? false) ? "1" : "0";
|
||||
$$active = ($$plugin["active"] ?? false) ? "1" : "0";
|
||||
|
||||
echo $$installed . ":" . $$active;
|
||||
exit(0);
|
||||
}
|
||||
|
||||
fwrite(STDERR, "SwagPlatformDemoData not found in plugin list\n");
|
||||
exit(1);
|
||||
'
|
||||
)"; then
|
||||
echo "Unable to resolve SwagPlatformDemoData state."
|
||||
echo "Continuing without demo data activation."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
case "$${plugin_state}" in
|
||||
"0:0")
|
||||
echo "Installing and activating SwagPlatformDemoData."
|
||||
php bin/console -n plugin:install --activate SwagPlatformDemoData
|
||||
;;
|
||||
"1:0")
|
||||
echo "Activating existing SwagPlatformDemoData plugin."
|
||||
php bin/console -n plugin:activate SwagPlatformDemoData
|
||||
;;
|
||||
"1:1")
|
||||
echo "SwagPlatformDemoData is already active."
|
||||
;;
|
||||
*)
|
||||
echo "Unexpected SwagPlatformDemoData state: $${plugin_state}"
|
||||
echo "Continuing without demo data activation."
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
environment: *shopware-env
|
||||
depends_on:
|
||||
init-permissions:
|
||||
condition: service_completed_successfully
|
||||
database:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
volumes: *shopware-runtime-volumes
|
||||
|
||||
shopware:
|
||||
image: ${SHOPWARE_BASE_IMAGE:-shopware/docker-base:8.4.19-nginx}
|
||||
restart: unless-stopped
|
||||
expose:
|
||||
- "8000"
|
||||
entrypoint:
|
||||
- /bin/sh
|
||||
- -ec
|
||||
- |
|
||||
export JWT_PRIVATE_KEY="$(cat /run/shopware-secrets/jwt-private.pem)"
|
||||
export JWT_PUBLIC_KEY="$(cat /run/shopware-secrets/jwt-public.pem)"
|
||||
exec /usr/bin/supervisord -c /etc/supervisord.conf
|
||||
environment: *shopware-env
|
||||
depends_on:
|
||||
init:
|
||||
condition: service_completed_successfully
|
||||
volumes: *shopware-runtime-volumes
|
||||
|
||||
worker:
|
||||
image: ${SHOPWARE_BASE_IMAGE:-shopware/docker-base:8.4.19-nginx}
|
||||
restart: unless-stopped
|
||||
entrypoint:
|
||||
- /bin/sh
|
||||
- -ec
|
||||
- |
|
||||
export JWT_PRIVATE_KEY="$(cat /run/shopware-secrets/jwt-private.pem)"
|
||||
export JWT_PUBLIC_KEY="$(cat /run/shopware-secrets/jwt-public.pem)"
|
||||
exec php bin/console messenger:consume async low_priority --time-limit=300 --memory-limit=512M
|
||||
environment: *shopware-env
|
||||
depends_on:
|
||||
init:
|
||||
condition: service_completed_successfully
|
||||
volumes: *shopware-runtime-volumes
|
||||
|
||||
scheduler:
|
||||
image: ${SHOPWARE_BASE_IMAGE:-shopware/docker-base:8.4.19-nginx}
|
||||
restart: unless-stopped
|
||||
entrypoint:
|
||||
- /bin/sh
|
||||
- -ec
|
||||
- |
|
||||
export JWT_PRIVATE_KEY="$(cat /run/shopware-secrets/jwt-private.pem)"
|
||||
export JWT_PUBLIC_KEY="$(cat /run/shopware-secrets/jwt-public.pem)"
|
||||
exec php bin/console scheduled-task:run
|
||||
environment: *shopware-env
|
||||
depends_on:
|
||||
init:
|
||||
condition: service_completed_successfully
|
||||
volumes: *shopware-runtime-volumes
|
||||
|
||||
volumes:
|
||||
database-data:
|
||||
redis-data:
|
||||
shopware-code:
|
||||
shopware-secrets:
|
||||
files:
|
||||
theme:
|
||||
media:
|
||||
thumbnail:
|
||||
sitemap:
|
||||
24
blueprints/shopware/logo.svg
Normal file
24
blueprints/shopware/logo.svg
Normal file
@@ -0,0 +1,24 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 511.91 110.05">
|
||||
<defs>
|
||||
<style>.cls-1{fill:#0870FF;}</style>
|
||||
</defs>
|
||||
<title>Shopware Logo (Brand Blue)</title>
|
||||
<g>
|
||||
<g>
|
||||
<path class="cls-1" d="M150.17,55.53c-4.68-2-8.53-3.87-8.53-6.92,0-2.14,2.42-4.17,6.5-4.17a24.41,24.41,0,0,1,10.07,2.34,2.19,2.19,0,0,0,3.05-.92l1.63-3.26a2.78,2.78,0,0,0-1-3.46,26.21,26.21,0,0,0-13.74-3.46c-11.4,0-16.06,6.92-16.06,12.82,0,7.73,6,11.6,13.21,14.86,6.51,2.95,10.07,5,10.07,8.14,0,2.65-2.24,4.58-6.21,4.58-5.6,0-8.95-1.93-11.7-3.46a2.09,2.09,0,0,0-3.05.61l-2.14,4.38a1.92,1.92,0,0,0,.81,2.44,27.33,27.33,0,0,0,15.47,4.78c10.48,0,16.79-6.41,16.79-13.74C165.33,62.35,158.82,59.2,150.17,55.53Z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="cls-1" d="M87.77,98C83,94.4,75.94,91.66,68.48,88.77c-8.88-3.44-19-7.35-26.51-13.36C33.41,68.59,29.24,60,29.24,49.12A29.74,29.74,0,0,1,40.95,25c8.59-6.76,21.61-10.34,37.64-10.34a92.7,92.7,0,0,1,12.58.81,0.79,0.79,0,0,0,.63-1.37A55,55,0,1,0,55,110,54.63,54.63,0,0,0,87.76,99.27a0.79,0.79,0,0,0,.32-0.63A0.8,0.8,0,0,0,87.77,98Z"/>
|
||||
<path class="cls-1" d="M109.83,49.94a0.8,0.8,0,0,0-.28-0.54C98.07,39.87,88.78,36,77.49,36c-6,0-10.64,1.21-13.72,3.59a10.16,10.16,0,0,0-4.08,8.31c0,9.45,11.55,13.76,24.93,18.75,6.89,2.57,14,5.23,20.56,8.86a0.75,0.75,0,0,0,.38.1,0.86,0.86,0,0,0,.27-0.05,0.79,0.79,0,0,0,.47-0.46A54.91,54.91,0,0,0,110.07,55C110.06,53.4,110,51.69,109.83,49.94Z"/>
|
||||
</g>
|
||||
<path class="cls-1" d="M426.12,84.26a2.52,2.52,0,0,0,2.38-2.47V57.92c0-12.21-1.49-21.67-17.21-21.67A52.73,52.73,0,0,0,394.4,39a2.22,2.22,0,0,0-1.59,2.87l1,4c0.32,1.38,1.27,2.34,2.76,2a50.57,50.57,0,0,1,13.7-2.34c6.16,0,8.07,3.51,7.86,11.26a37.68,37.68,0,0,0-9.88-1.49c-12.64,0-19.65,6.8-19.65,15.83,0,10.2,6.47,13.65,15.71,13.65,7.54,0,15.3-.09,18.53-0.3ZM418,75.6c-1.49,2.44-6.8,1.83-11.36,1.74-5.1-.11-7.65-1.89-7.65-6.25C399,66,403.32,63,409.06,63a22.33,22.33,0,0,1,8.92,1.7V75.6h0Z"/>
|
||||
<path class="cls-1" d="M506.32,35.69a5.57,5.57,0,1,0-5.59-5.57A5.58,5.58,0,0,0,506.32,35.69Zm0-10.32a4.75,4.75,0,1,1-4.7,4.75A4.75,4.75,0,0,1,506.32,25.37Z"/>
|
||||
<path class="cls-1" d="M504.42,32.94h0.52a0.15,0.15,0,0,0,.15-0.15v-2h1.22l1,2.1a0.16,0.16,0,0,0,.17.1h0.6a0.15,0.15,0,0,0,.14-0.23l-1.1-2A1.78,1.78,0,0,0,508.36,29a1.73,1.73,0,0,0-1.75-1.72h-2.19a0.15,0.15,0,0,0-.15.15v5.33A0.15,0.15,0,0,0,504.42,32.94Zm0.69-4.85h1.43a1,1,0,0,1,1,1,1,1,0,0,1-1,1h-1.43v-2Z"/>
|
||||
<path class="cls-1" d="M196.59,35.69A22.62,22.62,0,0,0,183,40.58v-21a2.41,2.41,0,0,0-2.24-2.24H175a2.33,2.33,0,0,0-2.24,2.24v63A2.26,2.26,0,0,0,175,84.84h5.6A2.16,2.16,0,0,0,183,82.6V52.18a14,14,0,0,1,12.31-6.82c6.11,0,9.36,4.58,9.36,12.31V82.61a2.26,2.26,0,0,0,2.24,2.24h5.7a2.33,2.33,0,0,0,2.24-2.24V57.88C214.8,45.06,209.92,35.69,196.59,35.69Z"/>
|
||||
<path class="cls-1" d="M315.78,58.37c-0.56-16-7.25-22.68-22.66-22.68a65,65,0,0,0-17.53,2.79c-1.6.69-2.78,1.51-2.78,2.63v59.83a2.26,2.26,0,0,0,2.24,2.24h4.72a2.2,2.2,0,0,0,2.44-2.24V84a86,86,0,0,0,14.84.8c10.88-.34,18.18-8.24,18.79-21.58a59.18,59.18,0,0,0,0-6v1.1Zm-9.83,4.87c-0.21,9.05-2.84,13.05-10.46,13.47-3.77.21-12.67-.84-12.67-0.84a0.69,0.69,0,0,1-.62-0.62V46.51a0.54,0.54,0,0,1,.49-0.54,48.7,48.7,0,0,1,10.44-1.35c9.28,0,12.55,1.36,12.85,13.11C306,59.28,306,61.45,305.95,63.24Z"/>
|
||||
<path class="cls-1" d="M383.17,36.71H378.9c-1.22,0-3,0-3.56,1.43L367.81,65.2h-0.2L355,36.81a2,2,0,0,0-2-1.12h-0.71a2.13,2.13,0,0,0-1.93,1.12L337.59,65.1h-0.2l-7.73-27a2.07,2.07,0,0,0-2-1.43h-6.11a1.69,1.69,0,0,0-1.63,2.65l13.74,44.26a1.86,1.86,0,0,0,1.93,1.22h0.61A1.77,1.77,0,0,0,338,83.72l14.45-32h0.2L367,83.72a2.2,2.2,0,0,0,2,1.12h0.41a2.16,2.16,0,0,0,2.14-1.22L385,39.36C385.72,37.93,384.8,36.71,383.17,36.71Z"/>
|
||||
<path class="cls-1" d="M458.23,36.25c-0.25,0-.48,0-0.73,0-0.41,0-.81,0-1.24,0-2.44,0-4.78.08-7,.19h0c-4.22.17-6.72,0.49-8.5,0.69,0,0-1.14.11-2.47,0.28a2.82,2.82,0,0,0-1.94,1,1.59,1.59,0,0,0-.44,1.11V82.59a2.26,2.26,0,0,0,2.24,2.24h4.68c1.93,0,3.26-.2,3.26-2.24V53.47h0V46.79A1.39,1.39,0,0,1,446.8,46c1.15-.69,3.91-1.19,9.46-1.19l1.29,0a14.17,14.17,0,0,1,3.93.88,2,2,0,0,0,2.85-1.12l2.44-4C468.3,37.47,462.71,36.25,458.23,36.25Z"/>
|
||||
<path class="cls-1" d="M490.44,35.69C476.3,35.69,467,47,467,60.21c0,13.43,9.26,24.62,23.5,24.62,7.83,0,14-2.85,17.4-5.8,1.42-1.22,1-2.14.2-3.15l-2.75-4.27c-0.81-1.22-1.73-.92-2.75-0.2a18.28,18.28,0,0,1-11.5,4c-8.24,0-13.94-6.51-14-12.82h32.46a2.21,2.21,0,0,0,2.14-2c0.1-.81.2-2.44,0.2-3.26C511.9,44.75,502.65,35.69,490.44,35.69ZM477.62,55c0.71-5.9,5.19-10.68,12.62-10.68,6.92,0,11.4,5,11.6,10.68H477.62Z"/>
|
||||
<path class="cls-1" d="M264.64,50.23a23.16,23.16,0,0,0-4.46-7.79,19.63,19.63,0,0,0-6.85-5,26.65,26.65,0,0,0-19,0,19.72,19.72,0,0,0-6.85,5A23.16,23.16,0,0,0,223,50.23a30.25,30.25,0,0,0-1.59,10A30.11,30.11,0,0,0,223,70.35a23.21,23.21,0,0,0,4.46,7.74,19.63,19.63,0,0,0,6.85,5,26.8,26.8,0,0,0,19,0,19.72,19.72,0,0,0,6.85-5,23.21,23.21,0,0,0,4.46-7.74,30.11,30.11,0,0,0,1.59-10.08A30.25,30.25,0,0,0,264.64,50.23Zm-21.1,26.51c-8.49,0-12.77-7.19-12.77-16.06S235,44.62,243.54,44.62s12.77,7.19,12.77,16.06S252,76.74,243.54,76.74Z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.0 KiB |
19
blueprints/shopware/meta.json
Normal file
19
blueprints/shopware/meta.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"id": "shopware",
|
||||
"name": "Shopware",
|
||||
"version": "6.7.8.2",
|
||||
"description": "One-click Shopware 6 blueprint with bundled MySQL, Redis, bootstrap, init, worker, and scheduler services.",
|
||||
"logo": "logo.svg",
|
||||
"links": {
|
||||
"github": "https://github.com/shopware/shopware",
|
||||
"website": "https://www.shopware.com/",
|
||||
"docs": "https://developer.shopware.com/"
|
||||
},
|
||||
"tags": [
|
||||
"e-commerce",
|
||||
"shop",
|
||||
"php",
|
||||
"mysql",
|
||||
"redis"
|
||||
]
|
||||
}
|
||||
78
blueprints/shopware/template.toml
Normal file
78
blueprints/shopware/template.toml
Normal file
@@ -0,0 +1,78 @@
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
app_url = "http://${main_domain}"
|
||||
app_secret = "${hash:64}"
|
||||
instance_id = "${hash:32}"
|
||||
database_name = "shopware"
|
||||
database_user = "shopware"
|
||||
database_password = "${hash:32}"
|
||||
mysql_root_password = "${hash:32}"
|
||||
redis_password = "${hash:32}"
|
||||
database_url = "mysql://${database_user}:${database_password}@database:3306/${database_name}?charset=utf8mb4"
|
||||
lock_dsn = "redis://:${redis_password}@redis:6379/1"
|
||||
php_session_save_path = "tcp://redis:6379?auth=${redis_password}"
|
||||
install_admin_username = "admin"
|
||||
install_admin_password = "${password:20}"
|
||||
shopware_version = "6.7.12.1"
|
||||
shopware_docker_version = "0.3.0"
|
||||
shopware_cli_image = "shopware/shopware-cli:0.14.3-php-8.4"
|
||||
shopware_base_image = "shopware/docker-base:8.4.19-nginx"
|
||||
enable_demo_data = "1"
|
||||
demo_data_version = "2.1.0"
|
||||
|
||||
[config]
|
||||
|
||||
[[config.domains]]
|
||||
serviceName = "shopware"
|
||||
port = 8000
|
||||
host = "${main_domain}"
|
||||
|
||||
[config.env]
|
||||
APP_ENV = "prod"
|
||||
APP_URL = "${app_url}"
|
||||
APP_SECRET = "${app_secret}"
|
||||
INSTANCE_ID = "${instance_id}"
|
||||
SHOPWARE_VERSION = "${shopware_version}"
|
||||
SHOPWARE_DOCKER_VERSION = "${shopware_docker_version}"
|
||||
SHOPWARE_CLI_IMAGE = "${shopware_cli_image}"
|
||||
SHOPWARE_BASE_IMAGE = "${shopware_base_image}"
|
||||
ENABLE_DEMO_DATA = "${enable_demo_data}"
|
||||
DEMO_DATA_VERSION = "${demo_data_version}"
|
||||
DATABASE_HOST = "database"
|
||||
DATABASE_PORT = "3306"
|
||||
DATABASE_NAME = "${database_name}"
|
||||
DATABASE_USER = "${database_user}"
|
||||
DATABASE_PASSWORD = "${database_password}"
|
||||
DATABASE_URL = "${database_url}"
|
||||
MYSQL_ROOT_PASSWORD = "${mysql_root_password}"
|
||||
REDIS_HOST = "redis"
|
||||
REDIS_PORT = "6379"
|
||||
REDIS_PASSWORD = "${redis_password}"
|
||||
MAILER_DSN = "null://localhost"
|
||||
LOCK_DSN = "${lock_dsn}"
|
||||
TRUSTED_PROXIES = "private_ranges"
|
||||
SYMFONY_TRUSTED_PROXIES = "private_ranges"
|
||||
SYMFONY_TRUSTED_HEADERS = "x-forwarded-for,x-forwarded-host,x-forwarded-proto,x-forwarded-port,x-forwarded-prefix"
|
||||
COMPOSER_PLUGIN_LOADER = "1"
|
||||
SHOPWARE_HTTP_CACHE_ENABLED = "1"
|
||||
SHOPWARE_HTTP_DEFAULT_TTL = "7200"
|
||||
INSTALL_LOCALE = "en-GB"
|
||||
INSTALL_CURRENCY = "EUR"
|
||||
INSTALL_ADMIN_USERNAME = "${install_admin_username}"
|
||||
INSTALL_ADMIN_PASSWORD = "${install_admin_password}"
|
||||
PHP_SESSION_HANDLER = "redis"
|
||||
PHP_SESSION_SAVE_PATH = "${php_session_save_path}"
|
||||
PHP_SESSION_COOKIE_LIFETIME = "0"
|
||||
PHP_SESSION_GC_MAXLIFETIME = "1440"
|
||||
PHP_MAX_UPLOAD_SIZE = "128M"
|
||||
PHP_MAX_EXECUTION_TIME = "300"
|
||||
PHP_MEMORY_LIMIT = "512M"
|
||||
FPM_PM = "dynamic"
|
||||
FPM_PM_MAX_CHILDREN = "20"
|
||||
FPM_PM_START_SERVERS = "4"
|
||||
FPM_PM_MIN_SPARE_SERVERS = "2"
|
||||
FPM_PM_MAX_SPARE_SERVERS = "6"
|
||||
MESSENGER_TRANSPORT_DSN = "doctrine://default?queue_name=async"
|
||||
MESSENGER_TRANSPORT_LOW_PRIORITY_DSN = "doctrine://default?queue_name=low_priority"
|
||||
MESSENGER_TRANSPORT_FAILURE_DSN = "doctrine://default?queue_name=failed"
|
||||
BLUE_GREEN_DEPLOYMENT = "0"
|
||||
Reference in New Issue
Block a user