Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
302 lines (264 loc) · 14.5 KB
/
Copy path.env.example
File metadata and controls
302 lines (264 loc) · 14.5 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
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
# Environment that the agent will run in.
ENV=local
# URL validation (SSRF protection) is off by default so Skyvern can reach internal and local hosts without setup.
# Set true to refuse loopback, private-network and cloud-metadata addresses, e.g. when untrusted users can run workflows.
# ENABLE_URL_VALIDATION=true
# Browser streaming mode: "cdp" for local browser streaming, "vnc" for VNC streaming.
# Quickstart writes "cdp" for new local installs; app code falls back to "vnc" if unset.
BROWSER_STREAMING_MODE=cdp
# LLM Provider Configurations:
# ENABLE_OPENAI: Set to true to enable OpenAI as a language model provider.
ENABLE_OPENAI=false
# OPENAI_API_KEY: Your OpenAI API key for accessing models like GPT-4.
OPENAI_API_KEY=""
# OPENAI_API_BASE: Your OpenAI API Base url. Optional.
# OPENAI_API_BASE=""
# OPENAI_ORGANIZATION: Your OpenAI org-id. Optional.
# OPENAI_ORGANIZATION=""
# ENABLE_XAI: Set to true to enable xAI Grok as a language model provider.
ENABLE_XAI=false
# XAI_API_KEY: Your xAI API key for accessing Grok models.
XAI_API_KEY=""
# XAI_API_BASE: The base URL for xAI's API.
XAI_API_BASE="https://api.x.ai/v1"
# XAI_REASONING_EFFORT: Optional reasoning effort for supported Grok models: low, medium, or high.
XAI_REASONING_EFFORT="medium"
# ENABLE_ANTHROPIC: Set to true to enable Anthropic as a language model provider.
ENABLE_ANTHROPIC=false
# ANTHROPIC_API_KEY: Your Anthropic API key for accessing models like Claude-3, Claude-4, and Claude-4.5.
ANTHROPIC_API_KEY=""
# ENABLE_AZURE: Set to true to enable Azure as a language model provider.
ENABLE_AZURE=false
# AZURE_DEPLOYMENT: Your Azure deployment name for accessing specific models.
AZURE_DEPLOYMENT=""
# AZURE_API_KEY: Your API key for accessing Azure's language models.
AZURE_API_KEY=""
# AZURE_API_BASE: The base URL for Azure's API.
AZURE_API_BASE=""
# AZURE_API_VERSION: The version of Azure's API to use.
AZURE_API_VERSION=""
ENABLE_AZURE_GPT4O_MINI=false
AZURE_GPT4O_MINI_DEPLOYMENT=""
AZURE_GPT4O_MINI_API_KEY=""
AZURE_GPT4O_MINI_API_BASE=""
AZURE_GPT4O_MINI_API_VERSION=""
# Azure GPT-5 Model Configurations
ENABLE_AZURE_GPT5=false
AZURE_GPT5_DEPLOYMENT="gpt-5"
AZURE_GPT5_API_KEY=""
AZURE_GPT5_API_BASE=""
AZURE_GPT5_API_VERSION="2025-01-01-preview"
ENABLE_AZURE_GPT5_MINI=false
AZURE_GPT5_MINI_DEPLOYMENT="gpt-5-mini"
AZURE_GPT5_MINI_API_KEY=""
AZURE_GPT5_MINI_API_BASE=""
AZURE_GPT5_MINI_API_VERSION="2025-01-01-preview"
ENABLE_AZURE_GPT5_NANO=false
AZURE_GPT5_NANO_DEPLOYMENT="gpt-5-nano"
AZURE_GPT5_NANO_API_KEY=""
AZURE_GPT5_NANO_API_BASE=""
AZURE_GPT5_NANO_API_VERSION="2025-01-01-preview"
# ENABLE_GEMINI: Set to true to enable Gemini as a language model provider.
ENABLE_GEMINI=false
# GEMINI_API_KEY: Your Gemini API key for accessing models like Gemini 2.5 Pro.
GEMINI_API_KEY=""
# ENABLE_NOVITA: Set to true to enable Novita AI as a language model provider.
ENABLE_NOVITA=false
# NOVITA_API_KEY: Your Novita AI API key.
NOVITA_API_KEY=""
# ENABLE_VOLCENGINE: Set to true to enable Volcengine(ByteDance Doubao) as a language model provider.
ENABLE_VOLCENGINE=false
# VOLCENGINE_API_KEY: Your Volcengine(ByteDance Doubao) API key.
VOLCENGINE_API_KEY=""
# VOLCENGINE_API_BASE: The base URL for Volcengine(ByteDance Doubao) API.
VOLCENGINE_API_BASE="https://ark.cn-beijing.volces.com/api/v3"
# ENABLE_YUTORI: Set to true to enable the Yutori Navigator computer-use model.
ENABLE_YUTORI=false
# YUTORI_API_KEY: Your Yutori API key.
YUTORI_API_KEY=""
# YUTORI_API_BASE: The base URL for the Yutori API.
YUTORI_API_BASE="https://api.yutori.com/v1"
# YUTORI_MODEL: The Yutori model to use.
YUTORI_MODEL="n1.5-latest"
# YUTORI_TOOL_SET: Tool set for Navigator. Options: "" (default core), "browser_tools_core-20260403", "browser_tools_expanded-20260403".
YUTORI_TOOL_SET=""
# LLM_KEY: The chosen language model to use. This should be one of the models
# provided by the enabled LLM providers (e.g., OPENAI_GPT5_5, OPENAI_GPT5_4,
# OPENAI_GPT6_ASTRA, OPENAI_GPT6_SOL, OPENAI_GPT6_1_SOL, OPENAI_GPT6_LUNA,
# OPENAI_GPT6_ASTRA_FLEX_WITH_FALLBACK, OPENAI_GPT6_SOL_FLEX_WITH_FALLBACK,
# OPENAI_GPT6_1_SOL_FLEX_WITH_FALLBACK,
# OPENAI_GPT6_LUNA_FLEX_WITH_FALLBACK, ANTHROPIC_CLAUDE5.5_OPUS,
# BEDROCK_ANTHROPIC_CLAUDE5.5_OPUS_INFERENCE_PROFILE,
# BEDROCK_ANTHROPIC_CLAUDE5.5_OPUS_WITH_FALLBACK, ANTHROPIC_CLAUDE5.5_SONNET,
# BEDROCK_ANTHROPIC_CLAUDE5.5_SONNET_INFERENCE_PROFILE,
# XAI_GROK_4_5, ANTHROPIC_CLAUDE5_OPUS, ANTHROPIC_CLAUDE5.1_FABLE,
# ANTHROPIC_CLAUDE5_FABLE, ANTHROPIC_CLAUDE4.7_OPUS,
# ANTHROPIC_CLAUDE4.6_SONNET, GEMINI_3_PRO,
# BEDROCK_ANTHROPIC_CLAUDE5_OPUS_INFERENCE_PROFILE,
# BEDROCK_ANTHROPIC_CLAUDE5_OPUS_WITH_FALLBACK,
# BEDROCK_ANTHROPIC_CLAUDE5_FABLE_INFERENCE_PROFILE,
# BEDROCK_ANTHROPIC_CLAUDE5_FABLE_WITH_FALLBACK,
# BEDROCK_ANTHROPIC_CLAUDE5.1_FABLE_INFERENCE_PROFILE,
# BEDROCK_ANTHROPIC_CLAUDE5.1_FABLE_WITH_FALLBACK).
# See docs: https://www.skyvern.com/docs/self-hosted/llm-configuration
LLM_KEY=""
# a cheaper LLM providers to help finishing some small tasks, like custom selection or svg conversion. If empty, it will be the same as LLM_KEY
SECONDARY_LLM_KEY=""
# ENFORCE_LLM_HARD_DEADLINE: On the direct AsyncOpenAI client path (OpenRouter, custom keys,
# Copilot-style endpoints), cancel a request once it outlives the timeout budget it was given.
# The provider timeout only bounds the gap between reads, so a stalled provider can otherwise hold a
# worker indefinitely. Other LLM paths (litellm router, Anthropic, UI-TARS) are not yet covered.
# Set to false to restore the old unbounded behavior on the covered path.
ENFORCE_LLM_HARD_DEADLINE=true
# LLM_HARD_DEADLINE_GRACE_SECONDS: Seconds allowed on top of that budget before the request is cancelled.
LLM_HARD_DEADLINE_GRACE_SECONDS=10
# Web browser configuration for scraping:
# BROWSER_TYPE: Can be either "chromium-headless" or "chromium-headful".
BROWSER_TYPE="chromium-headful"
# BROWSER_REMOTE_DEBUGGING_HOST_HEADER: Optional Host header for cdp-connect.
# Windows chrome://inspect Docker bridges may need this set to 127.0.0.1:<chrome-port>.
BROWSER_REMOTE_DEBUGGING_HOST_HEADER=
# BROWSER_CDP_CONNECT_TIMEOUT_MS: Timeout for cdp-connect startup/approval in milliseconds.
BROWSER_CDP_CONNECT_TIMEOUT_MS=120000
# MAX_SCRAPING_RETRIES: Number of times to retry scraping a page before giving up, currently set to 0.
MAX_SCRAPING_RETRIES=0
# VIDEO_PATH: Path to the directory where videos will be saved.
VIDEO_PATH=./videos
# BROWSER_ACTION_TIMEOUT_MS: Timeout for browser actions in milliseconds.
BROWSER_ACTION_TIMEOUT_MS=5000
# Agent run configuration:
# MAX_STEPS_PER_RUN: Maximum number of steps to execute per run unless the agent finishes with a terminal state (last step or error).
MAX_STEPS_PER_RUN=50
# RUN_HEARTBEAT_TIMEOUT_MINUTES: Minutes without a heartbeat before a server fails a run and sends its webhook or starts a policy retry.
# Applies when the API server executes runs itself (the default). The same server after restart or another server can act.
# Allowed values: 0 (off) or 2 to 1440. Servers that share a database must use the same value.
RUN_HEARTBEAT_TIMEOUT_MINUTES=30
# Logging and database configuration:
# LOG_LEVEL: Control log level (e.g., INFO, DEBUG).
LOG_LEVEL=INFO
# DATABASE_STRING: Database connection string.
DATABASE_STRING="postgresql+psycopg://skyvern@localhost/skyvern"
# If you are using Windows use this DATABASE_STRING.
# DATABASE_STRING="postgresql+asyncpg://skyvern@localhost/skyvern"
# PORT: Port to run the agent on.
PORT=8000
# API_LIMIT_CONCURRENCY: uvicorn answers 503 without dispatching to ASGI once open connections
# or in-flight requests reach this. Counts idle keep-alives and long-lived /stream sockets, so
# size it against concurrent connections per process. Leave empty or set 0 for no limit.
# API_LIMIT_CONCURRENCY=512
# Analytics configuration:
# ANALYTICS_ID: Distinct analytics ID (a UUID is generated if left blank).
ANALYTICS_ID="anonymous"
# 1Password Integration
# OP_SERVICE_ACCOUNT_TOKEN: API token for 1Password integration
OP_SERVICE_ACCOUNT_TOKEN=""
# =============================================================================
# SKYVERN CREDENTIAL VAULT CONFIGURATION
# =============================================================================
# Built-in encrypted local vault used by default by the OSS Docker Compose setup.
# Docker also sets ENABLE_LOCAL_CREDENTIAL_VAULT=true and persists this under /data/credential_vault.
CREDENTIAL_VAULT_TYPE=skyvern
ENABLE_LOCAL_CREDENTIAL_VAULT=true
# LOCAL_CREDENTIAL_VAULT_PATH=/data/credential_vault
# Production self-hosters should set LOCAL_CREDENTIAL_VAULT_KEY from an external secret store.
# If unset, Skyvern generates .fernet_key inside LOCAL_CREDENTIAL_VAULT_PATH; backups or host-dir
# exposure of that directory include both encrypted items and the key needed to decrypt them.
# LOCAL_CREDENTIAL_VAULT_KEY=
# The OSS Docker volumes for browser_sessions/ and downloads/ can contain plaintext cookies,
# session tokens, and downloaded files. Treat them as sensitive and exclude them from casual backups.
# =============================================================================
# SKYVERN AT-REST ENCRYPTION
# =============================================================================
# Required by the Google integrations (see docs/developers/self-hosted/google-integrations.mdx);
# OAuth refresh tokens are refused rather than stored in plaintext.
# Generate the key with `openssl rand -base64 32`. Skyvern refuses to start when
# ENABLE_ENCRYPTION=true and the key is empty or still the "fillmein" placeholder.
# ENCRYPTOR_AES_SALT/ENCRYPTOR_AES_IV are optional and derived from the key when unset;
# rotating any of these values makes already-stored credentials undecryptable.
# ENABLE_ENCRYPTION=true
# ENCRYPTOR_AES_SECRET_KEY=
# ENCRYPTOR_AES_SALT=
# ENCRYPTOR_AES_IV=
# Enable recording skyvern logs as artifacts
ENABLE_LOG_ARTIFACTS=false
# =============================================================================
# SKYVERN BITWARDEN CONFIGURATION
# =============================================================================
# Set CREDENTIAL_VAULT_TYPE=bitwarden to use Bitwarden or vaultwarden instead
# of the built-in Skyvern credential vault.
# Your organization ID in official Bitwarden server or vaultwarden (if using organizations)
SKYVERN_AUTH_BITWARDEN_ORGANIZATION_ID=your-org-id-here
# These should match the values for bitwarden cli server for consistency
SKYVERN_AUTH_BITWARDEN_MASTER_PASSWORD=your-master-password-here
SKYVERN_AUTH_BITWARDEN_CLIENT_ID=user.your-client-id-here
SKYVERN_AUTH_BITWARDEN_CLIENT_SECRET=your-client-secret-here
# The CLI server will run on localhost:8002 by default
# Optional, because by default Bitwarden is used directly
# BITWARDEN_SERVER=http://localhost
# BITWARDEN_SERVER_PORT=8002
# =============================================================================
# OPTIONAL: ADDITIONAL SKYVERN CONFIGURATION
# =============================================================================
# If you need to override the default Bitwarden server settings in Skyvern
# These will be automatically set by the Docker Compose, but you can override them here
# Maximum number of retries for Bitwarden operations
# BITWARDEN_MAX_RETRIES=3
# Timeout in seconds for Bitwarden operations
# BITWARDEN_TIMEOUT_SECONDS=60
# Shared Redis URL used by any service that needs Redis (pub/sub, cache, etc.)
# REDIS_URL=redis://localhost:6379/0
# Notification registry type: "local" (default, in-process) or "redis" (multi-pod)
# NOTIFICATION_REGISTRY_TYPE=local
# Optional: override Redis URL specifically for notifications (falls back to REDIS_URL)
# NOTIFICATION_REDIS_URL=
# REDIS_URL=redis://localhost:6379/0
# =============================================================================
# OPTIONAL: GCP SELF-HOSTED DEPLOYMENT
# =============================================================================
# Uncomment to run Skyvern on Google Cloud with GCS storage and Secret Manager
# credentials. Auth uses Application Default Credentials (Workload Identity on
# GKE, or GOOGLE_APPLICATION_CREDENTIALS pointing at a service-account key).
# Store artifacts/screenshots/browser sessions/uploads in Google Cloud Storage
# SKYVERN_STORAGE_TYPE=gcs
# GCS_PROJECT_ID=your-gcp-project-id
# GCS_BUCKET_ARTIFACTS=skyvern-artifacts
# GCS_BUCKET_SCREENSHOTS=skyvern-screenshots
# GCS_BUCKET_BROWSER_SESSIONS=skyvern-browser-sessions
# GCS_BUCKET_UPLOADS=skyvern-uploads
# Service account that signs GCS download URLs; required only under Workload
# Identity, where the runtime SA has no signing key of its own.
# GCS_SIGNER_SA_EMAIL=skyvern@your-gcp-project-id.iam.gserviceaccount.com
# Store workflow credentials in GCP Secret Manager instead of Bitwarden
# CREDENTIAL_VAULT_TYPE=gcp
# GCP_CREDENTIAL_VAULT_PROJECT_ID=your-gcp-project-id
# Secret-id prefix; must be unique per Skyvern deployment sharing a project
# GCP_CREDENTIAL_VAULT_PREFIX=skyvern-cred-
# =============================================================================
# HEADLESS GHOST BLOG (server/build scope)
# =============================================================================
# GHOST_URL: server/build only. Approved bases are https://skyvern.ghost.io/ghost
# (root install) and https://skyvern.ghost.io/blog/ghost (the old /blog subdirectory install).
GHOST_URL=
# GHOST_CONTENT_API_KEY: server/build only. Ghost Content API key; exactly 26
# hexadecimal characters. Rotate in Ghost Admin and the deployment environment together.
GHOST_CONTENT_API_KEY=
# GHOST_ADMIN_API_KEY: server-only preview credential. Format is id:64 hex
# characters. Rotate in Ghost Admin and the deployment environment together.
GHOST_ADMIN_API_KEY=
# GHOST_PREVIEW_TOKEN: server-only HMAC secret for preview grants. Minimum is
# 32 random bytes: 64 hex characters or at least 43 strong printable/base64url
# characters. Rotation immediately invalidates existing preview grants.
GHOST_PREVIEW_TOKEN=
# GHOST_WEBHOOK_SECRET: server-only HMAC secret for Ghost webhook signatures.
# Use the same 32-random-byte minimum. Rotate Ghost and this environment together.
GHOST_WEBHOOK_SECRET=
# VERCEL_DEPLOY_HOOK_URL: server/workflow-only Vercel deploy-hook URL. Never
# expose it to public builds or dependency installation. Rotate in Vercel and
# the production environment together.
VERCEL_DEPLOY_HOOK_URL=
# The reconciliation workflow receives GITHUB_TOKEN, GITHUB_API_URL,
# GITHUB_REPOSITORY, and GITHUB_RUN_ID from GitHub Actions at step scope only.
# Do not copy them into a local .env file. REVISION_OVERRIDE is a reviewed,
# operator-supplied workflow input, not a persistent secret.
# VITE_GHOST_CONTENT_API_KEY, VITE_GHOST_ADMIN_API_KEY, VITE_GHOST_PREVIEW_TOKEN,
# VITE_GHOST_WEBHOOK_SECRET, and VITE_VERCEL_DEPLOY_HOOK_URL are forbidden.