Skip to main content
Docker Swarm is the default deployment target. For a Kubernetes cluster, see Kubernetes.

Prerequisites

1. Initialize Docker Swarm

On the manager node:

2. Join worker nodes (optional)

On each worker node, run the join command provided by docker swarm init:

Registry authentication

Registry authentication is zero-touch. The CLI fetches the registry token itself on every deploy and hands fresh credentials to Swarm. You do not install a credential helper, run docker login, or manage expiring tokens by hand on any node.

Deployment

Deploy the stack:
For CI/CD pipelines, add --yes. In --yes mode the CLI auto-fixes everything it can, then aborts with an actionable list if a human-required value (such as an LLM API key or the external DATABASE_URL) is still missing. Run an interactive 2501 infra deploy to upgrade: the CLI lists published releases newest-first and self-updates its own binary to match the version you pick before deploying. Back up PostgreSQL first, and see Upgrading for the rollback path. For all deployment options, run 2501 infra deploy -h.

Post-deployment

Verify the services are healthy:
If you run 2501 infra deploy without --yes, the CLI interactively prompts you to create your first tenant, organization, and admin user. In --yes mode, create them afterward with 2501 infra tenant create, 2501 infra org create, and 2501 infra user create (use -h on each for details).