From 68c531a1d564efef61db6dcd08d1b8dc0f69dedf Mon Sep 17 00:00:00 2001 From: Andreas Knuth Date: Thu, 6 Aug 2026 09:33:53 -0500 Subject: [PATCH] umami bugfix --- Dockerfile | 23 ++++++++++++++--------- docker-compose.yml | 25 ++++++++++++++----------- 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/Dockerfile b/Dockerfile index 9ea5408..9724fa5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -37,6 +37,11 @@ ENV NEXT_PUBLIC_POSTHOG_KEY="phc_97JBJVVQlqqiZuTVRHuBnnG9HasOv3GSsdeVjossizJ" ENV NEXT_PUBLIC_POSTHOG_HOST="https://us.i.posthog.com" ENV NEXT_PUBLIC_INDEXABLE="true" ENV NEXT_PUBLIC_FACEBOOK_PIXEL_ID="1601718491252690" +# Umami Analytics - REQUIRED at build time (NEXT_PUBLIC_* is inlined by the compiler) +ARG NEXT_PUBLIC_UMAMI_SRC="" +ARG NEXT_PUBLIC_UMAMI_ID="" +ENV NEXT_PUBLIC_UMAMI_SRC=$NEXT_PUBLIC_UMAMI_SRC +ENV NEXT_PUBLIC_UMAMI_ID=$NEXT_PUBLIC_UMAMI_ID RUN npx prisma generate RUN npm run build @@ -51,18 +56,18 @@ ENV NEXT_TELEMETRY_DISABLED=1 RUN addgroup --system --gid 1001 nodejs RUN adduser --system --uid 1001 nextjs -COPY --from=builder --chown=nextjs:nodejs /app/node_modules ./node_modules -COPY --from=builder --chown=nextjs:nodejs /app/prisma ./prisma -COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ -COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static -COPY --from=builder --chown=nextjs:nodejs /app/public ./public -COPY --from=builder --chown=nextjs:nodejs /app/docker/entrypoint.sh ./docker/entrypoint.sh +COPY --from=builder --chown=nextjs:nodejs /app/node_modules ./node_modules +COPY --from=builder --chown=nextjs:nodejs /app/prisma ./prisma +COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ +COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static +COPY --from=builder --chown=nextjs:nodejs /app/public ./public +COPY --from=builder --chown=nextjs:nodejs /app/docker/entrypoint.sh ./docker/entrypoint.sh RUN chmod +x ./docker/entrypoint.sh -# Next writes ISR/prerender artifacts under .next/server/app at runtime. -RUN mkdir -p /app/.next/cache /app/.next/server/app \ - && chown -R nextjs:nodejs /app/.next +# Next writes ISR/prerender artifacts under .next/server/app at runtime. +RUN mkdir -p /app/.next/cache /app/.next/server/app \ + && chown -R nextjs:nodejs /app/.next USER nextjs diff --git a/docker-compose.yml b/docker-compose.yml index e880218..44b2ef5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -43,6 +43,9 @@ services: build: context: . dockerfile: Dockerfile + args: + NEXT_PUBLIC_UMAMI_SRC: ${NEXT_PUBLIC_UMAMI_SRC:-} + NEXT_PUBLIC_UMAMI_ID: ${NEXT_PUBLIC_UMAMI_ID:-} container_name: qrmaster-web restart: unless-stopped environment: @@ -56,9 +59,9 @@ services: INTERNAL_API_SECRET: ${INTERNAL_API_SECRET} TIKTOK_CLIENT_KEY: ${TIKTOK_CLIENT_KEY:-} TIKTOK_CLIENT_SECRET: ${TIKTOK_CLIENT_SECRET:-} - TIKTOK_REDIRECT_URI: ${TIKTOK_REDIRECT_URI:-https://qrmaster.net/api/tiktok/callback} - TIKTOK_ADMIN_KEY: ${TIKTOK_ADMIN_KEY:-} - TIKTOK_EXPECTED_OPEN_ID: ${TIKTOK_EXPECTED_OPEN_ID:-} + TIKTOK_REDIRECT_URI: ${TIKTOK_REDIRECT_URI:-https://qrmaster.net/api/tiktok/callback} + TIKTOK_ADMIN_KEY: ${TIKTOK_ADMIN_KEY:-} + TIKTOK_EXPECTED_OPEN_ID: ${TIKTOK_EXPECTED_OPEN_ID:-} IP_SALT: ${IP_SALT:-your-salt-change-in-production} ENABLE_DEMO: ${ENABLE_DEMO:-false} NEXT_PUBLIC_INDEXABLE: ${NEXT_PUBLIC_INDEXABLE:-true} @@ -76,14 +79,14 @@ services: # Email & Analytics RESEND_API_KEY: ${RESEND_API_KEY:-} SMTP_HOST: ${SMTP_HOST:-smtp.qrmaster.net} - SMTP_PORT: ${SMTP_PORT:-465} - SMTP_USER: ${SMTP_USER:-timo@qrmaster.net} - SMTP_PASS: ${SMTP_PASS:-} - NEWSLETTER_ADMIN_EMAIL: ${NEWSLETTER_ADMIN_EMAIL:-} - NEWSLETTER_ADMIN_PASSWORD: ${NEWSLETTER_ADMIN_PASSWORD:-} - NEWSLETTER_TEST_EMAIL: ${NEWSLETTER_TEST_EMAIL:-} - EMAIL_UNSUBSCRIBE_SECRET: ${EMAIL_UNSUBSCRIBE_SECRET:-} - NEXT_PUBLIC_POSTHOG_KEY: ${NEXT_PUBLIC_POSTHOG_KEY:-} + SMTP_PORT: ${SMTP_PORT:-465} + SMTP_USER: ${SMTP_USER:-timo@qrmaster.net} + SMTP_PASS: ${SMTP_PASS:-} + NEWSLETTER_ADMIN_EMAIL: ${NEWSLETTER_ADMIN_EMAIL:-} + NEWSLETTER_ADMIN_PASSWORD: ${NEWSLETTER_ADMIN_PASSWORD:-} + NEWSLETTER_TEST_EMAIL: ${NEWSLETTER_TEST_EMAIL:-} + EMAIL_UNSUBSCRIBE_SECRET: ${EMAIL_UNSUBSCRIBE_SECRET:-} + NEXT_PUBLIC_POSTHOG_KEY: ${NEXT_PUBLIC_POSTHOG_KEY:-} NEXT_PUBLIC_POSTHOG_HOST: ${NEXT_PUBLIC_POSTHOG_HOST:-https://us.i.posthog.com} # Cloudflare R2 Storage R2_ACCOUNT_ID: ${R2_ACCOUNT_ID:-}