deku

Open source ยท Self-hosted

Ship to your
own server.

Deku turns a Linux server into your own hosting platform. Deploy with one command and get HTTPS, databases, backups and rollbacks, without paying per app.

curl -fsSL https://get-deku.vercel.app/install.sh | sudo bash
$ deku apps create shop
Created app 'shop'
$ deku postgres create shop-db
$ deku postgres link shop-db shop
Linked 'shop-db' to 'shop'.
$ deku deploy run shop --path ./shop
[deploy.release]
[deploy.health_checking]
[deploy.replica_ready]
[deploy.live] https://shop.example.com
The Deku dashboard app overview, showing the current release, process health, live output, domains, and linked services.

Why Deku

What a hosting platform does, on a server you own.

Use whichever fits the moment: the CLI, the dashboard, or the HTTP API.

How a deploy works

A broken deploy never reaches your users.

Your current version keeps serving until the new one has passed every step. If any step fails, nothing changes.

  1. 01build

    Build

    Deku builds your Dockerfile, or works out how to build the app when there is none.

  2. 02deploy.release

    Migrate

    Your release command runs next. If a migration fails, the deploy stops here.

  3. 03deploy.health_checking

    Check

    Every new copy of the app has to answer its health check before it gets traffic.

  4. 04deploy.live

    Switch

    Traffic moves to the new version. The old one stays ready if you need to roll back.

The dashboard

Watch it go live from the browser.

Your apps, deploys, logs and services in the browser. It updates live, so a deploy you start from your terminal plays out on screen.

A deploy in progress in the dashboard: build and release are done, the health check is running, and the build output streams below.

Secure by default

Locked down before you change a setting.

Requirements

All you need is a Linux server.

Ubuntu 22.04 or later, or Debian 11 or later, with Docker Engine 24+, 512 MB of memory and root access. One command installs everything else.