Compare commits

..

5 Commits

Author SHA1 Message Date
1023ef978e feat: assign unique hero videos to each page to avoid duplicates
All checks were successful
Build & Deploy / 🔍 Prepare (push) Successful in 43s
Build & Deploy / 🧪 QA (push) Successful in 2m39s
Build & Deploy / 🏗️ Build (push) Successful in 4m48s
Build & Deploy / 🚀 Deploy (push) Successful in 56s
Build & Deploy / 🧪 Post-Deploy Verification (push) Successful in 1m1s
Build & Deploy / 🔔 Notify (push) Successful in 1s
2026-05-12 15:46:20 +02:00
2a1f6864c9 fix(deploy): use latest gatekeeper image instead of outdated testing tag
All checks were successful
Build & Deploy / 🔍 Prepare (push) Successful in 35s
Build & Deploy / 🧪 QA (push) Successful in 1m25s
Build & Deploy / 🏗️ Build (push) Successful in 2m52s
Build & Deploy / 🚀 Deploy (push) Successful in 43s
Build & Deploy / 🧪 Post-Deploy Verification (push) Successful in 59s
Build & Deploy / 🔔 Notify (push) Successful in 1s
2026-05-12 15:20:20 +02:00
fa9fb60dec fix(deploy): allow insecure internal fetches for gatekeeper images
All checks were successful
Build & Deploy / 🔍 Prepare (push) Successful in 35s
Build & Deploy / 🧪 QA (push) Successful in 1m20s
Build & Deploy / 🏗️ Build (push) Successful in 2m50s
Build & Deploy / 🚀 Deploy (push) Successful in 43s
Build & Deploy / 🧪 Post-Deploy Verification (push) Successful in 58s
Build & Deploy / 🔔 Notify (push) Successful in 1s
2026-05-12 15:06:41 +02:00
3abe4f419f fix(deploy): fix gatekeeper network to allow DB access
All checks were successful
Build & Deploy / 🔍 Prepare (push) Successful in 35s
Build & Deploy / 🧪 QA (push) Successful in 1m20s
Build & Deploy / 🏗️ Build (push) Successful in 2m51s
Build & Deploy / 🚀 Deploy (push) Successful in 42s
Build & Deploy / 🧪 Post-Deploy Verification (push) Successful in 58s
Build & Deploy / 🔔 Notify (push) Successful in 1s
2026-05-12 14:50:39 +02:00
ba3a711d5b fix(deploy): remove testing.e-tib.com from TRAEFIK_HOST to prevent ACME challenge failure
All checks were successful
Build & Deploy / 🔍 Prepare (push) Successful in 37s
Build & Deploy / 🧪 QA (push) Successful in 1m20s
Build & Deploy / 🏗️ Build (push) Successful in 2m46s
Build & Deploy / 🚀 Deploy (push) Successful in 43s
Build & Deploy / 🧪 Post-Deploy Verification (push) Successful in 58s
Build & Deploy / 🔔 Notify (push) Successful in 1s
2026-05-12 14:43:42 +02:00
9 changed files with 13 additions and 13 deletions

View File

