-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathenv.example
More file actions
65 lines (55 loc) · 2.34 KB
/
Copy pathenv.example
File metadata and controls
65 lines (55 loc) · 2.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# Openfront Gym environment contract
# Copy to .env and replace every value needed by the flows you enable.
# Never commit real credentials.
# Core runtime (required in strict/production mode)
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/openfront_gym_dev
SESSION_SECRET=replace-with-at-least-32-random-characters
NEXTAUTH_URL=http://localhost:3000
# Optional internal same-process GraphQL origin for server-to-server requests.
INTERNAL_GRAPHQL_URL=http://127.0.0.1:3000
# Public storefront tenant binding.
# Optional only when the database has exactly one active Organization and public signup is disabled.
# Required for multiple Organizations and whenever PUBLIC_SIGNUPS_ALLOWED=true.
# STOREFRONT_ORGANIZATION_ID=gym_organization_id
# Object storage (required in strict/production mode)
S3_BUCKET_NAME=
S3_REGION=
S3_ENDPOINT=
S3_ACCESS_KEY_ID=
S3_SECRET_ACCESS_KEY=
# Email and password reset
SMTP_HOST=
SMTP_PORT=587
SMTP_USER=
SMTP_PASSWORD=
SMTP_FROM=
SMTP_STORE_LINK=http://localhost:3000
CONTACT_FORM_TO=
# Public member signup is fail-closed unless explicitly enabled and tenant-bound.
# When enabled, this must exactly match STOREFRONT_ORGANIZATION_ID.
PUBLIC_SIGNUPS_ALLOWED=false
# PUBLIC_SIGNUP_ORGANIZATION_ID=gym_organization_id
# Stripe membership billing (required in strict/production mode)
STRIPE_SECRET_KEY=
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=
STRIPE_WEBHOOK_SECRET=
# Required for Stripe Connect / multi-tenant account-routed webhooks.
# STRIPE_ACCOUNT_ID=acct_...
# Never enable in production. Used only by isolated payment tests.
PAYMENT_TEST_MODE=false
# PAYMENT_TEST_WEBHOOK_SECRET=replace-with-at-least-32-random-characters
# Rotating member QR codes
QR_CODE_SECRET=replace-with-at-least-32-random-characters
# Staff-unlocked kiosk. Both values are required for /kiosk/check-in.
# The browser exchanges this credential for a 12-hour HttpOnly kiosk session.
KIOSK_API_TOKEN=replace-with-at-least-32-random-characters
KIOSK_ORGANIZATION_ID=gym_organization_id
# Partner discovery is fail-closed unless every enabled boundary is configured.
# DISCOVERY_API_KEY=replace-with-at-least-32-random-characters
# DISCOVERY_ORGANIZATION_ID=gym_organization_id
# DISCOVERY_API_SCOPES=classes:read,bookings:create
# DISCOVERY_PARTNER_ALLOWLIST=partner-example
# Optional AI completion route
# OPENROUTER_API_KEY=
# OPENROUTER_MODEL=
# OPENROUTER_MAX_TOKENS=1024