Documentation

Getting started

Delivery Boy is a single deliver binary that runs on your machine and connects directly to your release targets. It does not need a Delivery Boy account, hosted runner, or control server. It finds .deliver.yml by walking up from your current directory, so every command works from anywhere inside a repository.

Availability

Delivery Boy is in private beta. Public packages and source access are not available yet. The first public beta will ship with versioned macOS, Linux, and Windows binaries, a Cargo package, and a Homebrew formula for macOS and Linux. This page documents the current CLI so release users can review the workflow before packages open.

If you already have repository access, build and install the beta from source:

git clone https://github.com/SerenitySoftware/deliveryboy.git
cd deliveryboy
task install:cli
deliver --version

The default install path is ~/.local/bin/deliver. Make sure ~/.local/bin is on your PATH.

Do not copy a binary from an untrusted source. Public releases will include checksums.

Detect your project

From the repository you want to deploy:

deliver init

Delivery Boy detects supported project shapes and shows the config it would write. Detection is a starting point, not proof that the generated release matches your production setup. Review it, then run:

deliver init --write --host your-server.example.com --dir /var/www/your-app

Preview the release

The plan command compiles the full release without running it:

deliver validate
deliver plan
deliver deploy --dry-run

plan prints the ordered steps. --dry-run walks every phase but makes no changes.

Check the target

deliver preflight

Preflight checks the required local tools, input files, secrets, and SSH access. When it fails, the release has not built, uploaded, or changed anything.

Preflight confirms that it can reach the server. It does not yet check every tool used by later remote commands. Review the plan and confirm the target has tools such as Docker, nginx, or Certbot when your release uses them.

Deploy

Commit your work, review deliver plan, then run:

deliver deploy

Delivery Boy asks which release version you are shipping when HEAD is not tagged and your config uses tags for release versions. It builds locally, stages the result, activates it, and runs the checks from your config.

Roll back

For release-based file and site deploys:

deliver rollback

Delivery Boy points the live path at the prior complete release. A failed check during a deploy triggers the same rollback on its own.

Next: write your configuration, review the command reference, or read the safety guide.