-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy path.env.example
More file actions
54 lines (48 loc) · 2.79 KB
/
Copy path.env.example
File metadata and controls
54 lines (48 loc) · 2.79 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
# yopedia environment variables.
# Copy to `.env.local` (Next dev) and/or `.dev.vars` (wrangler/OpenNext local).
# Both files are gitignored. Production sets these as Cloudflare Worker
# secrets/vars and (for NEXT_PUBLIC_* values) in the deploy build step.
# --- Clerk auth (email + optional X/Twitter SSO) ---
# Both are required at runtime, even reads, or the app 500s.
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_...
CLERK_SECRET_KEY=sk_test_...
#
# Invite-only / waitlist is configured in the CLERK DASHBOARD, not via env:
# 1. Enable Email auth (needed for waitlist invitation emails).
# 2. Require Username at sign-up — the preferred /u/<handle> URL basis;
# resolveHandle() in src/lib/auth.ts falls back to the X handle / user id
# if it's unset, so the app still runs, just with less stable handles.
# 3. Waitlist page → toggle "Enable waitlist" (gates new registration only;
# reading the commons stays public). Approve people via the row "…" → Invite.
# The app side is just `waitlistUrl="/waitlist"` on <ClerkProvider> (layout.tsx)
# + the /waitlist page — no extra env var.
# --- Site owner ---
# The X/Twitter handle of the site owner. Gates owner-only admin tools (Lint):
# the nav hides them and the /lint page + /api/lint* routes reject non-owners.
# Public (inlined into the client bundle at build time). Unset → nobody is owner.
NEXT_PUBLIC_OWNER_HANDLE=yuanhao
# --- LLM + vision (generation, image description) ---
# DeepSeek (multimodal, used for ingest synthesis and image vision).
DEEPSEEK_API_KEY=sk-...
# Optional overrides:
# LLM_MODEL=deepseek-v4-flash
# VISION_MODEL=@cf/llava-hf/llava-1.5-7b-hf # Workers AI fallback when no LLM key
# --- YouTube transcript (optional) ---
# Only needed when direct transcript fetch is blocked by YouTube.
# YOUTUBE_TRANSCRIPT_API_KEY=...
# --- X / Twitter ingestion (optional) ---
# X API v2 bearer token. Plain tweets read fine without it (public syndication
# CDN), but long-form X *Articles* only expose a ~200-char teaser there — their
# full body needs this token. Set it on the MAIN app Worker
# (`wrangler secret put X_BEARER_TOKEN`) so a pasted / MCP-ingested X Article
# fetches its full body; without it, articles silently degrade to the teaser.
# Needs a tier with recent-search/article access, and the body is only reachable
# within ~7 days of posting (X's recent-search window).
# X_BEARER_TOKEN=...
# --- Analytics (PostHog page views) ---
# Page-view tracking is ON by default with a built-in PUBLIC project key.
# Override the key/host here (NEXT_PUBLIC_* are inlined at BUILD time, so set
# them in the deploy build env, not just at runtime). Pageviews only — cookieless
# (memory persistence, no consent banner), no autocapture, no session replay.
# NEXT_PUBLIC_POSTHOG_KEY=phc_...
# NEXT_PUBLIC_POSTHOG_HOST=https://us.i.posthog.com