feat: add Umami tracking support

This commit is contained in:
2026-02-23 17:09:44 +01:00
parent 4108ffc23f
commit b7d427023e
2 changed files with 16 additions and 0 deletions

View File

@@ -3,6 +3,15 @@ FROM node:20-alpine AS builder
WORKDIR /app WORKDIR /app
# Add build arguments for Umami
ARG UMAMI_SCRIPT
ARG UMAMI_ID
# Set environment variables for the build process
ENV UMAMI_SCRIPT=$UMAMI_SCRIPT
ENV UMAMI_ID=$UMAMI_ID
ENV NODE_ENV=production
# Copy package files # Copy package files
COPY package.json pnpm-lock.yaml* ./ COPY package.json pnpm-lock.yaml* ./

View File

@@ -50,11 +50,18 @@ export default function RootLayout({
}: Readonly<{ }: Readonly<{
children: React.ReactNode; children: React.ReactNode;
}>) { }>) {
const umamiScript = process.env.UMAMI_SCRIPT;
const umamiId = process.env.UMAMI_ID;
const isProd = process.env.NODE_ENV === 'production';
return ( return (
<html lang="en" className="dark" suppressHydrationWarning> <html lang="en" className="dark" suppressHydrationWarning>
<head> <head>
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="preconnect" href="https://kit.pivoine.art" /> <link rel="preconnect" href="https://kit.pivoine.art" />
{isProd && umamiScript && umamiId && (
<script defer src={umamiScript} data-website-id={umamiId}></script>
)}
<script <script
dangerouslySetInnerHTML={{ dangerouslySetInnerHTML={{
__html: ` __html: `