Repository navigation
Expand file tree
/
Copy path.env.hub.example
More file actions
141 lines (129 loc) · 6.6 KB
/
Copy path.env.hub.example
File metadata and controls
141 lines (129 loc) · 6.6 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
# Builder hub environment. Copy this to .env.hub (never committed) and fill in every
# line marked "Secret" with its own random value: openssl rand -hex 32
# --- Docker Compose ----------------------------------------------------------
# The published images deploy/compose.yml runs: rc (newest release candidate),
# latest (newest stable), main (every merge), an exact version or a commit sha.
BUILDER_VERSION=rc
# --- Database (required) -----------------------------------------------------
# Postgres 17. Docker Compose starts one with these values.
DB_HOST=127.0.0.1
DB_PORT=5433
DB_USER=corbits_builder
# Secret.
DB_PASSWORD=
DB_NAME=corbits_builder
DB_SSL=false
# Optional: one connection URL that replaces DB_HOST, DB_PORT, DB_USER, DB_PASSWORD
# and DB_NAME for `bun run dev` (?sslmode=require for TLS).
# DATABASE_URL=postgres://user:password@host:5432/dbname
# Optional: separate credentials for `bun run db:migrate`.
# MIGRATION_DATABASE_URL=
# --- Hub secrets (required) --------------------------------------------------
# Secret.
BETTER_AUTH_SECRET=
# Secret: 64 hex characters.
CREDENTIAL_ENCRYPTION_KEY=
# Secret: 64 hex characters, different from the key above.
PRINCIPAL_KEY_ENCRYPTION_KEY=
# --- Hub server --------------------------------------------------------------
# Builder's port: the hub with `bun run dev`, or what Docker Compose publishes.
PORT=8000
# The ports the live preview serves each open project's app on, one per project.
# Docker Compose publishes this range (default 4100-4119) beside PORT; with
# `bun run dev` leave it unset and any free port serves.
# LIVE_APP_PORTS=4100-4119
# The address people sign in at. Defaults to http://localhost:$PORT; set it when
# people reach Builder at another address, such as a domain.
# BETTER_AUTH_BASE_URL=https://builder.example.com
HOST=127.0.0.1
# Run history, workflow packages and sidecar state. A persistent volume in production.
HUB_DATA_DIR=data/hub
# Optional: a built UI (apps/web/dist) for the hub to serve on its own origin. The image sets it.
# HUB_WEB_DIR=
# Optional: the user-reachable hub origin when a proxy fronts it. Defaults to BETTER_AUTH_BASE_URL.
# HUB_PUBLIC_URL=https://builder.example.com
# Optional: the origin sidecars call the hub API at. Defaults to BETTER_AUTH_BASE_URL.
# HUB_API_ORIGIN=https://builder.example.com
# Optional: the UI origin allowed to send hub credentials cross-origin. Defaults to
# BETTER_AUTH_BASE_URL; `bun run dev` sets it to http://localhost:$UI_PORT.
# UI_PUBLIC_URL=https://app.example.com
# --- Model providers (optional) ----------------------------------------------
# Keys set here are shared with every workspace on this server. Without any, people
# add their own under Settings -> Providers. With one provider, projects run on its
# profile; with several, each person picks one under Settings -> Profiles
# (docs/DEV.md#model-profile-choice). Providers and models: apps/hub/src/config/models.ts.
# ANTHROPIC_API_KEY=
# OPENAI_API_KEY=
# GEMINI_API_KEY=
# XAI_API_KEY=
# false ignores the keys above, so each workspace connects its own provider.
# SERVER_PROVIDER_KEYS=true
# --- Sign-in (optional) ------------------------------------------------------
# Email: magic links, password reset and address verification. Set both.
# SMTP_URL=smtps://user:password@mail.example.com:465
# EMAIL_FROM=Builder <builder@example.com>
# Google sign-in. Set both.
# GOOGLE_CLIENT_ID=
# GOOGLE_CLIENT_SECRET=
# Comma-separated addresses or @domain entries allowed to sign in. Needs SMTP or Google.
# AUTH_ALLOWED_EMAILS=you@example.com,@example.com
# Development only: a loopback Google emulator (bun run auth:emulate) in place of real Google credentials.
# GOOGLE_EMULATE_URL=http://127.0.0.1:59099
# --- Logging (optional) ------------------------------------------------------
# Lowest level written: trace, debug, info, warning, error or fatal. Defaults to info.
# LOG_LEVEL=info
# Logs always go to stdout as JSON lines. Setting an OTLP endpoint also exports
# them over OpenTelemetry (protocol from OTEL_EXPORTER_OTLP_PROTOCOL, default http/json).
# OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
# OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=http://localhost:4318/v1/logs
# OTEL_EXPORTER_OTLP_HEADERS=authorization=Bearer <token>
# Defaults to the product name.
# OTEL_SERVICE_NAME=
# --- Product wording -----------------------------------------------------------
# true shows PRODUCT_NAME and PRODUCT_HELLO_WORDING in place of the default "Builder"
# and "Hello from Builder".
PRODUCT_CONFIGURED_NAMING=false
PRODUCT_NAME=
PRODUCT_HELLO_WORDING=
# --- Sidecars ----------------------------------------------------------------
# Agents run in sidecars. By default the hub starts them as local processes.
# Most local sidecars running at once.
# SIDECAR_LOCAL_MAX_ACTIVE=16
# Longest wait, in milliseconds, for a project's coordinator to start. Raise it on a slow machine; it must stay under 300000.
# COORDINATOR_START_TIMEOUT_MS=60000
# Optional Docker sidecars. deploy/compose.docker-sidecars.yml sets them for the hub
# container, with the published sidecar image at BUILDER_VERSION. From source, build
# it with `bun run docker:sidecar` and set:
# SIDECAR_IMAGE=corbits-builder-sidecar:local
# SIDECAR_DOCKER_HOST=unix:///var/run/docker.sock
# The group owning the Docker socket for deploy/compose.docker-sidecars.yml: 0 on Docker Desktop.
# DOCKER_SOCKET_GID=0
# A stable id for this hub on the Docker daemon. Defaults to the hub's own id.
# SIDECAR_DOCKER_HUB_ID=
# The hub WebSocket URL Docker sidecars dial, when the default is not reachable from them.
# SIDECAR_HUB_WS_URL=ws://host.docker.internal:8000/api/sidecars/ws
# Per-container memory (bytes), process and CPU (billionths of a CPU) limits.
# SIDECAR_MEMORY_BYTES=2147483648
# SIDECAR_PIDS=1024
# SIDECAR_NANO_CPUS=2000000000
# --- Workflow lifecycle defaults ---------------------------------------------
# Lifetime and disconnect windows must be positive; retention may be zero.
# WORKFLOW_DEFAULT_MAX_LIFETIME=7d
# WORKFLOW_DEFAULT_MAX_DISCONNECTED=15m
# WORKFLOW_DEFAULT_RETENTION_COMPLETED=30m
# WORKFLOW_DEFAULT_RETENTION_FAILED=24h
# WORKFLOW_DEFAULT_RETENTION_CANCELLED=1h
# --- Setup identity (bun run auth:bootstrap) ---------------------------------
# A dedicated machine account, never a person's browser session.
BOOTSTRAP_EMAIL=
BOOTSTRAP_PASSWORD=
BOOTSTRAP_NAME=Setup agent
BOOTSTRAP_TENANT_SLUG=kickoff
BOOTSTRAP_TENANT_NAME=Kickoff
# --- Tests -------------------------------------------------------------------
# `bun run test:e2e` database, separate from the runtime one (deploy/compose.test.yml).
E2E_DB_HOST=127.0.0.1
E2E_DB_PORT=5434
E2E_DB_USER=corbits_builder_test
# Secret, needed only for `bun run test:e2e`.
E2E_DB_PASSWORD=