Skip to main content
Servflow is configured using a TOML file. All configuration values can be overridden using environment variables.

Server Configuration

The [server] section configures the main API server.
[server]
port = "8080"
config_folder = "./configs"
engine_config_file = "./integrations.yaml"
env = "production"
FieldEnvironment VariableDefaultDescription
portSERVFLOW_SERVER_PORT8080Port for the API server
config_folderSERVFLOW_SERVER_CONFIG_FOLDERRequired. Directory containing API configuration files
engine_config_fileSERVFLOW_SERVER_ENGINE_CONFIG_FILEPath to engine integrations YAML file
envSERVFLOW_SERVER_ENVproductionEnvironment mode (production or development)

Dashboard Configuration

The [dashboard] section configures the web dashboard interface.
[dashboard]
port = "3000"
configs_folder = "./configs"
master_key = "your-secure-master-key"
FieldEnvironment VariableDefaultDescription
portSERVFLOW_DASHBOARD_PORT3000Port for the dashboard server
configs_folderSERVFLOW_DASHBOARD_CONFIGS_FOLDERSame as server.config_folderDirectory for dashboard config storage
master_keySERVFLOW_DASHBOARD_MASTER_KEYMaster encryption key for secrets (required for secrets management)
Keep your master_key secure and never commit it to version control. Use environment variables in production.

SQLite Configuration

The [sqlite] section configures persistent storage.
[sqlite]
path = "./data/servflow.db"
FieldEnvironment VariableDefaultDescription
pathSERVFLOW_SQLITE_PATH./database.dbPath to SQLite database file
If the path is empty or the [sqlite] section is omitted, Servflow falls back to file-based storage with reduced functionality.

Authentication Configuration

The [authentication] section configures JWT-based authentication for the dashboard.
[authentication]
jwk_url = "https://your-tenant.auth0.com/.well-known/jwks.json"
domain = "your-domain.com"
redirect_url = "https://your-app.com"
FieldEnvironment VariableDefaultDescription
jwk_urlSERVFLOW_AUTH_JWK_URLURL to JSON Web Key Set for JWT validation
domainSERVFLOW_AUTH_DOMAINYour authentication domain
redirect_urlSERVFLOW_AUTH_REDIRECT_URLhttps://app.servflow.ioRedirect URL after authentication
Authentication is optional for local development. When jwk_url and domain are not set, the dashboard runs without authentication.

Tracing Configuration

The [tracing] section configures OpenTelemetry distributed tracing.
[tracing]
enabled = false
service_name = "servflow-pro"
org_id = ""
collector_endpoint = ""
FieldEnvironment VariableDefaultDescription
enabledSERVFLOW_TRACING_ENABLEDfalseEnable OpenTelemetry tracing
service_nameSERVFLOW_TRACING_SERVICE_NAMEService name for trace identification
org_idSERVFLOW_TRACING_ORG_IDOrganization ID for multi-tenant collectors
collector_endpointSERVFLOW_TRACING_COLLECTOR_ENDPOINTOTLP collector endpoint URL

Complete Example

Here’s a complete configuration file with all options:
[server]
port = "8080"
config_folder = "./configs"
engine_config_file = "./integrations.yaml"
env = "production"

[dashboard]
port = "3000"
configs_folder = "./configs"
master_key = "your-secure-master-key"

[sqlite]
path = "./data/servflow.db"

[authentication]
jwk_url = "https://your-tenant.auth0.com/.well-known/jwks.json"
domain = "your-domain.com"
redirect_url = "https://your-app.com"

[tracing]
enabled = false
service_name = "servflow-pro"
org_id = ""
collector_endpoint = ""

Environment Variable Overrides

Environment variables take precedence over values in the TOML file. This is useful for:
  • Production deployments — Keep secrets out of configuration files
  • Container environments — Configure via Docker/Kubernetes environment variables
  • CI/CD pipelines — Override settings per environment
Example using environment variables with Docker:
docker run -d \
  --name servflow-pro \
  -e SERVFLOW_SERVER_PORT=9000 \
  -e SERVFLOW_DASHBOARD_MASTER_KEY=my-secret-key \
  -e SERVFLOW_SQLITE_PATH=/data/servflow.db \
  -v $(pwd)/config.toml:/app/config.toml \
  servflow/servflow-pro start --config /app/config.toml --dashboard