raptor reads a TOML file (default raptor.toml, override with
serve --config <path>). Every key can be overridden by a RAPTOR_*
environment variable; nested tables use a __ separator (e.g.
RAPTOR_DDI__ANONYMOUS).
Key Type Default Description
bindsocket addr 0.0.0.0:8088address the HTTP server listens on
database_urlstring (required) sqlite://… or postgres://…; selects the backend
artifact_dirpath (required) root of the content-addressed artifact store
max_artifact_sizeinteger (bytes) 1073741824 (1 GiB)maximum artifact upload size
urlstring (unset) external base URL for _links; derived from the Host header when unset
rollout_eval_interval_secsinteger 5how often the background evaluator / auto-assign sweep runs
Key Type Default Description
anonymousbool falsedisable all DDI auth (dev only)
gateway_tokenstring (unset) shared token; enables auto-registration
polling_intervalstring HH:MM:SS 00:05:00poll sleep advertised to devices
confirmation_flowbool falserequire confirmation before a deployment starts
auto_confirm_defaultbool falsegive newly created targets autoConfirm, so confirmation_flow can’t strand confirmation-unaware clients
artifact_http_urlstring (unset) plain-HTTP base advertised in the DDI download-http links; unset means they reuse url
trusted_proxy_headerstring (unset) header to read the device address from behind a reverse proxy, e.g. x-forwarded-for; unset uses the socket peer
Key Type Default Description
usernamestring (required) admin username
password_hashstring (required) argon2id hash from raptor hash-password
bind = "0.0.0.0:8088"
database_url = "postgres://raptor:raptor@localhost/raptor"
artifact_dir = "/var/lib/raptor/artifacts"
max_artifact_size = 2147483648 # 2 GiB
url = "https://raptor.example.com"
rollout_eval_interval_secs = 10
[ddi]
anonymous = false
gateway_token = "shared-registration-secret"
polling_interval = "00:05:00"
confirmation_flow = true
[mgmt]
username = "admin"
password_hash = "$argon2id$v=19$m=19456,t=2,p=1$..."
RAPTOR_BIND=127.0.0.1:9090
RAPTOR_DATABASE_URL=sqlite://raptor.db?mode=rwc
RAPTOR_DDI__ANONYMOUS=true
RAPTOR_DDI__GATEWAY_TOKEN=super-secret
RAPTOR_MGMT__PASSWORD_HASH='$argon2id$...'
Environment values take precedence over the TOML file — the recommended way to
inject secrets.