diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 33dd9e6..2bad57b 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -202,6 +202,8 @@ jobs: build-args: | NEXT_PUBLIC_BASE_URL=${{ needs.prepare.outputs.next_public_url }} NEXT_PUBLIC_TARGET=${{ needs.prepare.outputs.target }} + NEXT_PUBLIC_UMAMI_WEBSITE_ID=${{ secrets.UMAMI_WEBSITE_ID || secrets.NEXT_PUBLIC_UMAMI_WEBSITE_ID || vars.UMAMI_WEBSITE_ID || vars.NEXT_PUBLIC_UMAMI_WEBSITE_ID }} + UMAMI_API_ENDPOINT=${{ secrets.UMAMI_API_ENDPOINT || secrets.NEXT_PUBLIC_UMAMI_SCRIPT_URL || vars.UMAMI_API_ENDPOINT || 'https://analytics.infra.mintel.me' }} NPM_TOKEN=${{ secrets.REGISTRY_PASS }} tags: registry.infra.mintel.me/mintel/mb-grid-solutions:${{ needs.prepare.outputs.image_tag }} cache-from: type=registry,ref=registry.infra.mintel.me/mintel/mb-grid-solutions:buildcache diff --git a/docker-compose.yaml b/docker-compose.yaml index 50eb1eb..8abd490 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -20,7 +20,7 @@ services: - "traefik.docker.network=infra" # Public Router – paths that bypass Gatekeeper auth - - "traefik.http.routers.${PROJECT_NAME:-mb-grid}-public.rule=Host(`${TRAEFIK_HOST:-mb-grid-solutions.localhost}`) && 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:-mb-grid}-public.rule=Host(`${TRAEFIK_HOST:-mb-grid-solutions.localhost}`) && PathRegexp(`^/([a-z]{2}/)?(health|login|gatekeeper|uploads|media|robots\\.txt|manifest\\.webmanifest|sitemap(-[0-9]+)?\\.xml|(.*/)?api/og(/.*)?|(.*/)?opengraph-image.*|stats(/.*)?|errors(/.*)?)`)" - "traefik.http.routers.${PROJECT_NAME:-mb-grid}-public.entrypoints=websecure" - "traefik.http.routers.${PROJECT_NAME:-mb-grid}-public.tls.certresolver=le" - "traefik.http.routers.${PROJECT_NAME:-mb-grid}-public.tls=true" diff --git a/middleware.ts b/middleware.ts index aa9e4d4..d528039 100644 --- a/middleware.ts +++ b/middleware.ts @@ -1,6 +1,8 @@ +import { NextResponse } from "next/server"; +import type { NextRequest } from "next/server"; import createMiddleware from "next-intl/middleware"; -export default createMiddleware({ +const intlMiddleware = createMiddleware({ // A list of all locales that are supported locales: ["de"], @@ -11,6 +13,17 @@ export default createMiddleware({ localePrefix: "as-needed", }); +export default function middleware(request: NextRequest) { + const { pathname } = request.nextUrl; + + // Explicit bypass for analytics and error tracking paths + if (pathname.startsWith("/stats") || pathname.startsWith("/errors")) { + return NextResponse.next(); + } + + return intlMiddleware(request); +} + export const config = { // Matcher for all pages and internationalized pathnames // excluding api, _next, static files, etc. diff --git a/src/payload/payload.config.ts b/src/payload/payload.config.ts index c5f5b42..bacc287 100644 --- a/src/payload/payload.config.ts +++ b/src/payload/payload.config.ts @@ -50,24 +50,29 @@ export default buildConfig({ }, prodMigrations: migrations, }), - ...(process.env.SMTP_HOST - ? { - email: nodemailerAdapter({ - defaultFromAddress: - process.env.SMTP_FROM || "info@mb-grid-solutions.com", - defaultFromName: "MB Grid Solutions CMS", - transportOptions: { - host: process.env.SMTP_HOST, - port: parseInt(process.env.SMTP_PORT || "587"), - auth: { - user: process.env.SMTP_USER, - pass: process.env.SMTP_PASS, - }, - secure: process.env.SMTP_SECURE === "true", - }, - }), - } - : {}), + email: nodemailerAdapter({ + defaultFromAddress: + process.env.MAIL_FROM || + process.env.SMTP_FROM || + "info@mb-grid-solutions.com", + defaultFromName: "MB Grid Solutions CMS", + transportOptions: { + host: process.env.MAIL_HOST || process.env.SMTP_HOST, + port: parseInt( + process.env.MAIL_PORT || process.env.SMTP_PORT || "587", + ), + auth: { + user: + process.env.MAIL_USERNAME || + process.env.MAIL_USER || + process.env.SMTP_USER, + pass: process.env.MAIL_PASSWORD || process.env.SMTP_PASS, + }, + secure: + process.env.MAIL_SECURE === "true" || + process.env.SMTP_SECURE === "true", + }, + }), sharp, plugins: [ ...(process.env.S3_ENDPOINT