Open source · MIT licensed

Stop configuring.
Start shipping.

Deploy any Docker image to your own server with a single command. Automatic HTTPS, zero-downtime, preview environments. No config files. No platform fees.

$ zero deploy ghcr.io/shipzero/demo:latest
 
✓ Deploying ghcr.io/shipzero/demo:latest
✓ Pulling image done
✓ Detected port: 3000
✓ Starting container done
✓ Health check passed
🚀 Your app is live: https://demo.example.com
Write a Dockerfile. Configure nginx. Set up Certbot. Write deploy scripts. Debug firewall rules. Pray nothing breaks.

Or just type zero deploy.

1
Command to deploy
0
Config files
0
Downtime
$0
Platform fees

Features

See it in action.

Every feature is a single command. No config files, no web UI, no YAML.

Deploy anything

Point zero at any Docker image. It detects the port, assigns a domain, provisions a TLS certificate, and routes traffic. One command, zero config files.

Automatic HTTPS via Let's Encrypt. HTTP redirects. Zero-downtime — health-checked before traffic switches.

Preview environments

Add --preview pr-42 and get a temporary deployment with its own subdomain. Share the link, review, merge. Previews expire automatically.

Every PR gets a live URL. No infrastructure changes needed.

Instant rollback

Something wrong? One command. The previous image is started, health-checked, and traffic is swapped. If the health check fails, nothing changes.

No downtime. No manual intervention. No second-guessing.

Live metrics

CPU, memory, and network stats streamed to your terminal in real time. No Grafana dashboard to set up. No Datadog bill to worry about.

Works for apps and previews. Stream server logs with zero logs.

Webhook auto-deploy

Push to your container registry and zero deploys it automatically. HMAC-SHA256 verified. Non-matching tags create preview deployments.

Works with GitHub Container Registry, Docker Hub, or any registry that sends webhooks.

Docker Compose

Multi-container apps with one command. Upload your Compose file, specify the entry service, and zero handles the rest — pulling, starting, health-checking, routing.

How it works

Every deploy. Same four steps.

Predictable, atomic, safe. If anything fails, traffic stays on the previous version.

01

Pull

Image pulled from the registry with stored credentials

02

Start

New container on an ephemeral port. Old one keeps serving.

03

Health check

TCP or HTTP check. Fails? New container is discarded.

04

Swap

Route updated atomically. Old container removed. Done.

Quickstart

Five minutes. Not five hours.

A Linux VPS and a domain. That's the entire requirements list.

01
Set up the server
On your VPS
$ curl -fsSL https://shipzero.sh/install.sh | sudo bash
02
Install the CLI
On your machine
$ curl -fsSL https://shipzero.sh/cli/install.sh | bash
03
Connect via SSH
On your machine
$ zero login root@example.com
04
Deploy
On your machine
$ zero deploy ghcr.io/shipzero/demo:latest
✓ Your app is live: https://demo.example.com

Why zero

Platform DX.
Self-hosting price.

You own the server. zero handles everything else.

The old way
PaaS
SetupMinutes
HTTPSAutomatic
PreviewsYes
Lock-inYes
Any imageLimited
ConfigRequired
Cost$$$
The hard way
DIY
SetupHours
HTTPSManual
PreviewsBuild it
Lock-inNo
Any imageYes
ConfigLots
Cost$

zero is a single-server deployment engine. One server, any number of apps. If you need multi-node orchestration, team RBAC, or a web dashboard — zero is not the right tool. And that's by design.

Your server.
Your rules.

Install zero and ship your first app in minutes. Open source and MIT licensed.

$ curl -fsSL https://shipzero.sh/install.sh | sudo bash