|
| 1 | +# Copy to .env and adjust. Placeholders only — never commit real secrets. |
| 2 | +# Schema: apps/api/src/lib/env.ts (t3 createEnv) |
| 3 | + |
| 4 | +# ----------------------------------------------------------------------------- |
| 5 | +# Core |
| 6 | +# ----------------------------------------------------------------------------- |
| 7 | +PORT=3001 |
| 8 | +HOST=0.0.0.0 |
| 9 | +# NODE_ENV=development |
| 10 | +# CI=false |
| 11 | + |
| 12 | +# ----------------------------------------------------------------------------- |
| 13 | +# Database (PGLITE=true uses in-memory DB; else DATABASE_URL required) |
| 14 | +# ----------------------------------------------------------------------------- |
| 15 | +PGLITE=false |
| 16 | +DATABASE_URL=postgresql://postgres:postgres@127.0.0.1:54322/postgres |
| 17 | + |
| 18 | +# ----------------------------------------------------------------------------- |
| 19 | +# Ops / limits / logging |
| 20 | +# ----------------------------------------------------------------------------- |
| 21 | +# RATE_LIMIT_MAX=100 |
| 22 | +# RATE_LIMIT_TIME_WINDOW=60000 |
| 23 | +# TRUST_PROXY=true |
| 24 | +# SECURITY_HEADERS_ENABLED=true |
| 25 | +# BODY_LIMIT=1048576 |
| 26 | +# REQUEST_TIMEOUT=30000 |
| 27 | +# LOG_LEVEL=info |
| 28 | + |
| 29 | +# ----------------------------------------------------------------------------- |
| 30 | +# Sentry (optional) |
| 31 | +# ----------------------------------------------------------------------------- |
| 32 | +# SENTRY_DSN= |
| 33 | +# SENTRY_ENVIRONMENT= |
| 34 | + |
| 35 | +# ----------------------------------------------------------------------------- |
| 36 | +# AI (at least one provider path for chat features) |
| 37 | +# ----------------------------------------------------------------------------- |
| 38 | +ANTHROPIC_API_KEY=sk-ant-xxx |
| 39 | +# OPEN_ROUTER_API_KEY=sk-or-v1-xxxxxxxxxxxxxxxxxx |
| 40 | +# OLLAMA_BASE_URL=http://localhost:11434 |
| 41 | +# AI_PROVIDER=anthropic |
| 42 | +# AI_DEFAULT_MODEL= |
| 43 | +# AI_UPSTREAM_TIMEOUT_MS=120000 |
| 44 | +# BRAVE_SEARCH_API_KEY= |
| 45 | + |
| 46 | +# ----------------------------------------------------------------------------- |
| 47 | +# JWT / encryption (JWT_SECRET must match Next.js web app) |
| 48 | +# ----------------------------------------------------------------------------- |
| 49 | +JWT_SECRET=default-jwt-secret-min-32-chars-for-dev |
| 50 | +# 64 hex chars dev default; must not be all-zero in production |
| 51 | +ENCRYPTION_KEY=0000000000000000000000000000000000000000000000000000000000000000 |
| 52 | +# ACCESS_JWT_EXPIRES_IN_SECONDS=900 |
| 53 | +# REFRESH_JWT_EXPIRES_IN_SECONDS=604800 |
| 54 | +# JWT_ISSUER=api.yourapp.com |
| 55 | +# JWT_AUDIENCE=api.yourapp.com |
| 56 | + |
| 57 | +# ----------------------------------------------------------------------------- |
| 58 | +# Email / app identity |
| 59 | +# ----------------------------------------------------------------------------- |
| 60 | +# RESEND_API_KEY=re_placeholder |
| 61 | +# EMAIL_FROM=noreply@localhost |
| 62 | +# EMAIL_FROM_NAME=App |
| 63 | +# APP_NAME=Your App |
| 64 | + |
| 65 | +# ----------------------------------------------------------------------------- |
| 66 | +# Testing / features |
| 67 | +# ----------------------------------------------------------------------------- |
| 68 | +# ALLOW_TEST=false |
| 69 | + |
| 70 | +# ----------------------------------------------------------------------------- |
| 71 | +# OAuth — optional (routes return 503 when unset) |
| 72 | +# ----------------------------------------------------------------------------- |
| 73 | +# GITHUB_CLIENT_ID= |
| 74 | +# GITHUB_CLIENT_SECRET= |
| 75 | +# OAUTH_GITHUB_CALLBACK_URL=http://localhost:3000/auth/callback/oauth/github |
| 76 | +# OAUTH_GITHUB_CALLBACK_URLS=http://localhost:3000/auth/callback/oauth/github,yourapp://auth/callback |
| 77 | + |
| 78 | +# GOOGLE_CLIENT_ID= |
| 79 | +# GOOGLE_CLIENT_SECRET= |
| 80 | +# OAUTH_GOOGLE_CALLBACK_URL=http://localhost:3000/auth/callback/oauth/google |
| 81 | +# OAUTH_GOOGLE_CALLBACK_URLS=http://localhost:3000/auth/callback/oauth/google,yourapp://auth/callback |
| 82 | + |
| 83 | +# FACEBOOK_CLIENT_ID= |
| 84 | +# FACEBOOK_CLIENT_SECRET= |
| 85 | +# OAUTH_FACEBOOK_CALLBACK_URL=http://localhost:3000/auth/callback/oauth/facebook |
| 86 | +# OAUTH_FACEBOOK_CALLBACK_URLS=http://localhost:3000/auth/callback/oauth/facebook,yourapp://auth/callback |
| 87 | + |
| 88 | +# TWITTER_CLIENT_ID= |
| 89 | +# TWITTER_CLIENT_SECRET= |
| 90 | +# OAUTH_TWITTER_CALLBACK_URL=http://localhost:3000/auth/callback/oauth/twitter |
| 91 | +# OAUTH_TWITTER_CALLBACK_URLS=http://localhost:3000/auth/callback/oauth/twitter,yourapp://auth/callback |
| 92 | + |
| 93 | +# ----------------------------------------------------------------------------- |
| 94 | +# CORS / app URLs / auth metadata |
| 95 | +# ----------------------------------------------------------------------------- |
| 96 | +# ALLOWED_ORIGINS=* |
| 97 | +# TOTP_ISSUER= |
| 98 | +# WEBAUTHN_RP_NAME= |
0 commit comments