fix: Update Traefik host rules in docker-compose.yml to use properly quoted environment variables.
All checks were successful
Build & Deploy KLZ Cables / 🔍 Prepare Environment (push) Successful in 21s
Build & Deploy KLZ Cables / 🧪 Quality Assurance (push) Successful in 2m32s
Build & Deploy KLZ Cables / 🏗️ Build & Push (push) Successful in 4m26s
Build & Deploy KLZ Cables / 🚀 Deploy (push) Successful in 49s
Build & Deploy KLZ Cables / 🔔 Notifications (push) Successful in 1s

This commit is contained in:
2026-02-01 13:26:25 +01:00
parent 38b512973b
commit 17fe0d7107
2 changed files with 24 additions and 7 deletions

View File

@@ -25,6 +25,7 @@ jobs:
traefik_host: ${{ steps.determine.outputs.traefik_host }} traefik_host: ${{ steps.determine.outputs.traefik_host }}
next_public_base_url: ${{ steps.determine.outputs.next_public_base_url }} next_public_base_url: ${{ steps.determine.outputs.next_public_base_url }}
directus_url: ${{ steps.determine.outputs.directus_url }} directus_url: ${{ steps.determine.outputs.directus_url }}
directus_host: ${{ steps.determine.outputs.directus_host }}
is_prod: ${{ steps.determine.outputs.is_prod }} is_prod: ${{ steps.determine.outputs.is_prod }}
gotify_title: ${{ steps.determine.outputs.gotify_title }} gotify_title: ${{ steps.determine.outputs.gotify_title }}
gotify_priority: ${{ steps.determine.outputs.gotify_priority }} gotify_priority: ${{ steps.determine.outputs.gotify_priority }}
@@ -48,9 +49,10 @@ jobs:
TARGET="testing" TARGET="testing"
IMAGE_TAG="main-${SHORT_SHA}" IMAGE_TAG="main-${SHORT_SHA}"
ENV_FILE=".env.testing" ENV_FILE=".env.testing"
TRAEFIK_HOST="\`testing.klz-cables.com\`" TRAEFIK_HOST='testing.klz-cables.com'
NEXT_PUBLIC_BASE_URL="https://testing.klz-cables.com" NEXT_PUBLIC_BASE_URL="https://testing.klz-cables.com"
DIRECTUS_URL="https://cms-testing.klz-cables.com" DIRECTUS_URL="https://cms-testing.klz-cables.com"
DIRECTUS_HOST='cms-testing.klz-cables.com'
IS_PROD="false" IS_PROD="false"
GOTIFY_TITLE="🧪 Testing-Deploy" GOTIFY_TITLE="🧪 Testing-Deploy"
GOTIFY_PRIORITY=4 GOTIFY_PRIORITY=4
@@ -59,9 +61,10 @@ jobs:
TARGET="production" TARGET="production"
IMAGE_TAG="$TAG" IMAGE_TAG="$TAG"
ENV_FILE=".env.prod" ENV_FILE=".env.prod"
TRAEFIK_HOST="\`klz-cables.com\`, \`www.klz-cables.com\`" TRAEFIK_HOST="klz-cables.com', 'www.klz-cables.com"
NEXT_PUBLIC_BASE_URL="https://klz-cables.com" NEXT_PUBLIC_BASE_URL="https://klz-cables.com"
DIRECTUS_URL="https://cms.klz-cables.com" DIRECTUS_URL="https://cms.klz-cables.com"
DIRECTUS_HOST='cms.klz-cables.com'
IS_PROD="true" IS_PROD="true"
GOTIFY_TITLE="🚀 Production-Release" GOTIFY_TITLE="🚀 Production-Release"
GOTIFY_PRIORITY=6 GOTIFY_PRIORITY=6
@@ -69,9 +72,10 @@ jobs:
TARGET="staging" TARGET="staging"
IMAGE_TAG="$TAG" IMAGE_TAG="$TAG"
ENV_FILE=".env.staging" ENV_FILE=".env.staging"
TRAEFIK_HOST="\`staging.klz-cables.com\`" TRAEFIK_HOST='staging.klz-cables.com'
NEXT_PUBLIC_BASE_URL="https://staging.klz-cables.com" NEXT_PUBLIC_BASE_URL="https://staging.klz-cables.com"
DIRECTUS_URL="https://cms-staging.klz-cables.com" DIRECTUS_URL="https://cms-staging.klz-cables.com"
DIRECTUS_HOST='cms-staging.klz-cables.com'
IS_PROD="false" IS_PROD="false"
GOTIFY_TITLE="🧪 Staging-Deploy (Pre-Release)" GOTIFY_TITLE="🧪 Staging-Deploy (Pre-Release)"
GOTIFY_PRIORITY=5 GOTIFY_PRIORITY=5
@@ -90,6 +94,7 @@ jobs:
echo "traefik_host=$TRAEFIK_HOST" >> $GITHUB_OUTPUT echo "traefik_host=$TRAEFIK_HOST" >> $GITHUB_OUTPUT
echo "next_public_base_url=$NEXT_PUBLIC_BASE_URL" >> $GITHUB_OUTPUT echo "next_public_base_url=$NEXT_PUBLIC_BASE_URL" >> $GITHUB_OUTPUT
echo "directus_url=$DIRECTUS_URL" >> $GITHUB_OUTPUT echo "directus_url=$DIRECTUS_URL" >> $GITHUB_OUTPUT
echo "directus_host=$DIRECTUS_HOST" >> $GITHUB_OUTPUT
echo "is_prod=$IS_PROD" >> $GITHUB_OUTPUT echo "is_prod=$IS_PROD" >> $GITHUB_OUTPUT
echo "gotify_title=$GOTIFY_TITLE" >> $GITHUB_OUTPUT echo "gotify_title=$GOTIFY_TITLE" >> $GITHUB_OUTPUT
echo "gotify_priority=$GOTIFY_PRIORITY" >> $GITHUB_OUTPUT echo "gotify_priority=$GOTIFY_PRIORITY" >> $GITHUB_OUTPUT
@@ -114,6 +119,14 @@ jobs:
node-version: 20 node-version: 20
cache: 'npm' cache: 'npm'
- name: 📦 Restore npm cache
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Install dependencies - name: Install dependencies
run: npm ci run: npm ci
@@ -158,6 +171,8 @@ jobs:
--build-arg NEXT_PUBLIC_UMAMI_SCRIPT_URL="$NEXT_PUBLIC_UMAMI_SCRIPT_URL" \ --build-arg NEXT_PUBLIC_UMAMI_SCRIPT_URL="$NEXT_PUBLIC_UMAMI_SCRIPT_URL" \
--build-arg DIRECTUS_URL="$DIRECTUS_URL" \ --build-arg DIRECTUS_URL="$DIRECTUS_URL" \
-t registry.infra.mintel.me/mintel/klz-cables.com:$IMAGE_TAG \ -t registry.infra.mintel.me/mintel/klz-cables.com:$IMAGE_TAG \
--cache-from type=registry,ref=registry.infra.mintel.me/mintel/klz-cables.com:buildcache \
--cache-to type=registry,ref=registry.infra.mintel.me/mintel/klz-cables.com:buildcache,mode=max \
--push . --push .
# ────────────────────────────────────────────────────────────────────────────── # ──────────────────────────────────────────────────────────────────────────────
@@ -183,6 +198,7 @@ jobs:
MAIL_FROM: ${{ secrets.MAIL_FROM }} MAIL_FROM: ${{ secrets.MAIL_FROM }}
MAIL_RECIPIENTS: ${{ secrets.MAIL_RECIPIENTS }} MAIL_RECIPIENTS: ${{ secrets.MAIL_RECIPIENTS }}
DIRECTUS_URL: ${{ needs.prepare.outputs.directus_url }} DIRECTUS_URL: ${{ needs.prepare.outputs.directus_url }}
DIRECTUS_HOST: ${{ needs.prepare.outputs.directus_host }}
DIRECTUS_KEY: ${{ secrets.DIRECTUS_KEY }} DIRECTUS_KEY: ${{ secrets.DIRECTUS_KEY }}
DIRECTUS_SECRET: ${{ secrets.DIRECTUS_SECRET }} DIRECTUS_SECRET: ${{ secrets.DIRECTUS_SECRET }}
DIRECTUS_ADMIN_EMAIL: ${{ secrets.DIRECTUS_ADMIN_EMAIL }} DIRECTUS_ADMIN_EMAIL: ${{ secrets.DIRECTUS_ADMIN_EMAIL }}
@@ -220,6 +236,7 @@ jobs:
# Directus # Directus
DIRECTUS_URL=$DIRECTUS_URL DIRECTUS_URL=$DIRECTUS_URL
DIRECTUS_HOST=$DIRECTUS_HOST
DIRECTUS_KEY=$DIRECTUS_KEY DIRECTUS_KEY=$DIRECTUS_KEY
DIRECTUS_SECRET=$DIRECTUS_SECRET DIRECTUS_SECRET=$DIRECTUS_SECRET
DIRECTUS_ADMIN_EMAIL=$DIRECTUS_ADMIN_EMAIL DIRECTUS_ADMIN_EMAIL=$DIRECTUS_ADMIN_EMAIL
@@ -237,7 +254,7 @@ jobs:
scp -o StrictHostKeyChecking=accept-new /tmp/klz-cables.env root@alpha.mintel.me:/home/deploy/sites/klz-cables.com/$ENV_FILE scp -o StrictHostKeyChecking=accept-new /tmp/klz-cables.env root@alpha.mintel.me:/home/deploy/sites/klz-cables.com/$ENV_FILE
scp -o StrictHostKeyChecking=accept-new docker-compose.yml root@alpha.mintel.me:/home/deploy/sites/klz-cables.com/docker-compose.yml scp -o StrictHostKeyChecking=accept-new docker-compose.yml root@alpha.mintel.me:/home/deploy/sites/klz-cables.com/docker-compose.yml
ssh -o StrictHostKeyChecking=accept-new root@alpha.mintel.me IMAGE_TAG="$IMAGE_TAG" ENV_FILE="$ENV_FILE" TRAEFIK_HOST="$TRAEFIK_HOST" bash << 'EOF' ssh -o StrictHostKeyChecking=accept-new root@alpha.mintel.me IMAGE_TAG="$IMAGE_TAG" ENV_FILE="$ENV_FILE" bash << 'EOF'
set -e set -e
cd /home/deploy/sites/klz-cables.com cd /home/deploy/sites/klz-cables.com
chmod 600 "$ENV_FILE" chmod 600 "$ENV_FILE"

