Skip to content
Nautilo Documentation
Deploy / Build / Administer

Configure an instance

Keep topology, setup inputs, and managed runtime state in their separate authorities.

Nautilo has three different configuration authorities. Treating them as one giant environment file is how secrets leak and instances become impossible to reason about.

AuthorityOwnsMust not own
~/.nautilo/profiles/<name>.tomlTransport, lifecycle, instance identity, endpoint, SSH and TLS policyProvider keys or owner passwords
~/.config/nautilo/deploy.tomlFirst-owner inputs, selected provider secrets, optional initial Genie choicesPorts, Compose identity, database URLs, or generated runtime state
Managed config/instance.envRuntime configuration written by Nautilo deployment toolingHand-maintained setup templates or source-control defaults

Profile first

Profiles are deliberately non-secret. Inspect the active one before every mutation:

nautilo profile current
nautilo status

profile current identifies the selected topology and endpoint. status reports Compose state and best-effort setup health. Neither command proves a model-backed turn works.

Keep setup input outside Git

The setup file uses schema version 1, must be mode 0600, and must live outside a Git worktree. Public examples should reference secrets from the setup process environment rather than embedding their values.

schemaVersion = 1

[admin]
handle = "operator"
displayName = "Nautilo Operator"
password = { fromEnv = "NAUTILO_ADMIN_PASSWORD" }
pin = { fromEnv = "NAUTILO_ADMIN_PIN" }
forcePasswordChangeOnFirstSignIn = true

[[providers]]
key = "MODEL_PROVIDER_API_KEY"
value = { fromEnv = "MODEL_PROVIDER_API_KEY" }

[genie]
mode = "skip"
install -d -m 700 "$HOME/.config/nautilo"
install -m 600 /path/to/reviewed-deploy.toml "$HOME/.config/nautilo/deploy.toml"

The schema accepts zero providers, but features that call a model require a usable selected provider. Verify the capabilities you intend to use; do not infer them from a healthy container.

Verify the result

After a configuration change, prove the intended profile, setup state, owner sign-in, and one model-backed turn. If only status succeeds, the operator path is not yet accepted.