Introducing zero: Ship containers to your own server with a single command

Ronald Blüthl

by Ronald Blüthl

Today we are launching zero — an open-source deployment engine that turns self-hosting into a single command. No nginx. No Certbot. No deploy scripts. Just zero deploy and your app is live with HTTPS.

The problem

Deploying to your own server or VPS has always been a trade-off. Managed platforms like Vercel, Railway, or Heroku give you a great developer experience, but they come with platform fees, vendor lock-in, and restrictions on what you can run. Self-hosting gives you full control and saves money, but the setup is painful: configure a reverse proxy, provision TLS certificates, write deployment scripts, debug firewall rules, set up health checks, handle rollbacks — and pray nothing breaks at 2 AM.

We have lived this pain on every project we have shipped at codebeam. Every new server meant the same ritual: install nginx, set up Certbot, write systemd units, wire up CI/CD pipelines. It was repetitive, error-prone, and a massive time sink — time we would have rather spent building the actual product.

We wanted the simplicity of a managed platform without giving up ownership of our infrastructure.

The solution

So we built zero — a lightweight deployment engine that gives you the developer experience of a managed platform on your own infrastructure. One install script sets up your server — Docker, TLS, and a built-in reverse proxy. Connect via SSH and start deploying. No dashboard, no YAML files, no database. Just a CLI that does exactly one thing well: deploy containers.

$ 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

That is the entire workflow. One command, and your app is running with automatic HTTPS, routed through a built-in reverse proxy, health-checked, and ready for traffic.

What zero does for you

Automatic HTTPS. TLS certificates are provisioned and renewed via Let's Encrypt. You never touch a certificate again.

Zero-downtime deployments. New containers are health-checked before traffic switches over. If the health check fails, zero automatically rolls back to the previous version.

Preview deployments. Spin up temporary environments with unique URLs for pull requests or feature branches. They auto-expire when you are done.

Intelligent port detection. zero reads the EXPOSE directive from your Docker image. No configuration needed.

Automatic domain routing. Every app gets a subdomain under your server's domain. Need a custom domain? Add it with zero domains add — no redeployment required.

One-command rollback. Something went wrong? zero rollback instantly reverts to the previous version.

Docker Compose support. Multi-container apps work out of the box with --compose.

Environment variables. Manage secrets and configuration with zero env set and zero env remove.

Webhooks. Push to your Docker registry and zero auto-deploys. HMAC-SHA256 verified.

Live metrics. Stream CPU, memory, and network usage directly in your terminal with zero metrics.

Why we built it

We are a small team that ships a lot of software. Every week, we deploy side projects, client apps, internal tools, and SaaS products. We do not need Kubernetes. We do not need a multi-region orchestration layer. We need a fast, reliable way to get a container running on a server with HTTPS — and we need it to take seconds, not hours.

Every existing tool was either too complex (Kubernetes, Nomad), too opinionated (platform-as-a-service), or still too manual for our taste. Tools like Dokku, Coolify, or CapRover solve parts of the problem but come with their own complexity — web dashboards, Buildpacks, or Herokuish layers we did not need. Kamal is great if you are in the Rails ecosystem, but we wanted something language- and framework-agnostic. zero occupies the sweet spot: a simple, self-hosted Heroku and Vercel alternative that is powerful enough for production and simple enough to deploy to a VPS in 30 seconds.

We built zero because we were tired of solving the same deployment problem over and over. Now we do not solve it at all. We just type zero deploy.

Open source, MIT licensed

zero is fully open source under the MIT license. It has only two runtime dependencies — acme-client for certificate management and dockerode for the Docker API. No bloat, no framework overhead.

We believe deployment tooling should be transparent, auditable, and owned by the people who use it.

Check out the project on GitHub, read the docs, and deploy your first app in under a minute.

We cannot wait to see what you ship.

Mehr Artikel

The ultimate guide for building Vue 3 component libraries in 2023

Building a Vue 3 component library using Vite, Vue 3, TypeScript and ESLint.

Mehr lesen

Keine Cookies, keine Probleme

Warum auf unserer Website keine Cookie-Banner zu finden sind.

Mehr lesen

Erzählen Sie uns von Ihrem Projekt

Unser Büro

  • Wels
    Maria-Theresia-Straße 41
    4600 Wels