@@ -65,7 +65,7 @@ jobs:
TARGET="testing"
IMAGE_TAG="main-${SHORT_SHA}"
ENV_FILE=".env.testing"
TRAEFIK_HOST="test.${DOMAIN}, testing.${DOMAIN}"
TRAEFIK_HOST="test.${DOMAIN}"
elif [[ "${{ github.ref_type }}" == "tag" ]]; then
if [[ "$REF" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
TARGET="production"

View File

@@ -9,7 +9,7 @@ layout: "fullBleed"
badge="Karriere"
title="Zukunft bauen"
description="Suchen Sie eine neue Herausforderung in einem zukunftssicheren Markt? Bei E-TIB arbeiten wir täglich daran, Deutschland zu vernetzen und die Energiewende voranzutreiben."
videoUrl="/assets/videos/web/hero-bohrung.mp4"
videoUrl="/assets/videos/web/hero-kabelpflug.mp4"
linkText="Offene Stellen"
linkHref="#stellen"
/>

View File

@@ -9,7 +9,7 @@ layout: "fullBleed"
badge="Unsere Leistungen"
title="Alles aus einer Hand"
description="Als Full-Service-Partner im Bereich Kabelleitungstiefbau decken wir das gesamte Spektrum moderner Infrastrukturprojekte ab."
videoUrl="/assets/videos/web/hero-kabelpflug.mp4"
videoUrl="/assets/videos/web/hero-bohrung.mp4"
linkText="Kontakt aufnehmen"
linkHref="/de/kontakt"
secondaryCtaLabel="Referenzen ansehen"

View File

@@ -9,7 +9,7 @@ layout: "fullBleed"
badge="Events"
title="Treffen Sie uns\nvor Ort"
description="Kommen Sie mit unseren Experten ins Gespräch. Wir sind auf den wichtigsten Branchenmessen vertreten und freuen uns auf den persönlichen Austausch mit Ihnen."
videoUrl="/assets/videos/web/hero-bohrung.mp4"
videoUrl="/assets/videos/web/hero-messe.mp4"
linkText="Zu den Terminen"
linkHref="#termine"
/>

View File

@@ -9,7 +9,7 @@ layout: "fullBleed"
badge="Careers"
title="Build the Future\nwith Us"
description="We are looking for motivated talents who want to shape the digital and energy infrastructure of tomorrow. Join the E-TIB team."
videoUrl="/assets/videos/web/hero-bahnkreuzung.mp4"
videoUrl="/assets/videos/web/hero-kabelpflug.mp4"
linkText="View Open Positions"
linkHref="#jobs"
/>

View File

@@ -9,7 +9,7 @@ layout: "fullBleed"
badge="Competencies"
title="Everything from a\nsingle source"
description="From the first planning sketch to the final documentation we are your reliable partner for complex infrastructure projects."
videoUrl="/assets/videos/web/hero-bahnkreuzung.mp4"
videoUrl="/assets/videos/web/hero-bohrung.mp4"
linkText="Get in Touch"
linkHref="/en/kontakt"
/>

View File

@@ -9,7 +9,7 @@ layout: "fullBleed"
badge="Events"
title="Meet us\nin person"
description="Get in touch with our experts. We are represented at the most important industry trade fairs and look forward to speaking with you personally."
videoUrl="/assets/videos/web/hero-bohrung.mp4"
videoUrl="/assets/videos/web/hero-messe.mp4"
linkText="View dates"
linkHref="#dates"
/>

View File

@@ -27,7 +27,7 @@ services:
- "traefik.http.routers.${PROJECT_NAME:-klz}.middlewares=${AUTH_MIDDLEWARE:-etib-ratelimit,etib-forward,etib-compress}"
# Public Router paths that bypass Gatekeeper auth (health, SEO, static assets, OG images)
- "traefik.http.routers.${PROJECT_NAME:-klz}-public.rule=(${TRAEFIK_HOST_RULE:-Host(`${TRAEFIK_HOST:-e-tib.com}`) || Host(`staging.${TRAEFIK_HOST:-e-tib.com}`) || Host(`testing.${TRAEFIK_HOST:-e-tib.com}`)}) && PathRegexp(`^/([a-z]{2}/)?(health|login|gatekeeper|uploads|media|assets|robots\\.txt|manifest\\.webmanifest|sitemap(-[0-9]+)?\\.xml|(.*/)?api/og(/.*)?|(.*/)?opengraph-image.*)`)"
- "traefik.http.routers.${PROJECT_NAME:-klz}-public.rule=(${TRAEFIK_HOST_RULE:-Host(`${TRAEFIK_HOST:-e-tib.com}`) || Host(`staging.${TRAEFIK_HOST:-e-tib.com}`) || Host(`testing.${TRAEFIK_HOST:-e-tib.com}`)}) && PathRegexp(`^/([a-z]{2}/)?(health|login|gatekeeper|uploads|media|robots\\.txt|manifest\\.webmanifest|sitemap(-[0-9]+)?\\.xml|(.*/)?api/og(/.*)?|(.*/)?opengraph-image.*)`)"
- "traefik.http.routers.${PROJECT_NAME:-klz}-public.entrypoints=${TRAEFIK_ENTRYPOINT:-web}"
- "traefik.http.routers.${PROJECT_NAME:-klz}-public.tls.certresolver=${TRAEFIK_CERT_RESOLVER:-}"
- "traefik.http.routers.${PROJECT_NAME:-klz}-public.tls=${TRAEFIK_TLS:-false}"
@@ -58,9 +58,10 @@ services:
etib-gatekeeper:
profiles: [ "gatekeeper" ]
image: registry.infra.mintel.me/mintel/gatekeeper:testing
image: registry.infra.mintel.me/mintel/gatekeeper:latest
restart: unless-stopped
networks:
default:
infra:
aliases:
- ${PROJECT_NAME:-klz}-gatekeeper
@@ -68,6 +69,8 @@ services:
- ${ENV_FILE:-.env}
environment:
PORT: 3000
NODE_TLS_REJECT_UNAUTHORIZED: 0
NODE_ENV: production
labels:
- "traefik.enable=true"
- "traefik.http.services.${PROJECT_NAME:-klz}-gatekeeper-svc.loadbalancer.server.port=3000"

View File

@@ -32,10 +32,7 @@ async function run() {
for (const p of pages) {
console.log(`📄 Checking ${p}...`);
const res = await page.goto(`${targetUrl}${p}`, { waitUntil: 'domcontentloaded' });
const status = res?.status();
if (status !== 200 && status !== 304 && status !== 307 && status !== 308) {
throw new Error(`Page ${p} returned ${status}`);
}
if (res?.status() !== 200) throw new Error(`Page ${p} returned ${res?.status()}`);
// Check for broken images (using in-page fetch to preserve session and avoid heavy navigation)
const images = await page.$$eval('img', (imgs) => imgs.map((img) => img.src).filter(Boolean));