diff --git a/README.md b/README.md index 2369dea..0cbbc99 100644 --- a/README.md +++ b/README.md @@ -62,12 +62,17 @@ Environment: - `VITE_ANALYTICS_RETENTION_MONTHS`: disclosed analytics retention period. Configure Umami/database deletion to match it. - `PLIMI_PORT`: host port used by Docker Compose, default `8080`. -Analytics is self-hosted and enabled by default for audience measurement. The -tracker excludes URL search parameters and hashes, honors Do Not Track, and can -be disabled locally through the privacy controls. +Analytics is self-hosted and disabled until the visitor explicitly consents. +The tracker excludes URL search parameters and hashes, honors Do Not Track, and +can be disabled locally through the privacy controls. The privacy page is available at `/privacy`; deployers must replace all example controller and hosting values before publishing. +The bundled Nginx configuration disables routine access logging. If a reverse +proxy, CDN, hosting platform, or firewall logs visitor IP addresses or request +metadata, document that processing and enforce an appropriate retention period +in that service. + The Docker image is environment-independent. At container startup, its entrypoint generates `/config.js` from `.env`, so the same image can be promoted between environments without rebuilding. The file is ignored by Git and excluded from diff --git a/nginx.conf b/nginx.conf index c666eda..0d47565 100644 --- a/nginx.conf +++ b/nginx.conf @@ -6,6 +6,7 @@ server { index index.html; server_tokens off; + access_log off; gzip on; gzip_comp_level 6; diff --git a/src/components/layout/Footer.tsx b/src/components/layout/Footer.tsx index f1fdffe..5c6e33a 100644 --- a/src/components/layout/Footer.tsx +++ b/src/components/layout/Footer.tsx @@ -2,14 +2,12 @@ import { Link } from "react-router-dom"; import { useAnalyticsConsent } from "../../core/privacy/analytics-consent-context"; export function Footer() { - const { enabled, toggleAnalytics } = useAnalyticsConsent(); + const { choice, openSettings } = useAnalyticsConsent(); return (