Dokku gives you git push deploys on one server, and these are the alternatives for when you want a web UI, several servers, zero-downtime container deploys, or managed databases and queues in your own AWS or GCP account.
Dokku turns a single Linux server into a small Heroku: git push dokku main builds the app with buildpacks or a Dockerfile, plugins add Postgres and Redis containers, and Let's Encrypt handles certificates. It is a good fit for side projects and small production apps, and teams look for alternatives when they want a web UI, when one server is no longer enough, or when the database on the same box as the app becomes the thing they worry about most.
This list covers five Dokku alternatives, from self-hosted PaaS tools to an option that keeps git push deploys and moves the infrastructure into managed services in your own AWS or GCP account.
Encore is infrastructure from code for TypeScript and Go, with a platform that provisions and deploys into your own AWS or GCP account. The workflow stays close to Dokku, where a push deploys the app, but the database stops being a container on the same server: the Postgres, Pub/Sub topics, cron jobs and buckets the code declares are provisioned as RDS, SQS and SNS, and S3 on AWS, or Cloud SQL, Pub/Sub and GCS on GCP, with backups and Multi-AZ on RDS by default.

A Dokku app with a Postgres plugin and a nightly cleanup script maps to a service with its database and a cron job in the same file:
// notes/notes.go
package notes
import (
"context"
"encore.dev/cron"
"encore.dev/storage/sqldb"
)
var db = sqldb.NewDatabase("notes", sqldb.DatabaseConfig{
Migrations: "./migrations",
})
type Note struct {
ID int64 `json:"id"`
Body string `json:"body"`
}
//encore:api public method=POST path=/notes
func Create(ctx context.Context, n *Note) (*Note, error) {
err := db.QueryRow(ctx,
`INSERT INTO notes (body) VALUES ($1) RETURNING id`, n.Body).Scan(&n.ID)
return n, err
}
// Delete notes older than 30 days, every night at 03:00 UTC.
var _ = cron.NewJob("cleanup", cron.JobConfig{
Title: "Delete old notes",
Schedule: "0 3 * * *",
Endpoint: Cleanup,
})
//encore:api private
func Cleanup(ctx context.Context) error {
_, err := db.Exec(ctx, `DELETE FROM notes WHERE created_at < now() - interval '30 days'`)
return err
}
The migration in notes/migrations/1_create_notes.up.sql creates the table:
CREATE TABLE notes (
id BIGSERIAL PRIMARY KEY,
body TEXT NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
Run in your terminal to get started locally.
encore run starts Postgres locally and applies the migration, and the local development dashboard traces each request. Cron jobs do not run on their schedule locally, and you call the endpoint manually to test it. With the GitHub integration, every push to the main branch deploys, and each pull request can get its own preview environment. Encore provisions an IAM role for the service on AWS.
Teams that want to keep running on their own server can build a Docker image with encore build docker, as described in the self-hosting docs, and run it next to their own Postgres, applying migrations and calling cron endpoints themselves. A coding agent working on the app declares a database or a cron job in code instead of running dokku postgres:create and linking it by hand.
Best fit: teams who like Dokku's push-to-deploy workflow but want managed databases, queues and scaling in their own AWS or GCP account.
Coolify is an open source, self-hosted PaaS with a web dashboard. It deploys apps from git with buildpacks, Dockerfiles or Docker Compose, offers one-click databases and services, and manages several servers from one installation. It is the most common move for Dokku users who want a UI and do not want to change hosting. Backups, upgrades and the servers themselves remain your responsibility.
Best fit: teams who want a self-hosted PaaS with a dashboard across a few servers.
Dokploy is an open source, self-hosted platform built on Docker Swarm and Traefik, with a web UI for apps, Docker Compose stacks and databases, scheduled database backups to S3-compatible storage, and multi-node clusters through Swarm. It covers much of Coolify's ground with a lighter interface.
Best fit: teams who want a UI on top of Docker Swarm with database backups included.
CapRoverCapRover runs on Docker Swarm with an Nginx load balancer, a web UI and CLI, and a catalog of one-click apps for databases and common tools. Apps deploy from a captain-definition file or a Dockerfile, and nodes join the Swarm cluster to scale out. It has been stable for years and changes slowly.
Best fit: teams who want a mature self-hosted PaaS with one-click apps and simple clustering.
Kamal, from 37signals, deploys Docker containers to any servers over SSH, with kamal-proxy switching traffic for zero-downtime deploys. Databases and other services run as accessories that you define and maintain. There is no dashboard or buildpack step; you build an image and Kamal rolls it out across your hosts.
Best fit: teams comfortable with Docker who want zero-downtime deploys to their own servers without a platform layer.
If the reason to leave Dokku is the interface, Coolify, Dokploy and CapRover keep the self-hosted model and add a UI, and Kamal suits teams who prefer a deploy tool to a platform. If the reason is that the database, backups and failover on a single server have become the risk, moving the infrastructure into managed services is the change that addresses it, and Encore does that in your own AWS or GCP account while keeping push-to-deploy.
Encore for teams that want git push deploys with managed Postgres, Pub/Sub and cron in their own AWS or GCP account, and the option to build Docker images to run anywhere. Coolify and Dokploy for a self-hosted PaaS with a web UI, CapRover for Docker Swarm with one-click apps, and Kamal for zero-downtime container deploys over SSH.
Dokku is designed around a single host, so scaling past one server, failing over and running databases with backups and replicas becomes the team's job. Teams also leave for a web UI, or because the databases and queues the app depends on need to be managed services rather than containers on the same machine.
Coolify adds a web dashboard, one-click services and management of several servers from one place, while Dokku is a command line tool with a plugin system and a smaller footprint. Both run your apps and databases on servers you maintain.
Create an app with encore app create --example=hello-world, declare the database with sqldb.NewDatabase in the service that uses it, and connect the repository with the GitHub integration so every push deploys to your AWS or GCP account. encore build docker also produces an image you can run on your own server.
Deploy to your cloud on AWS and Google Cloud
without managing infrastructure
Encore lets developers and agents define application infrastructure directly in code, then automatically provisions it from local development to production in your AWS or GCP account.