Ship

Ship

Deploy from terminal. No dashboards. No context-switching.

A lightweight infrastructure CLI built for AI coding agents.
Provision servers, deploy apps, manage secrets — all from one command.

Install

bash
curl -fsSL https://raw.githubusercontent.com/basilysf1709/ship/main/install.sh | sh

Downloads the latest binary for your platform. Requires macOS or Linux.

Quick Start

1

Set your provider token

Export your cloud provider API key. Ship supports DigitalOcean, Hetzner, and Vultr.
export DIGITALOCEAN_TOKEN=dop_v1_...
2

Create a server

Provisions an Ubuntu server with Docker pre-installed and your SSH key registered.
ship server create --provider digitalocean
3

Deploy your app

Builds your Docker image, uploads it, and runs the container on your server.
ship deploy
4

Check status

Verify your app is live with SSH reachability, healthcheck, and release info.
ship status

Supported Providers

DigitalOcean

DIGITALOCEAN_TOKEN

Default region: nyc3

Hetzner

HCLOUD_TOKEN

Default region: nbg1

Vultr

VULTR_API_KEY

Default region: ewr

Commands

CommandDescription
ship server createProvision a new cloud server
ship server listShow all tracked servers
ship server destroyTear down server and clean state
ship deployBuild and deploy your application
ship statusCheck server and app health
ship logsFetch container logs
ship execRun remote commands on server
ship rollbackRestore a previous release
ship secretsManage and sync environment secrets
ship domain setupConfigure reverse proxy with auto-TLS
ship initGenerate starter ship.json config
ship bootstrapApply packages and setup commands

Configuration

Optionally create a ship.json for custom deploy flows.

json
{
  "deploy": {
    "local_commands": ["npm ci", "npm run build"],
    "uploads": [{
      "source": "dist.tar.gz",
      "destination": "/opt/app/release.tar.gz"
    }],
    "remote_commands": ["cd /opt/app && tar -xzf release.tar.gz && npm start"]
  },
  "proxy": {
    "domains": ["example.com"],
    "app_port": 3000
  }
}