Skip to content

Control Odoo settings and secrets

Control-plane configuration is split by sensitivity. Tokens, passwords and the encryption key are supplied through the process environment. Non-secret identifiers, URLs, hostnames and feature choices are stored in Oduflow → Configuration → Settings.

Environment secrets

Set only the credentials required by the enabled providers and integrations:

ODUFLOW_ENCRYPTION_KEY=<Fernet key>
ODUFLOW_VULTR_API_KEY=<Vultr API token>
ODUFLOW_CLOUDFLARE_TOKEN=<Cloudflare DNS token>
ODUFLOW_CLOUDFLARE_R2_TOKEN=<Cloudflare R2 provisioner token>
ODUFLOW_GITHUB_TOKEN=<repository management token>
ODUFLOW_GITHUB_CLIENT_TOKEN=<client repository token>
ODUFLOW_LITELLM_MANAGEMENT_KEY=<LiteLLM management key>
ODUFLOW_PILLAR_TOKEN=<external pillar bearer token>
ODUFLOW_SALT_API_PASSWORD=<Salt API password>

ODUFLOW_GITHUB_CLIENT_TOKEN is unnecessary when the client already has an explicit encrypted Git credential bundle. LiteLLM and provider credentials are unnecessary when their integration is disabled. Preserve ODUFLOW_ENCRYPTION_KEY separately from database backups: a database restore cannot decrypt existing client secrets without the same key.

Oduflow Settings

The settings form stores these non-secret values as Odoo system parameters:

Section Setting Parameter
Control Plane Public Access Base URL oduflow.access_base_url
Control Plane GitHub Organization oduflow.github_org
Cloudflare DNS Cloudflare Zone ID oduflow.cloudflare_zone_id
Cloudflare R2 Backup Cloudflare Account ID oduflow.cloudflare_account_id
Salt Salt API URL oduflow.salt_api_url
Salt Salt API User oduflow.salt_api_user
Salt Salt Master VPN IP oduflow.salt_master_ip
Salt Salt SOCKS Proxy oduflow.salt_proxy
Salt Salt TLS Hostname oduflow.salt_tls_hostname
Salt Pillar Gateway Host oduflow.pillar_gateway_host
LiteLLM Management URL oduflow.litellm_api_url
LiteLLM Client URL oduflow.litellm_client_url
LiteLLM SOCKS Proxy oduflow.litellm_proxy
LiteLLM Models oduflow.litellm_models
LiteLLM Default Model oduflow.litellm_default_model
LiteLLM Reasoning Effort oduflow.litellm_reasoning_effort
LiteLLM API Mode oduflow.litellm_api_mode

The GitHub organization defaults to oduflow, the Salt API user to oduflow-api, the Salt master address to 100.64.0.1, LiteLLM reasoning to medium, and the LiteLLM API mode to chat_completions. An empty LiteLLM management URL disables automatic LiteLLM key provisioning. An empty public access URL falls back to Odoo's web.base.url.

Upgrade from environment configuration

The oduflow and oduflow_cloudflare upgrade migrations copy existing non-secret ODUFLOW_* values into empty Oduflow settings. Existing database settings take precedence and are never overwritten. Upgrade both modules while the old environment is still present, verify the settings and a real queued operation, and only then remove the migrated non-secret variables from the container environment.