-
Notifications
You must be signed in to change notification settings - Fork 4.3k
Expand file tree
/
Copy path.example.env
More file actions
135 lines (112 loc) · 4.3 KB
/
Copy path.example.env
File metadata and controls
135 lines (112 loc) · 4.3 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
NODE_ENV=local
PORT=3000
API_ROOT_URL=http://127.0.0.1:3000
# URL for the Self-Hosted or the URL regexp for the Novu Dashboard
FRONT_BASE_URL=http://127.0.0.1:4201
DASHBOARD_URL=http://127.0.0.1:4201
STORE_ENCRYPTION_KEY="<ENCRYPTION_KEY_MUST_BE_32_LONG>"
DISABLE_USER_REGISTRATION=false
MONGO_URL=mongodb://127.0.0.1:27017/novu-db
MONGO_MAX_POOL_SIZE=500
REDIS_PORT=6379
REDIS_PREFIX=
REDIS_HOST=localhost
REDIS_DB_INDEX=2
REDIS_CACHE_SERVICE_HOST=
REDIS_CACHE_SERVICE_PORT=6379
REDIS_CACHE_DB_INDEX=
REDIS_CACHE_TTL=
REDIS_CACHE_PASSWORD=
REDIS_CACHE_CONNECTION_TIMEOUT=
REDIS_CACHE_KEEP_ALIVE=
REDIS_CACHE_FAMILY=
REDIS_CACHE_KEY_PREFIX=
REDIS_CACHE_ENABLE_AUTOPIPELINING=
IS_IN_MEMORY_CLUSTER_MODE_ENABLED=false
REDIS_CLUSTER_SERVICE_HOST=
REDIS_CLUSTER_SERVICE_PORT=
REDIS_CLUSTER_DB_INDEX=
REDIS_CLUSTER_TTL=
REDIS_CLUSTER_PASSWORD=
REDIS_CLUSTER_CONNECTION_TIMEOUT=
REDIS_CLUSTER_KEEP_ALIVE=
REDIS_CLUSTER_FAMILY=
REDIS_CLUSTER_KEY_PREFIX=
JWT_SECRET=LOCAL_ONLY_CHANGE_ME
S3_LOCAL_STACK=http://127.0.0.1:4566
S3_BUCKET_NAME=novu-local
S3_REGION=us-east-1
AWS_ACCESS_KEY_ID=test
AWS_SECRET_ACCESS_KEY=test
NEW_RELIC_ENABLED=false
CDN_URL=
MAIL_SERVER_DOMAIN=
GLOBAL_CONTEXT_PATH=
API_CONTEXT_PATH=
VERCEL_CLIENT_ID=
VERCEL_CLIENT_SECRET=
VERCEL_REDIRECT_URI=http://127.0.0.1:4200/auth/login
VERCEL_BASE_URL=https://api.vercel.com
STORE_NOTIFICATION_CONTENT=true
LOG_LEVEL=info
LAUNCH_DARKLY_SDK_KEY=
# Provider-managed MCP ("Add from Claude"). Process-env fallback when LAUNCH_DARKLY_SDK_KEY is unset.
# IS_MCP_PROVIDER_MANAGED_ENABLED=true
# WhatsApp Embedded Signup (Meta Tech Provider). Process-env fallback when LaunchDarkly is unset.
# IS_WHATSAPP_EMBEDDED_SIGNUP_ENABLED=true
GITHUB_API_TOKEN=
# MCP novu-app credentials (mcp_connection authMode='novu-app').
# Novu Cloud pre-fills these from the platform GitHub App. Self-hosters
# register their own GitHub App (with "Expiring user tokens" enabled so
# refresh tokens are issued) and set the resulting client_id / secret here;
# leave blank to surface "Coming soon." in the picker for GitHub MCP.
NOVU_GITHUB_MCP_APP_CLIENT_ID=
NOVU_GITHUB_MCP_APP_CLIENT_SECRET=
IS_API_RATE_LIMITING_ENABLED=false
API_RATE_LIMIT_COST_SINGLE=
API_RATE_LIMIT_COST_BULK=
API_RATE_LIMIT_ALGORITHM_BURST_ALLOWANCE=
API_RATE_LIMIT_ALGORITHM_WINDOW_DURATION=
API_RATE_LIMIT_MAXIMUM_BUSINESS_TRIGGER=
API_RATE_LIMIT_MAXIMUM_BUSINESS_CONFIGURATION=
API_RATE_LIMIT_MAXIMUM_BUSINESS_GLOBAL=
API_RATE_LIMIT_MAXIMUM_FREE_TRIGGER=
API_RATE_LIMIT_MAXIMUM_FREE_CONFIGURATION=
API_RATE_LIMIT_MAXIMUM_FREE_GLOBAL=
API_RATE_LIMIT_MAXIMUM_UNLIMITED_TRIGGER=
API_RATE_LIMIT_MAXIMUM_UNLIMITED_CONFIGURATION=
API_RATE_LIMIT_MAXIMUM_UNLIMITED_GLOBAL=
HUBSPOT_INVITE_NUDGE_EMAIL_USER_LIST_ID=
HUBSPOT_PRIVATE_APP_ACCESS_TOKEN=
CLERK_ISSUER_URL=
CLERK_LONG_LIVED_TOKEN=
TUNNEL_BASE_ADDRESS=
PLAIN_SUPPORT_KEY='PLAIN_SUPPORT_KEY'
PLAIN_IDENTITY_VERIFICATION_SECRET_KEY='PLAIN_IDENTITY_VERIFICATION_SECRET_KEY'
PLAIN_CARDS_HMAC_SECRET_KEY='PLAIN_CARDS_HMAC_SECRET_KEY'
NOVU_INTERNAL_SECRET_KEY=
NOVU_SECRET_KEY='NOVU_SECRET_KEY'
# expressed in seconds or a string describing a time span [zeit/ms](https://github.com/zeit/ms.js). Eg: 60, "2 days", "10h", "7d"
SUBSCRIBER_WIDGET_JWT_EXPIRATION_TIME='15 days'
# ClickHouse connection variables
CLICK_HOUSE_URL=http://127.0.0.1:8123
CLICK_HOUSE_USER=default
CLICK_HOUSE_PASSWORD=
CLICK_HOUSE_DATABASE=novu-local
# Cloudflare Scheduler (for delayed job scheduling)
SCHEDULER_URL=
SCHEDULER_API_KEY=
SCHEDULER_CALLBACK_API_KEY=
# When using `pnpm dev:portless`, scripts/portless-dev-env.mjs resolves these at
# runtime via `portless get` (worktree-prefixed and proxy-port aware):
# API_ROOT_URL, FRONT_BASE_URL, DASHBOARD_URL, BETTER_AUTH_BASE_URL
# It also sets NODE_EXTRA_CA_CERTS to ~/.portless/ca.pem so Node trusts portless HTTPS
# (`portless trust` is browser-only). Used by API and worker start:portless.
#
# Local dev preferences: `.novu-dev.local.json` (gitignored, created on first `pnpm dev:portless`)
# Reconfigure: `pnpm dev:config` or mprocs → DEV CONFIG
# Ngrok for agent webhooks/OAuth is configured there (random URL or reserved domain)
# Public URL when ngrok is on: mprocs `PORTLESS URLS` tab, or `pnpm portless:ngrok:url`
# One-off overrides: PORTLESS_NGROK=1|0 PORTLESS_NGROK_DOMAIN=https://my-api.ngrok.app
#
# Run `PORTLESS=0 pnpm start:api:dev` to bypass the proxy without uninstalling.