Environment Variables
Required
Variable | Description |
|---|---|
| JWT signing key (auto-generated by install script) |
| Fernet key for encrypting stored credentials (LLM API keys, DB passwords) |
| PostgreSQL password |
| SMTP server hostname (e.g., |
| SMTP port (typically |
| SMTP username |
| SMTP password or API key |
| Email "from" domain (e.g., |
| Admin user created on first startup |
| Your domain for Caddy auto-HTTPS (e.g., |
Application
Variable | Default | Description |
|---|---|---|
|
| Enable verbose logging |
| (none) | Comma-separated allowed origins |
|
| JWT access token lifetime |
|
| Refresh token lifetime |
|
| OTP code validity |
|
| Wrong OTP guesses before invalidation |
Rate Limiting
Variable | Default | Description |
|---|---|---|
|
| Max login requests per IP per window |
|
| Max login requests per email per window |
|
| Max OTP verify requests per IP per window |
|
| Rate limit window (15 minutes) |
Function Execution
Variable | Default | Description |
|---|---|---|
|
| Max execution time in seconds |
|
| Memory limit in MB |
|
| CPU cores per function |
|
| Disk storage limit |
|
| Idle container cleanup (seconds) |
|
| Allow |
| (all) | Comma-separated package whitelist |
Sandbox Containers
Variable | Default | Description |
|---|---|---|
|
| Containers to pre-create |
|
| Maximum sandbox containers |
|
| Replenish when idle drops below this |
|
| Recycle after N executions |
Agent Processing
Variable | Default | Description |
|---|---|---|
|
| Max consecutive tool-call rounds per message |
|
| Messages loaded for conversation context |
|
| Agent job timeout (seconds) |
|
| Code execution timeout (seconds) |
Scaling
Variable | Default | Description |
|---|---|---|
|
| Backend API replicas |
|
| Workers per backend replica |
|
| Function queue worker replicas |
|
| Agent queue worker replicas |
|
| Concurrent functions per worker |
|
| Concurrent agent jobs per worker |
Resource Limits (Docker)
Variable | Default | Description |
|---|---|---|
|
| Max CPU cores for backend container |
|
| Max RAM for backend container |
|
| Guaranteed CPU cores |
|
| Guaranteed RAM |
Database
Variable | Default | Description |
|---|---|---|
|
| PostgreSQL user |
|
| PostgreSQL host |
|
| PostgreSQL port |
|
| Database name |
| (built from above) | Full connection string (overrides individual vars) |
|
| Redis connection string |
ClickHouse (Optional)
Variable | Default | Description |
|---|---|---|
|
| ClickHouse host |
|
| ClickHouse HTTP port |
|
| ClickHouse user |
| (empty) | ClickHouse password |
|
| ClickHouse database |
|
| Data retention (no S3) |
|
| Hot retention (with S3) |
| (none) | S3 endpoint for tiered storage |
| (none) | S3 bucket name |
| (none) | S3 access key |
| (none) | S3 secret key |
|
| S3 region |
Declarative Config
Variable | Default | Description |
|---|---|---|
| (none) | Path to YAML config file |
|
| Apply config file on startup |
The simplest useful setup requires the required variables plus a configured LLM provider. Everything else (functions, skills, state, etc.) is optional and can be added incrementally.
Previous
deployment
Next
introduction