-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.local.example
More file actions
150 lines (129 loc) · 7.2 KB
/
.env.local.example
File metadata and controls
150 lines (129 loc) · 7.2 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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
# =============================================================================
# ROOT O3_CODE ENV — LOCAL DEVELOPMENT template
# `./.o3/code/setup.local.sh` copies this to .env (and overrides ports/URLs
# with a per-workspace allocation). Or just `cp .env.local.example .env`.
#
# Third-party credentials here are FAKE placeholders so env validation passes
# and the app boots with no real accounts. The services they point at are never
# reached on the core local path, or fail gracefully if they are. Sign in with
# the seeded dev account (email/password) — see `bun run db:seed-dev`.
# =============================================================================
# -----------------------------------------------------------------------------
# Neon Organization Credentials (cloud branch tooling only — not needed locally)
# -----------------------------------------------------------------------------
NEON_ORG_ID=
NEON_PROJECT_ID=
NEON_API_KEY=
# -----------------------------------------------------------------------------
# Database — local Postgres via docker-compose.yml (no Neon account needed).
# DATABASE_URL host db.localtest.me routes the Neon serverless driver at the
# local neon-http proxy; its PORT is the proxy's host port (see client.ts).
# setup.local.sh overrides these with per-workspace allocated ports; these
# defaults are for a plain `cp .env.local.example .env && docker compose up`.
# -----------------------------------------------------------------------------
DATABASE_URL=postgres://postgres:postgres@db.localtest.me:44015/main
DATABASE_URL_UNPOOLED=postgres://postgres:postgres@localhost:44014/main
# -----------------------------------------------------------------------------
# Cross-App URLs (Local Dev)
# -----------------------------------------------------------------------------
NEXT_PUBLIC_API_URL=http://localhost:44001
NEXT_PUBLIC_WEB_URL=http://localhost:44000
NEXT_PUBLIC_ADMIN_URL=http://localhost:44003
NEXT_PUBLIC_MARKETING_URL=http://localhost:44002
NEXT_PUBLIC_DOCS_URL=http://localhost:44004
# -----------------------------------------------------------------------------
# Better Auth
# Local-dev placeholders below work out of the box. Generate fresh values for
# any deployed environment.
# -----------------------------------------------------------------------------
BETTER_AUTH_SECRET=local-dev-better-auth-secret-change-me
NEXT_PUBLIC_COOKIE_DOMAIN=localhost
# AES-256-GCM key for encrypting stored project secrets: base64 of exactly 32 bytes.
# Generate a real one with: openssl rand -base64 32
SECRETS_ENCRYPTION_KEY=bG9jYWwtZGV2LXNlY3JldHMta2V5LW5vdC1zZWN1cmU=
# -----------------------------------------------------------------------------
# OAuth Credentials (real GitHub/Google sign-in; fake for local dev)
# -----------------------------------------------------------------------------
GOOGLE_CLIENT_ID=fake-google-client-id
GOOGLE_CLIENT_SECRET=fake-google-client-secret
GH_CLIENT_ID=fake-github-client-id
GH_CLIENT_SECRET=fake-github-client-secret
# -----------------------------------------------------------------------------
# GitHub App Credentials (PR integration — fake for local dev)
# -----------------------------------------------------------------------------
GH_APP_ID=000000
GH_APP_PRIVATE_KEY=fake-github-app-private-key
GH_WEBHOOK_SECRET=fake-github-webhook-secret
# -----------------------------------------------------------------------------
# Linear Integration (fake for local dev)
# -----------------------------------------------------------------------------
LINEAR_CLIENT_ID=fake-linear-client-id
LINEAR_CLIENT_SECRET=fake-linear-client-secret
LINEAR_WEBHOOK_SECRET=fake-linear-webhook-secret
# -----------------------------------------------------------------------------
# Slack Integration (fake for local dev)
# -----------------------------------------------------------------------------
SLACK_CLIENT_ID=fake-slack-client-id
SLACK_CLIENT_SECRET=fake-slack-client-secret
SLACK_SIGNING_SECRET=fake-slack-signing-secret
SLACK_BILLING_WEBHOOK_URL=https://hooks.slack.com/services/FAKE/FAKE/fake
# -----------------------------------------------------------------------------
# Anthropic (server-side AI features — fake for local dev)
# -----------------------------------------------------------------------------
ANTHROPIC_API_KEY=sk-ant-fake-local-dev
# -----------------------------------------------------------------------------
# Blob Storage (fake for local dev)
# -----------------------------------------------------------------------------
BLOB_READ_WRITE_TOKEN=vercel_blob_rw_fake_local_dev
# -----------------------------------------------------------------------------
# PostHog Analytics (disabled in local dev)
# -----------------------------------------------------------------------------
NEXT_PUBLIC_POSTHOG_KEY=phc_local_dev_disabled
NEXT_PUBLIC_POSTHOG_HOST=https://us.i.posthog.com
POSTHOG_API_KEY=phc_local_dev_disabled
POSTHOG_PROJECT_ID=00000
# -----------------------------------------------------------------------------
# Sentry Error Tracking (optional — leave blank to disable)
# -----------------------------------------------------------------------------
SENTRY_AUTH_TOKEN=
NEXT_PUBLIC_SENTRY_ENVIRONMENT=development
NEXT_PUBLIC_SENTRY_DSN_WEB=
NEXT_PUBLIC_SENTRY_DSN_MARKETING=
NEXT_PUBLIC_SENTRY_DSN_ADMIN=
NEXT_PUBLIC_SENTRY_DSN_DOCS=
NEXT_PUBLIC_SENTRY_DSN_API=
SENTRY_DSN_DESKTOP=
# -----------------------------------------------------------------------------
# Resend (Email — fake for local dev)
# -----------------------------------------------------------------------------
RESEND_API_KEY=re_fake_local_dev
# -----------------------------------------------------------------------------
# Stripe Billing (fake — org-creation skips Stripe when NODE_ENV=development)
# -----------------------------------------------------------------------------
STRIPE_SECRET_KEY=sk_test_fake_local_dev
STRIPE_WEBHOOK_SECRET=whsec_fake_local_dev
STRIPE_PRO_MONTHLY_PRICE_ID=price_fake_pro_monthly
STRIPE_PRO_YEARLY_PRICE_ID=price_fake_pro_yearly
STRIPE_ENTERPRISE_YEARLY_PRICE_ID=price_fake_enterprise_yearly
# -----------------------------------------------------------------------------
# Upstash Redis & QStash (fake for local dev)
# -----------------------------------------------------------------------------
KV_REST_API_URL=https://fake-kv.example.com
KV_REST_API_TOKEN=fake-kv-token
KV_URL=rediss://default:fake-kv-token@fake-kv.example.com:6379
QSTASH_TOKEN=fake-qstash-token
QSTASH_URL=https://fake-qstash.example.com
QSTASH_CURRENT_SIGNING_KEY=sig_fake_current
QSTASH_NEXT_SIGNING_KEY=sig_fake_next
# -----------------------------------------------------------------------------
# Durable Streams (v2 streaming — fake for local dev)
# -----------------------------------------------------------------------------
DURABLE_STREAMS_URL=https://fake-streams.example.com
DURABLE_STREAMS_SECRET=fake-durable-streams-secret
# MCP API Key for Claude Code
O3_CODE_MCP_API_KEY=fake-o3-code-mcp-api-key
# Relay service URL (the v2 tunnel proxy that forwards cloud API calls
# to host-service instances on user devices). Local dev: http://localhost:44013
RELAY_URL=http://localhost:44013
# Browser-exposed relay URL — the web app's host-service tRPC + terminal WS.
NEXT_PUBLIC_RELAY_URL=http://localhost:44013