feat: readded google signins and add global announcement feature

- Updated .env.example to include new environment variables for Google authentication and global announcement settings.
- Integrated Google sign-in functionality in SignInButton and HeroSection components, allowing users to log in with their Google accounts.
- Added GlobalAnnouncement component to display maintenance notices or announcements on the homepage layout.
- Enhanced styling for Google sign-in buttons to improve user experience.
This commit is contained in:
DESKTOP-RTLN3BA\$punk 2026-06-17 21:29:14 -07:00
parent b89866541e
commit 4e5c13f60a
6 changed files with 214 additions and 8 deletions

View file

@ -1,29 +1,74 @@
# ─────────────────────────────────────────────────────────────────────────────
# Backend connectivity
# ─────────────────────────────────────────────────────────────────────────────
# Optional packaged-client override. Leave unset in Docker so browser requests
# use same-origin relative URLs behind Caddy.
# use same-origin relative URLs behind Caddy. Set it for packaged clients
# (e.g. Electron) or local dev that talks to a separate backend origin.
# NEXT_PUBLIC_FASTAPI_BACKEND_URL=http://localhost:8000
# Server-only. Internal backend URL used by Next.js server code.
# Server-only. Internal backend URL used by Next.js server code (RSC / route
# handlers). Cannot be a relative URL.
SURFSENSE_BACKEND_INTERNAL_URL=http://backend:8000
# ─────────────────────────────────────────────────────────────────────────────
# Runtime configuration (read at runtime by the server, no rebuild needed)
# ─────────────────────────────────────────────────────────────────────────────
# Authentication method: LOCAL (email/password) or GOOGLE (OAuth).
AUTH_TYPE=LOCAL
# Document parsing backend: DOCLING, LLAMACLOUD, etc.
ETL_SERVICE=DOCLING
# Deployment mode: self-hosted or cloud.
DEPLOYMENT_MODE=self-hosted
# Contact Form Vars (optional)
# ─────────────────────────────────────────────────────────────────────────────
# Build-time fallbacks for packaged clients (e.g. Electron) without a runtime
# config provider. Optional; Docker reads the plain runtime vars above first.
# ─────────────────────────────────────────────────────────────────────────────
# NEXT_PUBLIC_AUTH_TYPE=GOOGLE
# NEXT_PUBLIC_ETL_SERVICE=DOCLING
# NEXT_PUBLIC_DEPLOYMENT_MODE=self-hosted
# Overrides the app version shown in the UI (defaults to package.json version).
# NEXT_PUBLIC_APP_VERSION=
# ─────────────────────────────────────────────────────────────────────────────
# Database (Contact Form, optional)
# ─────────────────────────────────────────────────────────────────────────────
DATABASE_URL=postgresql://postgres:[YOUR-PASSWORD]@db.sdsf.supabase.co:5432/postgres
# PostHog analytics (optional, leave empty to disable)
# ─────────────────────────────────────────────────────────────────────────────
# PostHog analytics (optional, leave key empty to disable)
# ─────────────────────────────────────────────────────────────────────────────
NEXT_PUBLIC_POSTHOG_KEY=
NEXT_PUBLIC_POSTHOG_HOST=https://us.i.posthog.com
# ─────────────────────────────────────────────────────────────────────────────
# Zero cache (real-time sync). Leave unset in Docker to use the same-origin
# "/zero" endpoint behind Caddy. Set it for local dev or packaged clients.
# ─────────────────────────────────────────────────────────────────────────────
# NEXT_PUBLIC_ZERO_CACHE_URL=http://localhost:4848
# ─────────────────────────────────────────────────────────────────────────────
# Cloudflare Turnstile CAPTCHA for anonymous chat abuse prevention
# Get your site key from https://dash.cloudflare.com/ -> Turnstile
# ─────────────────────────────────────────────────────────────────────────────
NEXT_PUBLIC_TURNSTILE_SITE_KEY=
# ─────────────────────────────────────────────────────────────────────────────
# Google AdSense (optional, only enables ads on the /free hub page).
# Publisher ID from your AdSense dashboard, e.g. ca-pub-XXXXXXXXXXXXXXXX.
# Leave empty to disable ad rendering entirely.
# ─────────────────────────────────────────────────────────────────────────────
NEXT_PUBLIC_GOOGLE_ADSENSE_CLIENT_ID=
# Ad unit slot IDs from AdSense dashboard -> Ads -> By ad unit.
# Leave empty to hide individual slots while keeping the script loaded.
NEXT_PUBLIC_GOOGLE_ADSENSE_SLOT_FREE_HUB_IN_CONTENT=
NEXT_PUBLIC_GOOGLE_ADSENSE_SLOT_FREE_HUB_BEFORE_FAQ=
NEXT_PUBLIC_GOOGLE_ADSENSE_SLOT_FREE_HUB_BEFORE_FAQ=
# ─────────────────────────────────────────────────────────────────────────────
# Global announcement banner (e.g. planned downtime / maintenance notice).
# Set ENABLED to "true" to show the banner, and put the notice text in MESSAGE.
# ─────────────────────────────────────────────────────────────────────────────
NEXT_PUBLIC_GLOBAL_ANNOUNCEMENT_ENABLED=false
NEXT_PUBLIC_GLOBAL_ANNOUNCEMENT_MESSAGE=