OOOC Fête Finder uses environment variables for runtime configuration, authentication, integrations, and deployment settings. All variables are validated using the schema defined inDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/KingPsychopath/oooc-fete-finder/llms.txt
Use this file to discover all available pages before exploring further.
lib/config/env.ts.
Core variables
Runtime environment mode.Valid values:
development, production, testRequired: No (optional with default)Secret key used for JWT signing, cookie encryption, and hashed security keys.Minimum length: 32 charactersGeneration:
Determines the primary data source for live event reads.Valid values:
remote- Use Postgres event store with local CSV fallbacklocal- Use local CSV file only (data/events.csv)test- Use in-memory test data
Admin authentication
Master key for admin authentication. If empty or unset, all admin login and admin API routes are disabled.Generation:
Setting this to an empty string effectively disables the admin panel without code changes.
Optional secondary passcode required for destructive admin actions like factory reset.Recommendation: Keep this different from
ADMIN_KEY.Generation:Cache TTL in seconds for admin header notification badge counters.Set to
0 to disable caching and force real-time counts on every request.Database
Postgres connection string (includes user, password, host, port, and database name).Example:Required for: Postgres-backed runtime behavior with
DATA_MODE=remoteNeon and Vercel may set additional Postgres environment variables (
PGHOST, POSTGRES_*, etc.). The application only reads DATABASE_URL.Optional override for maximum database connection pool size.Default values:
- Development: 1
- Production: 3
Public client variables
These variables are prefixed withNEXT_PUBLIC_ and are exposed to the client-side JavaScript bundle.
Canonical site origin used for absolute URL generation and OG metadata.Example:
https://fete.outofofficecollective.co.ukOptional subpath for deployments not hosted at the domain root.Example:
/fete for https://example.com/feteGoogle integrations
API key for Google Maps Geocoding API. Enables precise coordinate lookup for event addresses.When unset: Arrondissement center fallback coordinates are used.Setup: Enable Geocoding API in Google Cloud Console.See Geocoding integration for complete behavior.
Google Sheet ID for admin backup import and preview.Used for: Service account-based sheet access (not live runtime source).
Google Sheets is not the live runtime source. It is only used in admin for backup preview/import operations.
Service account credentials in JSON format (one-line compact, no file-path fallback).Required for: Admin Google Sheet import and preview when using
GOOGLE_SHEET_ID.Alternative to Google Sheets API for admin backup source. Direct URL to a published CSV file.Example: Google Sheets “Publish to web” CSV URL
This is used as an alternative to
GOOGLE_SHEET_ID for admin import/preview only.Security and rate limiting
Bearer token used to protect scheduled cron endpoints.Protected routes:
/api/cron/cleanup-admin-sessions/api/cron/cleanup-rate-limits/api/cron/backup-event-store
Authorization: Bearer <CRON_SECRET> header.Generation:Bearer token used to protect the post-deploy revalidation webhook.Protected route: See Post-deploy revalidation below.
/api/revalidate/deployGeneration:Stripe payment integration
Webhook signing secret used to verify Stripe webhook events at
/api/webhooks/stripe.Obtained from: Stripe Dashboard → Webhooks → Signing secretStripe Payment Links (client-side)
These are public variables used for partner page CTAs. If missing, partner CTAs fall back to contact email.Payment Link URL for Spotlight Standard package.
Payment Link URL for Spotlight Takeover package.
Payment Link URL for Promoted Listing package.
Payment Link URL for WhatsApp Announcement add-on.
Payment Link URL for Newsletter Inclusion add-on.
Stripe Payment Link ID mapping (server-side)
Optional mapping of Stripe Payment Link IDs to package keys for admin queue labels.Payment Link ID for Spotlight Standard (used for admin order labeling).
Payment Link ID for Spotlight Takeover (used for admin order labeling).
Payment Link ID for Promoted Listing (used for admin order labeling).
Payment Link ID for WhatsApp add-on (used for admin order labeling).
Payment Link ID for Newsletter add-on (used for admin order labeling).
Production deployment notes
For Postgres-backed runtime behavior in production:
- Set
DATABASE_URLto your Postgres connection string - Set
DATA_MODE=remote - Ensure
AUTH_SECRETis at least 32 characters
Post-deploy revalidation
The/api/revalidate/deploy endpoint forces a live events reload and revalidates the homepage immediately after deployment.
Usage:
Secret generation quick reference
Generate all secrets at once
Generate all secrets at once
Environment setup checklist
Minimum required variables
Minimum required variables
Optional admin features
Optional admin features
Optional Google integrations
Optional Google integrations
Optional security and automation
Optional security and automation