Deploy with Docker Compose
Run a claimed Nautilo Server locally or on an SSH-accessible Docker host.
The packaged Compose path creates one isolated Nautilo stack: Nautilo, Logto, two PostgreSQL services, persistent volumes, and one first owner. Run it on your machine or on a Docker host reached over SSH.
Release channel
The Compose journey is qualified, but the signed public CLI installer and automatic stable-image selection are not published yet. Authorized release candidates use the exact CLI and immutable image supplied for that review.
Before you begin
You need the Nautilo CLI, an approved immutable image, Docker Engine with Compose v2, and a password manager. A remote deployment also needs a dedicated operator SSH key, an SSH-accessible Docker host, DNS, and firewall preparation.
nautilo --version
nautilo profile --help
nautilo deploy --help
docker version
docker compose version
export NAUTILO_IMAGE='ghcr.io/agentsea/nautilo-runtime@sha256:<approved-digest>'Local Docker
nautilo profile add my-nautilo \
--transport=local \
--lifecycle=compose \
--instance-id=my-nautilo \
--image="$NAUTILO_IMAGE" \
--yesDo not invent a port. The named instance allocates its complete collision-safe port bundle.
Remote SSH/Docker
nautilo profile add my-nautilo \
--transport=remote \
--lifecycle=compose \
--instance-id=my-nautilo \
--ssh-host=203.0.113.10 \
--ssh-user=nautilo \
--ssh-identity-file="$HOME/.ssh/nautilo_operator" \
--remote-path=/opt/nautilo \
--domain=nautilo.example.com \
--base-url=https://nautilo.example.com \
--https=letsencrypt \
[email protected] \
--image="$NAUTILO_IMAGE" \
--yesUse generic, dedicated key names. Keep host authority in SSH/Docker; Nautilo application ownership does not grant Linux administrator access.
Deploy and claim
nautilo deploy \
--profile my-nautilo \
--from-registry \
--image "$NAUTILO_IMAGE" \
--finish guideVeteran operators and automation can instead use the protected essential
owner template with
--owner-mode config, --owner-config, and an absent mode-0600
--owner-result destination. Never put the owner password or PIN in argv.
Follow Create the first owner. Deployment is
complete only when the target reports owner-bound; healthy containers alone
are not completion.
Verify and resume
nautilo status --profile my-nautilo
nautilo claim resume --profile my-nautilo --finish guideRequire the expected instance, healthy runtime, claimRequired: false, a
working owner sign-in, and one useful model-backed action. Resume the same
profile after interruption; never create a second stack to escape an expired
claim.
Day two
nautilo logs --profile my-nautilo --follow
nautilo upgrade --profile my-nautilo --image "$NAUTILO_IMAGE"
nautilo destroy --profile my-nautiloupgrade is the safe day-two transaction with backup, acceptance, and
rollback. A soft destroy preserves volumes. nautilo destroy --hard --yes is
destructive and removes volumes and first-owner custody.
Read secret custody and advanced operations before moving important work onto the Server.