Skip to main content

Configuration

OrcFlows is configured entirely through environment variables, loaded from a .env file in the project root (via Viper). Copy .env.example to .env and adjust as needed. All values below have working local defaults — you only need to set what your workflows actually use.

App & server

VariableDefaultDescription
APP_ENVdevelopmentdevelopment or production. Affects logging and error verbosity.
SERVER_PORT3001Port the API server listens on.
GRPC_PORT:50051Port for the internal gRPC server.

Database & cache

VariableDefaultDescription
DATABASE_URLpostgres://goagents:goagents@localhost:5433/goagents?sslmode=disablePostgreSQL connection string. Stores tenants, users, workflows, executions metadata, secrets (encrypted), knowledge bases, and embeddings.
REDIS_URLredis://localhost:6380Used for caching and rate limiting.

Temporal (durable execution)

VariableDefaultDescription
TEMPORAL_HOST_PORTlocalhost:7233Temporal server address.
TEMPORAL_NAMESPACEdefaultTemporal namespace for this deployment.
TEMPORAL_TASK_QUEUEgoagents-mainTask queue the worker polls and the API enqueues to.
TEMPORAL_ENCRYPTION_KEY(none)Optional base64-encoded 32-byte AES-256 key (openssl rand -base64 32) to encrypt workflow payloads at rest in Temporal's datastore.

Auth (JWT)

VariableDefaultDescription
JWT_SECRET(must change)Signing secret for session JWTs. Must be 32+ characters in production — also used to derive the AES-256 key that encrypts secrets in Postgres.
JWT_EXPIRY_HOURS24Session token lifetime.

Observability

VariableDefaultDescription
OTEL_ENABLEDfalseEnable OpenTelemetry tracing/metrics export.
OTEL_EXPORTER_OTLP_ENDPOINThttp://localhost:4318OTLP collector endpoint.

LLM providers

LLM and Agent nodes can use credentials configured per-workflow via the Secrets UI, or fall back to platform-level keys:

VariableDescription
ANTHROPIC_API_KEYDefault Claude API key for LLM/Agent nodes and the AI Workflow Generator.
OPENAI_API_KEYDefault OpenAI API key.

OrcFlows also supports NVIDIA NIM (https://integrate.api.nvidia.com/v1) as a model provider — configure via a secret named for the connector rather than an env var. See AI Agents & Tools.

OAuth providers

OrcFlows ships first-class OAuth integrations for connectors and "Sign in with X". Each provider needs its own app registration with the provider's developer console, using the redirect URLs below (adjust the host for production).

Google (Gmail, Sheets, Calendar, Drive + Sign-in)

VariableDefaultDescription
GOOGLE_CLIENT_ID(none)OAuth client ID.
GOOGLE_CLIENT_SECRET(none)OAuth client secret.
GOOGLE_REDIRECT_URLhttp://localhost:3001/api/v1/oauth/google/callbackCallback for connecting Google connectors (Gmail, Sheets, Calendar, Drive).
GOOGLE_AUTH_REDIRECT_URLhttp://localhost:3001/api/v1/auth/google/callbackSeparate callback for "Sign in / up with Google" — register both redirect URIs with the same OAuth client.

Google tokens expire and are refreshed automatically using the stored refresh_token.

Notion

VariableDefaultDescription
NOTION_CLIENT_ID(none)OAuth client ID.
NOTION_CLIENT_SECRET(none)OAuth client secret.
NOTION_REDIRECT_URLhttp://localhost:3001/api/v1/oauth/notion/callbackCallback URL — workspace-level access, tokens never expire.

Slack

VariableDefaultDescription
SLACK_CLIENT_ID(none)OAuth client ID.
SLACK_CLIENT_SECRET(none)OAuth client secret.
SLACK_REDIRECT_URLhttp://localhost:3001/api/v1/oauth/slack/callbackCallback URL — issues a bot token (xoxb-...) that never expires.

All three providers share a single oauth_connections table. GET /api/v1/oauth/status reports whether each provider is configured, and the Settings → Connections tab shows a "Connect" button for each.

SSO (SAML/OIDC, Enterprise plan)

VariableDefaultDescription
SSO_REDIRECT_URLhttp://localhost:3001/api/v1/auth/sso/callbackCallback URL registered with your identity provider.
SSO_FRONTEND_URLhttp://localhost:5173Where users land after a successful SSO login.

SSO configuration itself (per-tenant IdP metadata) is managed via /api/v1/sso/config, restricted to the tenant owner, and gated behind the Enterprise plan (sso_enabled in plan limits).

GitHub

VariableDefaultDescription
GITHUB_TOKEN(none)Optional personal access token used by the GitHub connector to raise the unauthenticated API rate limit from 10 to 5,000 requests/hour.

Browser automation

VariableDefaultDescription
PLAYWRIGHT_WS_ENDPOINThttp://127.0.0.1:9222CDP WebSocket endpoint of a remote Chromium instance (the chromium container) used by browser-automation agent tools.
VariableDefaultDescription
WEAVIATE_URLhttp://localhost:8082Weaviate endpoint for enterprise-grade ANN vector search. By default, OrcFlows uses its own Postgres float4[] embeddings with a cosine_similarity SQL function — no extra service required.

Workspace file storage (S3 / MinIO)

VariableDefaultDescription
S3_ENDPOINThttp://localhost:9000S3-compatible endpoint. Leave empty to use real AWS S3.
S3_BUCKETgoagents-workspacesBucket for files generated/used during workflow runs (PDFs, screenshots, uploads).
S3_REGIONus-east-1Bucket region.
S3_ACCESS_KEY / S3_SECRET_KEYgoagents / goagents-secretCredentials.
S3_USE_PATH_STYLEtruePath-style addressing (required for MinIO; set false for AWS).

Billing (Stripe)

VariableDescription
STRIPE_SECRET_KEYEnables platform billing. Without it, all tenants stay on the Free plan and upgrade is disabled.
STRIPE_WEBHOOK_SECRETVerifies /webhooks/stripe signatures.
STRIPE_PRICE_ID_PRO / STRIPE_PRICE_ID_ENTERPRISEStripe Price IDs for the Pro and Enterprise plans.
STRIPE_SUCCESS_URL / STRIPE_CANCEL_URL / STRIPE_PORTAL_RETURN_URLFrontend redirect URLs after checkout/portal sessions.

See Billing & Plans for the plan ladder.

LiveKit (real-time voice)

VariableDescription
LIVEKIT_API_KEY / LIVEKIT_API_SECRETCredentials for your LiveKit server (cloud or self-hosted).
LIVEKIT_WS_URLwss://... — used by client SDKs to join rooms.
LIVEKIT_HTTP_URLhttps://... — used by server-side REST calls (token generation, egress, SIP, dispatch).

Required for any livekit-* node and the /webhooks/livekit push-webhook endpoint. The bundled docker-compose.yml includes a dev LiveKit server (--dev mode, api_key=devkey / secret=secret) on ports 7880-7882.

Vault (legacy — not used for secrets)

.env.example still lists VAULT_ADDR / VAULT_TOKEN and the docker-compose.yml may still start a Vault container, but secrets are stored in PostgreSQL, encrypted with AES-256-GCM using a key derived from JWT_SECRET. Vault is not required.

Next steps