Skip to content
Nautilo Documentation
Administrator guide

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" }

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

[genie]
mode = "skip"

The supplied password is the owner's permanent sign-in password. Choose it deliberately and save it in your password manager before deployment; first sign-in does not force a replacement. Keep the approval PIN separate from the password. There is no forced-password-change option in this template.

For an older file, remove forcePasswordChangeOnFirstSignIn whether its value is true or false. If the old password was intended to be temporary, choose and save a permanent owner password before retrying deployment.

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, check that you are using the intended profile, sign in as the owner, and send your Genie a message. A successful status check alone does not confirm that sign-in and model access work.