Quick start
# 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:
| File | Detected config |
|---|---|
railpack.toml | build: railpack |
nixpacks.toml | build: nixpacks |
docker-compose.yml / compose.yaml | build: none, run: compose |
Dockerfile | build: dockerfile |
Procfile | build: 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
ant nest initwroteant.yamldescribing how to build and run the project.ant haulbuilt the image (also run for you bytrail deploy).ant trail deploy localstarted 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.
| Step | CLI | Dashboard |
|---|---|---|
| Install | clone + task build (internal releases need repo access) | - |
| Launch the console | ant ui | - |
| Create your account | ant colony signup (or ant colony login --bundle) | Settings → Ant account → Create account / Sign in from a bundle |
| Init a project | ant nest init --port 3000 | Projects → Add project |
| Configure it | ant nest edit … | Project → General / Environments / Domains / … |
| Add a server | ant nest machines add prod --host ADDR --ssh-key … | Nest → Add machine → Provision over SSH |
| Build | ant haul | Project → Build |
| Deploy | ant trail deploy | Project → Deploy |
| Roll back | ant trail rollback | Project → Deployments |
| Collaborate | ant colony invite --machine prod / ant colony join | Machine → 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:
| Group | Purpose |
|---|---|
ant haul | Build the image without running it |
ant trail | Deploy, manage, roll back, and clean up the app (local or remote) |
ant nest | Machine facts, tools, containers, volumes, scaffolding, templates, and groups |
ant colony | Your Ant account and the users on remote machines |
ant ui | Serve 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.