Get Started

Quick start

Scaffold a config, check your tools, and deploy locally.
# 1. Scaffold a config in your project directory.
ant nest init --port 3000

# 2. Check that Docker (and any builder CLI) is available.
ant nest tools

# 3. Build and run it locally.
ant trail deploy local

ant nest init auto-detects the build type from the files in the directory:

FileDetected config
railpack.tomlbuild: railpack
nixpacks.tomlbuild: nixpacks
docker-compose.yml / compose.yamlbuild: none, run: compose
Dockerfilebuild: dockerfile
Procfilebuild: buildpacks

Override with --build, --run, --file, --port, --app, --group, --target-machine, --output, or --force. Or start from a catalog template with ant nest new <template> (see Templates).

What just happened

  1. ant nest init wrote ant.yaml describing how to build and run the project.
  2. ant haul built the image (also run for you by trail deploy).
  3. ant trail deploy local started the container. Domains are opt-in: add one to serve it on a hostname through Caddy (ant nest edit domain add).

The full lifecycle

The same flow exists on the CLI and in the dashboard. ant ui launches the console; everything after Launch below can also be done there.

StepCLIDashboard
Installclone + task build (internal releases need repo access)-
Launch the consoleant ui-
Create your accountant colony signup (or ant colony login --bundle)Settings → Ant account → Create account / Sign in from a bundle
Init a projectant nest init --port 3000Projects → Add project
Configure itant nest edit …Project → General / Environments / Domains / …
Add a serverant nest machines add prod --host ADDR --ssh-key …Nest → Add machine → Provision over SSH
Buildant haulProject → Build
Deployant trail deployProject → Deploy
Roll backant trail rollbackProject → Deployments
Collaborateant colony invite --machine prod / ant colony joinMachine → General → Invites

Your account is a portable NodeID: create it once, then ant colony export (the dashboard's Sign in from a bundle restores it on another machine). A signed-in account is required before provisioning a server: your NodeID seeds the machine's first owner.

Open the host port the deploy printed, or find it with:

ant trail status
ant trail logs --tail 50

Command groups

Ant's commands are grouped by pillar:

GroupPurpose
ant haulBuild the image without running it
ant trailDeploy, manage, roll back, and clean up the app (local or remote)
ant nestMachine facts, tools, containers, volumes, scaffolding, templates, and groups
ant colonyYour Ant account and the users on remote machines
ant uiServe and manage the local web dashboard

Every command accepts --verbose (echo each child command) and -q/--quiet (suppress progress; only results print), plus --machine <id> to route machine-scoped commands at another machine. It is routing-only: local-only commands fail fast when it points at a remote, and commands that write a project's target use --target-machine. Commands that read ant.yaml also take --config <path>, and the data-reporting commands take --json. See the CLI reference.

Next

Copyright © 2026