Self-hosting that doesn’t feel like self-hosting.

Disco is the self-hosted Open Source Heroku alternative: git push deploys, zero-downtime releases, automatic SSL, on your own servers at hardware cost.

Works on Hetzner, DigitalOcean, AWS, GCP, bare metal.

Disco dashboard preview

Real Disco deployment dashboard.

Render and Heroku charge you for success. Disco doesn’t.

Keep the PaaS experience (deployments, SSL, logs, scaling) but run it on infrastructure you own. No vendor markup. No lock-in.

Git-push deploys & previews
Zero-downtime releases
Automatic SSL via Caddy
Total Data Sovereignty

Who is Disco for?

Teams self-hosting or outgrowing managed PaaS platforms who need predictable costs and control.

Microservices or multi-tenant apps
Many staging / preview environments
Compliance & data residency requirements

What does Disco save you?

Managed PaaS markups spike with every extra service and environment. Disco replaces that markup with plain hardware cost.

If you’re already paying ≥$1k/mo, odds are you can cut 70–95%.

Quick cost check (no email)

$
Estimated Disco infra cost:
-
Estimated savings:
-

Conservative estimate using commodity VPS pricing. Real numbers depend on redundancy, region, and workload.

How Disco works

Heroku-style DX on infrastructure you own. Control plane stays separate, so your production traffic never touches Disco servers.

Step 1
Install Disco

One command on a fresh server. Disco sets up Docker Swarm, Caddy SSL, and the Disco daemon.

Step 2
Connect your repos

Install the GitHub app, configure environment variables, and Disco receives webhooks to trigger deployments.

Step 3
git push deploys

Blue/green zero-downtime releases. Roll back instantly. Add nodes when needed.

---
config:
  layout: elk
  theme: base
---
flowchart TB
 subgraph ExternalWorld["External World"]
        GitHub["Source Control"]
        DashboardCLI["Web UI + CLI"]
        User["User / Internet"]
  end
 subgraph YourServer["Your Server"]
        Caddy["Proxy + SSL"]
        Daemon["Disco Runtime"]
        App1["Service A (Container)"]
        App2["Service B (Container)"]
  end
    GitHub --> Caddy
    DashboardCLI --> Caddy
    User --> Caddy
    Caddy --> Daemon & App1 & App2
    Daemon -.- App1 & App2
              

Your application traffic and data stay on your infrastructure. Disco never sits in your request path.

Get your own PaaS in 5 minutes

SSH into a fresh Ubuntu 24.04 LTS server and run:

curl -fsSL https://disco.cloud/install.sh | sh

Case Study: Idealist.org

“How Idealist Replaced a $3,000/mo Heroku Bill with a $55/mo Server
Read the migration story →

Loved by Developers

"I moved all my micro sites off Heroku on to Disco and I'm paying 10X less than what I was before. Highly recommended."
Jacob DeHart
Jacob DeHart
Founder of Threadless
"I think Disco has the opportunity to bring a lot of magic back to the web for a lot of people."
Robert J. Simmons
Robert J. Simmons
Owl and Crow
"It's unbelievable. It’s such a joy to use, I look forward to all my pushes just to see them show up so quickly."
Josh Stein
Zack Scholl
Infinite Digits