Repository navigation
Expand file tree
/
Copy path.env.schema
More file actions
286 lines (268 loc) · 11.9 KB
/
Copy path.env.schema
File metadata and controls
286 lines (268 loc) · 11.9 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
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
# Local development defaults only. Deployed commands use injected environment variables.
# @defaultSensitive=true
# @defaultRequired=false
# ---
SESSION_SECRET=abcdef1234
MAGIC_LINK_SECRET=abcdef1234
ENCRYPTION_KEY=ae13021afef0819c3a307ad487071c06 # Must be a random 16 byte hex string. You can generate an encryption key by running `openssl rand -hex 16` in your terminal
MANAGED_WORKER_SECRET=abcdef1234 # Must match the supervisor's MANAGED_WORKER_SECRET
# @sensitive=false @type=url
LOGIN_ORIGIN=${APP_ORIGIN}
# @type=url
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/postgres?schema=public
# This sets the URL used for direct connections to the database and should only be needed in limited circumstances
# See: https://www.prisma.io/docs/reference/api-reference/prisma-schema-reference#fields:~:text=the%20shadow%20database.-,directUrl,-No
# @type=url
DIRECT_URL=${DATABASE_URL}
# Optional dedicated run-ops database. Set this only when running the runops Compose profile.
# @type=url
# @example=postgresql://postgres:postgres@localhost:5434/postgres?schema=public
RUN_OPS_DATABASE_URL=
# @sensitive=false @type=port
REMIX_APP_PORT=3030
# Dev-only: stream the webapp's logs over a local telnet/TCP socket (nc localhost 6767). Uncomment to enable.
# WEBAPP_TELNET_LOGS_PORT=6767
# @sensitive=false
APP_ENV=development
# @sensitive=false @type=url
APP_ORIGIN=http://localhost:${REMIX_APP_PORT}
# OIDC is disabled unless an HTTPS issuer origin is configured.
# @sensitive=false @type=url
OIDC_ISSUER_URL=
# Run tokens are disabled unless a separate HTTPS issuer origin is configured.
# @sensitive=false @type=url
RUN_TOKEN_ISSUER_URL=
# @sensitive=false @type=url
ELECTRIC_ORIGIN=http://localhost:3060
# @sensitive=false
NODE_ENV=development
# Clickhouse
# @type=url
CLICKHOUSE_URL=http://default:password@localhost:8123
# @type=url
RUN_REPLICATION_CLICKHOUSE_URL=${CLICKHOUSE_URL}
# @sensitive=false
RUN_REPLICATION_ENABLED=1
# LOGS_SEARCH_PROJECTOR_ENABLED=1
# LOGS_SEARCH_PROJECTOR_PREVIEW_ENABLED=1
# Store task run spans/traces in ClickHouse so the dashboard trace view is
# populated in local dev. The local stack is ClickHouse-backed (see above), so
# leaving this unset falls back to the "postgres" store and dev run traces show
# up empty even though the run itself appears.
# @sensitive=false
EVENT_REPOSITORY_DEFAULT_STORE=clickhouse_v2
# Set this to UTC because Node.js uses the system timezone
# @sensitive=false
TZ="UTC"
# Redis
# @sensitive=false
REDIS_HOST="localhost"
# @sensitive=false @type=port
REDIS_PORT="6379"
# @sensitive=false
REDIS_TLS_DISABLED="true"
# @sensitive=false @type=url
DEV_OTEL_EXPORTER_OTLP_ENDPOINT=${APP_ORIGIN}/otel
# @sensitive=false
DEV_OTEL_BATCH_PROCESSING_ENABLED="0"
# Realtime streams v2 (Sessions, chat.agent, large stream backfills) backed
# by S2 (https://s2.dev). The `s2` service in docker/docker-compose.yml runs
# the open-source s2-lite binary and pre-creates a basin named `trigger-local`
# (see docker/config/s2-spec.json). Comment these out to fall back to v1
# (Redis-only) streams; Sessions and chat.agent then become unavailable.
# @sensitive=false
REALTIME_STREAMS_S2_BASIN=trigger-local
REALTIME_STREAMS_S2_ACCESS_TOKEN=ignored
# @sensitive=false @type=url
REALTIME_STREAMS_S2_ENDPOINT=http://localhost:4566/v1
# @sensitive=false
REALTIME_STREAMS_S2_SKIP_ACCESS_TOKENS=true
# @sensitive=false
REALTIME_STREAMS_DEFAULT_VERSION=v2
# Running multiple instances side by side (worktrees, branch experiments)
#
# Every host port in docker/docker-compose.yml is `${VAR:-default}` and the
# project name comes from `COMPOSE_PROJECT_NAME`. To stand up a second stack
# alongside the default one, uncomment the block below in this clone's `.env.local`
# (pick any offset that doesn't clash with anything else running), then update
# the URL/PORT vars further up to match. Default values are commented for
# reference.
#
# --- core (pnpm run docker) ---
# COMPOSE_PROJECT_NAME=triggerdotdev-docker-alt
# CONTAINER_PREFIX=alt-
# POSTGRES_HOST_PORT=15432 # default 5432
# REDIS_HOST_PORT=16379 # default 6379
# ELECTRIC_HOST_PORT=13060 # default 3060
# MINIO_API_HOST_PORT=19005 # default 9005
# MINIO_CONSOLE_HOST_PORT=19006 # default 9006
# CLICKHOUSE_HTTP_HOST_PORT=18123 # default 8123
# CLICKHOUSE_TCP_HOST_PORT=19000 # default 9000
# S2_HOST_PORT=14566 # default 4566
# REMIX_APP_PORT=13030 # default 3030
# --- extras (only needed if you also run `pnpm run docker:full`) ---
# ELECTRIC_SHARD_1_HOST_PORT=13061 # default 3061
# CH_UI_HOST_PORT=15521 # default 5521
# TOXIPROXY_PROXY_HOST_PORT=40303 # default 30303
# TOXIPROXY_API_HOST_PORT=18474 # default 8474
# NGINX_H2_HOST_PORT=18443 # default 8443
# OTEL_GRPC_HOST_PORT=14317 # default 4317
# OTEL_HTTP_HOST_PORT=14318 # default 4318
# OTEL_PROMETHEUS_HOST_PORT=18889 # default 8889
# PROMETHEUS_HOST_PORT=19090 # default 9090
# GRAFANA_HOST_PORT=13001 # default 3001
# --- valkey cluster (only needed with COMPOSE_PROFILES=valkey-cluster) ---
# VALKEY_CLUSTER_1_HOST_PORT=17101 # default 7101, and 7102..7106 for _2.._6
# (and update DATABASE_URL / CLICKHOUSE_URL / REDIS_PORT / APP_ORIGIN /
# LOGIN_ORIGIN / ELECTRIC_ORIGIN / REALTIME_STREAMS_S2_ENDPOINT to match)
# When the domain is set to `localhost` the CLI deploy command will only --load the image by default and not --push it
# @sensitive=false
DEPLOY_REGISTRY_HOST=localhost:5000
# OPTIONAL VARIABLES
# This is used for validating emails that are allowed to log in. Every email that do not match this regex will be rejected.
# WHITELISTED_EMAILS="^(authorized@yahoo\.com|authorized@gmail\.com)$"
# Accounts with these emails will get global admin rights. This grants access to the admin UI.
# ADMIN_EMAILS="^(admin@example\.com|another-admin@example\.com)$"
# This is used for logging in via GitHub. You can leave these commented out if you don't want to use GitHub for authentication.
# AUTH_GITHUB_CLIENT_ID=
# AUTH_GITHUB_CLIENT_SECRET=
# Configure an email transport to allow users to sign in to Trigger.dev via a Magic Link.
# If none are configured, emails will print to the console instead.
# Uncomment one of the following blocks to allow delivery of
# Resend
### Visit https://resend.com, create an account and get your API key. Then insert it below along with your From and Reply To email addresses. Visit https://resend.com/docs for more information.
# EMAIL_TRANSPORT=resend
# FROM_EMAIL=
# REPLY_TO_EMAIL=
# RESEND_API_KEY=
# Generic SMTP
### Enter the configuration provided by your mail provider. Visit https://nodemailer.com/smtp/ for more information
### SMTP_SECURE = false will use STARTTLS when connecting to a server that supports it (usually port 587)
# EMAIL_TRANSPORT=smtp
# FROM_EMAIL=
# REPLY_TO_EMAIL=
# SMTP_HOST=
# SMTP_PORT=587
# SMTP_SECURE=false
# SMTP_USER=
# SMTP_PASSWORD=
# AWS Simple Email Service
### Authentication is configured using the default Node.JS credentials provider chain (https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-credential-providers/#fromnodeproviderchain)
# EMAIL_TRANSPORT=aws-ses
# FROM_EMAIL=
# REPLY_TO_EMAIL=
# CLOUD VARIABLES
POSTHOG_PROJECT_KEY=
# DEPOT_ORG_ID=<Depot org id>
# DEPOT_TOKEN=<Depot org token>
# DEV_OTEL_EXPORTER_OTLP_ENDPOINT="http://0.0.0.0:4318"
# These are needed for the object store (for handling large payloads/outputs)
#
# Default provider
# OBJECT_STORE_BASE_URL=http://localhost:9005
# OBJECT_STORE_BUCKET=packets
# OBJECT_STORE_ACCESS_KEY_ID=minioadmin
# OBJECT_STORE_SECRET_ACCESS_KEY=minioadmin
# OBJECT_STORE_REGION=us-east-1
# OBJECT_STORE_SERVICE=s3
#
# Deployment index snapshots (full index per deploy, required to promote a deployment).
# Optional: without these, snapshots go to the default object store above.
# DEPLOYMENT_INDEX_OBJECT_STORE_BASE_URL=http://localhost:9005
# DEPLOYMENT_INDEX_OBJECT_STORE_BUCKET=deployment-indexes
# DEPLOYMENT_INDEX_OBJECT_STORE_ACCESS_KEY_ID=minioadmin
# DEPLOYMENT_INDEX_OBJECT_STORE_SECRET_ACCESS_KEY=minioadmin
# DEPLOYMENT_INDEX_OBJECT_STORE_REGION=us-east-1
#
# OBJECT_STORE_DEFAULT_PROTOCOL=s3 # Only specify this if you're going to migrate object storage and set protocol values below
# Named providers (protocol-prefixed data) - optional for multi-provider support
# OBJECT_STORE_S3_BASE_URL=https://s3.amazonaws.com
# OBJECT_STORE_S3_ACCESS_KEY_ID=
# OBJECT_STORE_S3_SECRET_ACCESS_KEY=
# OBJECT_STORE_S3_REGION=us-east-1
# OBJECT_STORE_S3_SERVICE=s3
#
# OBJECT_STORE_R2_BASE_URL=https://{bucket}.{accountId}.r2.cloudflarestorage.com
# OBJECT_STORE_R2_ACCESS_KEY_ID=
# OBJECT_STORE_R2_SECRET_ACCESS_KEY=
# OBJECT_STORE_R2_REGION=auto
# OBJECT_STORE_R2_SERVICE=s3
# CHECKPOINT_THRESHOLD_IN_MS=10000
# These control the server-side internal telemetry
# INTERNAL_OTEL_TRACE_EXPORTER_URL=<URL to send traces to>
# INTERNAL_OTEL_TRACE_LOGGING_ENABLED=1
# INTERNAL_OTEL_TRACE_INSTRUMENT_PRISMA_ENABLED=0
# Alerts engine
# @sensitive=false
ALERTS_ENABLED=0
# @sensitive=false
ALERTS_QUERY_CONCURRENCY_LIMIT=2
# @sensitive=false
ALERT_FAILURE_RATE_MIN_VOLUME=10
# @sensitive=false
ALERT_SNAPSHOT_RANGE_SEC=7776000
# Alert delivery and engine tuning. Defaults shown; uncomment to override
# ALERT_EMAIL_TRANSPORT=resend # resend | smtp | aws-ses
# ALERT_FROM_EMAIL=
# ALERT_REPLY_TO_EMAIL=
# ALERT_RESEND_API_KEY=
# ALERT_SMTP_HOST=
# ALERT_SMTP_PORT=
# ALERT_SMTP_SECURE=
# ALERT_SMTP_USER=
# ALERT_SMTP_PASSWORD=
# ALERT_CHECKPOINT_LOOKBACK_SEC=3600
# ALERT_SEEN_RETENTION_SEC=604800
# ALERT_DELIVERY_MAX_ATTEMPTS=8
# ALERT_DELIVERY_MAX_AGE_HOURS=24
# Testing only: caps the alert evaluation cadence (seconds)
# ALERT_EVALUATION_CADENCE_CAP_SEC=
# ALERT_RATE_LIMITER_EMISSION_INTERVAL=2500
# ALERT_RATE_LIMITER_BURST_TOLERANCE=10000
# ALERT_RATE_LIMITER_REDIS_HOST= # Defaults to REDIS_HOST (same for the other ALERT_RATE_LIMITER_REDIS_* vars)
# ALERT_RATE_LIMITER_REDIS_READER_HOST=
# ALERT_RATE_LIMITER_REDIS_READER_PORT=
# ALERT_RATE_LIMITER_REDIS_PORT=
# ALERT_RATE_LIMITER_REDIS_USERNAME=
# ALERT_RATE_LIMITER_REDIS_PASSWORD=
# ALERT_RATE_LIMITER_REDIS_TLS_DISABLED=false
# ALERT_RATE_LIMITER_REDIS_CLUSTER_MODE_ENABLED=0
# ALERTS_WORKER_ENABLED=true # Defaults to WORKER_ENABLED
# ALERTS_WORKER_CONCURRENCY_WORKERS=2
# ALERTS_WORKER_CONCURRENCY_TASKS_PER_WORKER=10
# ALERTS_WORKER_POLL_INTERVAL=1000
# ALERTS_WORKER_IMMEDIATE_POLL_INTERVAL=100
# ALERTS_WORKER_CONCURRENCY_LIMIT=50
# ALERTS_WORKER_SHUTDOWN_TIMEOUT_MS=60000
# ALERTS_WORKER_LOG_LEVEL=info
# ALERTS_WORKER_REDIS_HOST= # Defaults to REDIS_HOST (same for the other ALERTS_WORKER_REDIS_* vars)
# ALERTS_WORKER_REDIS_READER_HOST=
# ALERTS_WORKER_REDIS_READER_PORT=
# ALERTS_WORKER_REDIS_PORT=
# ALERTS_WORKER_REDIS_USERNAME=
# ALERTS_WORKER_REDIS_PASSWORD=
# ALERTS_WORKER_REDIS_TLS_DISABLED=false
# ALERTS_WORKER_REDIS_CLUSTER_MODE_ENABLED=0
# ALERT_ENGINE_WORKER_ENABLED=true # Defaults to WORKER_ENABLED
# ALERT_ENGINE_WORKER_CONCURRENCY_WORKERS=1
# ALERT_ENGINE_WORKER_CONCURRENCY_TASKS_PER_WORKER=10
# ALERT_ENGINE_WORKER_CONCURRENCY_LIMIT=10
# ALERT_ENGINE_WORKER_POLL_INTERVAL_MS=1000
# ALERT_ENGINE_WORKER_IMMEDIATE_POLL_INTERVAL_MS=100
# ALERT_ENGINE_WORKER_SHUTDOWN_TIMEOUT_MS=60000
# ALERT_ENGINE_WORKER_LOG_LEVEL=info
# ALERT_ENGINE_WORKER_DISTRIBUTION_WINDOW_SECONDS=30
# ALERT_ENGINE_WORKER_EVAL_VISIBILITY_TIMEOUT_MS=120000
# ALERT_ENGINE_WORKER_REDIS_HOST= # Defaults to REDIS_HOST (same for the other ALERT_ENGINE_WORKER_REDIS_* vars)
# ALERT_ENGINE_WORKER_REDIS_READER_HOST=
# ALERT_ENGINE_WORKER_REDIS_READER_PORT=
# ALERT_ENGINE_WORKER_REDIS_PORT=
# ALERT_ENGINE_WORKER_REDIS_USERNAME=
# ALERT_ENGINE_WORKER_REDIS_PASSWORD=
# ALERT_ENGINE_WORKER_REDIS_TLS_DISABLED=false
# ALERT_ENGINE_WORKER_REDIS_CLUSTER_MODE_ENABLED=0
# Enable local observability stack (requires `pnpm run docker:full` to bring up otel-collector + prometheus + grafana)
# Uncomment these to send metrics to the local Prometheus via OTEL Collector:
# INTERNAL_OTEL_METRIC_EXPORTER_ENABLED=1
# INTERNAL_OTEL_METRIC_EXPORTER_URL=http://localhost:4318/v1/metrics
# INTERNAL_OTEL_METRIC_EXPORTER_INTERVAL_MS=15000