Skip to content

Environment variables reference ​

Source: crates/server-config registry + live std::env reads. Precedence: env → vion.toml → default.

Process: CP = control-plane, RT = runtime-core, HW = historian-writer, Drv = driver.

Database and bootstrap ​

EnvProcessDefaultNote
VION_DATABASE_URLCP—Required; secret
VION_BOOTSTRAP_ADMIN_USERNAMECP—First admin
VION_BOOTSTRAP_ADMIN_PASSWORDCP—Secret; ≥12 characters recommended

Network and TLS ​

EnvProcessDefaultNote
VION_HTTP_BINDCP/RT0.0.0.0:8080 / :8081Listen
VION_ALLOW_INSECURE_HTTPCP/RTfalsetrue local only
VION_TLS_CERT / VION_TLS_KEYCP/RT—HTTP TLS PEM
VION_CORS_ORIGINCP/RThttp://127.0.0.1:5173Advanced
VION_CERT_INVENTORY_DIRCP—Certificate inventory
VION_TLS_RELOAD_SECSCP—PEM reload interval
VION_TRUST_PROXYCPfalseX-Forwarded-For
VION_CERT_EXPIRING_DAYSCP—Unregistered; warning threshold

Runtime / gRPC ​

EnvProcessDefaultNote
VION_TENANT_IDRT—Set → Stage rejects other tenants
VION_GRPC_BINDRT0.0.0.0:50051
VION_RUNTIME_GRPC_URLCP—Default tenant unbound target
VION_RUNTIME_GRPC_ALLOW_REMOTECPfalseRemote runtime registration
VION_RUNTIME_GRPC_TLS_CA / _CERT / _KEYCP—Client TLS/mTLS
VION_RUNTIME_APP_TOKENCP/RT—x-vion-app-token
VION_GRPC_KEEPALIVE_SECSCP/RT—HTTP/2 PING
VION_GRPC_TLS_CERT / _KEY / _CLIENT_CART—Server TLS/mTLS
VION_RUNTIME_HTTP_URLCP—Report / registered HTTP
VION_SNAPSHOT_PATHRT—Load at startup

Commands ​

EnvProcessDefaultNote
VION_COMMAND_TOKENRT—Empty = commands off; live read on
VION_COMMAND_STEP_UPRT—Step-up proof
VION_COMMAND_REASON_REQUIREDRTfalseHot; empty reason → 400

Historian ​

EnvProcessDefaultNote
VION_SPOOL_DIRRT/HWunder tempRequired on HW
VION_HISTORIAN_DIRRT/HW—Embedded columnar
VION_HISTORIAN_DATABASE_URLRT/HW—Read (RT) / write (HW)
VION_HISTORIANHWcolumnarcolumnar | postgres
VION_HISTORIAN_RETENTION_DAYSHW—
VION_HISTORIAN_RETENTION_SECSHW—Unregistered; if conflicts with days, secs wins

Identity / OIDC / session ​

EnvProcessDefaultNote
VION_BREAK_GLASS_TOTP_SECRETCP—Emergency access
VION_BREAK_GLASS_USERNAMECP—
VION_OIDC_ISSUERCP—
VION_OIDC_CLIENT_ID / _SECRETCP—
VION_OIDC_REDIRECT_URICP—
VION_OIDC_AUTO_PROVISIONCP—
VION_OIDC_UI_REDIRECTCP—Unregistered
VION_OIDC_ROLE_MAP / _ROLE_CLAIMCP—Unregistered
VION_OIDC_END_SESSION_ENDPOINTCP—Unregistered
VION_API_TOKEN_TTL_HOURSCP—
VION_API_TOKEN_TTL_DAYSCP—Unregistered; if hours missing
VION_LOGIN_LOCKOUT_THRESHOLDCP50 = off
VION_LOGIN_LOCKOUT_MINUTESCP151–1440
VION_MULTI_TENANTCP—1/true → tenant API

Not available yet

There is no LDAP / SAML. OIDC is partial; local users always exist.

HA / deployment ​

EnvProcessDefaultNote
VION_NODE_IDCPlocal
VION_NODE_ROLECPactive
VION_HA_PEERSCP—
VION_HA_LAG_WARN_MSCP—Studio lag badge
VION_HA_FAILOVERCP—Unregistered; in-memory promote
VION_RESTART_POLICYCP/RT—supervised → exit 75
VION_STUDIO_DIRCP—Static Studio dist
VION_CONFIG_FILEallOS defaultMeta

Backup / report ​

EnvProcessDefaultNote
VION_BACKUP_DIRCP—
VION_BACKUP_INTERVAL_SECSCP—
VION_BACKUP_KEEPCP7
VION_BACKUP_PASSWORDCP—Secret
VION_REPORT_DIRCP—Both required together
VION_REPORT_INTERVAL_SECSCP—

License ​

EnvProcessDefaultNote
VION_LICENSE_EXPIRES_ATCP—
VION_LICENSE_GRACE_DAYSCP30
VION_LICENSE_MAX_TAGS / _MAX_RUNTIMES / _MAX_SCREENSCP—
VION_LICENSE_MAX_NODESCP—Unregistered; max runtimes alias

OPC UA server (expose) ​

EnvProcessDefaultNote
VION_OPCUA_SERVERRT—1/true enables
VION_OPCUA_SERVER_BINDRT0.0.0.0:4841
VION_OPCUA_SERVER_PORTRT—Unregistered alias
VION_OPCUA_SERVER_PKIRT—
VION_OPCUA_SERVER_USERSRT—JSON user list
VION_OPCUA_SERVER_ALLOW_INSECURERT—loopback only
VION_OPCUA_SERVER_MODERTactivestandby rejects writes
VION_OPCUA_SERVER_HISTORY / _EVENTSRT—
VION_OPCUA_SERVER_APPLICATION_URIRTurn:mikrodev:vion:opcua-serverPer runtime. Whitespace or over 512 characters refuses startup
VION_OPCUA_SERVER_DEFAULT_REASONRTopcua.writeUnregistered
VION_OPCUA_SUBSCRIBERT—Unregistered; client subscription

Webhook / observability / other ​

EnvProcessDefaultNote
VION_ALARM_WEBHOOK_URLRT—ACTIVE/CLEAR
VION_ALARM_WEBHOOK_TOKENRT—Bearer
VION_OTEL_ENDPOINTCP/RT—OTLP
RUST_LOGallinfoHot
VION_STALE_MSRT—Stale quality
VION_TOTALIZER_PATHRT—
VION_TOTALIZER_SHIFT_HOURSRT—
VION_TOTALIZER_SHIFT_CRONRT—Unregistered
VION_MQTT_QOSDrv—Operate default QoS
VION_IEC104_CLOCK_SYNCDrv—
VION_SIM_PLAYBACK_PATH / VION_SIM_SINERT—Unregistered; sim

*Unregistered* = not in the server-config schema; process code reads it. Adding to the schema is recommended.