View File

@@ -9,11 +9,11 @@ services:
labels: labels:
- "traefik.enable=true" - "traefik.enable=true"
# HTTP ⇒ HTTPS redirect # HTTP ⇒ HTTPS redirect
- "traefik.http.routers.klz-cables-web.rule=Host(${TRAEFIK_HOST}) && !PathPrefix(`/.well-known/acme-challenge/`)" - "traefik.http.routers.klz-cables-web.rule=Host('${TRAEFIK_HOST}') && !PathPrefix(`/.well-known/acme-challenge/`)"
- "traefik.http.routers.klz-cables-web.entrypoints=web" - "traefik.http.routers.klz-cables-web.entrypoints=web"
- "traefik.http.routers.klz-cables-web.middlewares=redirect-https" - "traefik.http.routers.klz-cables-web.middlewares=redirect-https"
# HTTPS router # HTTPS router
- "traefik.http.routers.klz-cables.rule=Host(${TRAEFIK_HOST})" - "traefik.http.routers.klz-cables.rule=Host('${TRAEFIK_HOST}')"
- "traefik.http.routers.klz-cables.entrypoints=websecure" - "traefik.http.routers.klz-cables.entrypoints=websecure"
- "traefik.http.routers.klz-cables.tls.certresolver=le" - "traefik.http.routers.klz-cables.tls.certresolver=le"
- "traefik.http.routers.klz-cables.tls=true" - "traefik.http.routers.klz-cables.tls=true"
@@ -51,7 +51,7 @@ services:
- ./directus/extensions:/directus/extensions - ./directus/extensions:/directus/extensions
labels: labels:
- "traefik.enable=true" - "traefik.enable=true"
- "traefik.http.routers.klz-directus.rule=Host(`cms.klz-cables.com`) || Host(`cms-staging.klz-cables.com`)" - "traefik.http.routers.klz-directus.rule=Host('${DIRECTUS_HOST}')"
- "traefik.http.routers.klz-directus.entrypoints=websecure" - "traefik.http.routers.klz-directus.entrypoints=websecure"
- "traefik.http.routers.klz-directus.tls.certresolver=le" - "traefik.http.routers.klz-directus.tls.certresolver=le"
- "traefik.http.routers.klz-directus.tls=true" - "traefik.http.routers.klz-directus.tls=true"