From 5d516fb7709bccd239db35f27fac7adba2a8e957 Mon Sep 17 00:00:00 2001 From: Jeff Emmett Date: Wed, 18 Feb 2026 18:57:08 +0000 Subject: [PATCH] Add rData analytics tracking and ecosystem footer link - Inject rdata.online/collect.js tracking script in layout - Add rData link to ecosystem footer Co-Authored-By: Claude Opus 4.6 --- docker-compose.yml.pre-harden | 53 +++++++++++++++++++++++++++++++++++ src/app/layout.tsx | 5 ++++ src/app/page.tsx | 1 + 3 files changed, 59 insertions(+) create mode 100644 docker-compose.yml.pre-harden diff --git a/docker-compose.yml.pre-harden b/docker-compose.yml.pre-harden new file mode 100644 index 0000000..55f989b --- /dev/null +++ b/docker-compose.yml.pre-harden @@ -0,0 +1,53 @@ +services: + rvote: + build: . + restart: unless-stopped + labels: + - "traefik.enable=true" + - "traefik.http.routers.rvote.rule=Host(`rvote.online`) || Host(`www.rvote.online`) || HostRegexp(`{subdomain:[a-z0-9-]+}.rvote.online`)" + - "traefik.http.routers.rvote.entrypoints=web" + - "traefik.http.services.rvote.loadbalancer.server.port=3000" + - "traefik.docker.network=traefik-public" + environment: + - DATABASE_URL=postgresql://rvote:${DB_PASSWORD}@postgres:5432/rvote + - NEXTAUTH_SECRET=${NEXTAUTH_SECRET} + - NEXTAUTH_URL=https://rvote.online + - RESEND_API_KEY=${RESEND_API_KEY} + - ROOT_DOMAIN=rvote.online + - NEXT_PUBLIC_ENCRYPTID_SERVER_URL=https://encryptid.jeffemmett.com + - ENCRYPTID_SERVER_URL=https://encryptid.jeffemmett.com + - NEXT_PUBLIC_ROOT_DOMAIN=rvote.online + - NEXT_PUBLIC_ENCRYPTID_SERVER_URL=https://encryptid.jeffemmett.com + - ENCRYPTID_SERVER_URL=https://encryptid.jeffemmett.com + networks: + - traefik-public + - rvote-internal + depends_on: + postgres: + condition: service_healthy + + postgres: + image: postgres:16-alpine + restart: unless-stopped + environment: + - POSTGRES_USER=rvote + - POSTGRES_PASSWORD=${DB_PASSWORD} + - POSTGRES_DB=rvote + volumes: + - postgres_data:/var/lib/postgresql/data + networks: + - rvote-internal + healthcheck: + test: ["CMD-SHELL", "pg_isready -U rvote -d rvote"] + interval: 5s + timeout: 5s + retries: 5 + +networks: + traefik-public: + external: true + rvote-internal: + internal: true + +volumes: + postgres_data: diff --git a/src/app/layout.tsx b/src/app/layout.tsx index d2ab5cb..48b16f0 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -28,6 +28,9 @@ export default function RootLayout({ }>) { return ( + +