mrkeyoor.com_
Tue 22 Sept 22:36 UTC
Self-Hostedevaluationupdated 26 Aug 2026

dokploy review

Dokploy is a self-hosted deployment control panel for applications, databases, and Docker Compose stacks. It puts builds, domains, TLS routing, backups, monitoring, notifications, and multiple servers behind a web interface, giving small teams a managed-platform workflow on machines they control.

+99stars / 7d
Verdict

Our Dokploy run built successfully in 281 seconds, but 5 of 886 tests failed, so v0.30.2 deserves a staged pilot rather than control of critical workloads on day one. Its dashboard covers an unusually useful slice of small-team operations, and the 2026-08-25 push shows active maintenance. Choose it when you are prepared to own Docker, Traefik, backups, and the mixed license boundary underneath the friendly panel.

We ran it

Lab card: what happened when we ran dokployScreenshot of dokploy (dokploy.com)
Install✓ · 219s1665 packages · 1687 MB
Build✓ · 281s
Tests✗ · 125s880 passed · 5 failed · 1 skipped of 886 (vitest)
Repo1488 files~205,816 lines of source · 37.4 MB · 10 CI workflows · Dockerfile

Answers from our run

Does dokploy build from source?

Dependencies installed in 219 seconds (1665 packages), and the build succeeded in 281 seconds. We cloned commit 772b768 into a clean Debian container with 3 CPUs and no project-specific setup.

Do dokploy's tests pass?

Not all of them: 880 of 886 passed and 5 failed when we ran the project's own test command (vitest). Some failures need services or credentials a bare container does not have.

Who should not use dokploy?

Operators who want a standard unprivileged app install: the documented path runs a remote shell script on a VPS, configures Docker Swarm, and needs host ports available.

What are the alternatives to dokploy?

Coolify, CapRover, Dokku. Our Dokploy run built successfully in 281 seconds, but 5 of 886 tests failed, so v0.

Setup3/5Short VPS command, followed by real host and security work
Docs4/5Good operator docs; root README is only a feature summary
Community5/5Fresh pushes and heavy issue and pull-request activity
Maturity3/5Broad pre-1.0 platform with current routing and backup reports

Discussed on

  1. hnOpen-source alternative to Heroku, Vercel, and Netlify133 points
  2. hnDokploy is the sweet spot between PaaS and EC298 points
  3. hnPreview Deployment Vulnerability in Dokploy13 points
  4. hnDiscussion on misuse of "open source" by dokploy closed without comment4 points
  5. hnDokploy uses a shared Swarm network with a hardcoded database password3 points

Who it’s for

Small platform teams that want a web control plane for deployments on their own VPS fleet.
Developers who run Docker applications, Compose stacks, and common databases but do not want to assemble a panel from separate tools.
Operators comfortable with Traefik, Docker Swarm, DNS, backups, and SSH when the dashboard cannot solve a host problem.
Teams willing to test each pre-1.0 release and keep an independent recovery path for workloads and data.

Who it’s NOT for

Operators who want a standard unprivileged app install: the documented path runs a remote shell script on a VPS, configures Docker Swarm, and needs host ports available.
Organizations that require every shipped component under an OSI license: code outside /proprietary is Apache-2.0, while the proprietary directory uses DSAL and requires a commercial agreement for production use.
Teams that cannot diagnose Traefik: an open v0.30.2 report says creating an app without a domain can write invalid dynamic YAML and block later routing updates.
Multi-node database operators who assume backups work from every Swarm placement: an open report covers backups failing when the database container lives on a worker node, with a fix still in an open pull request.
Contributors short on disk or time: our install placed 1,665 packages and 1,687 MB on disk before the 281-second build.

Setup reality

Our pnpm install succeeded in 219 seconds, adding 1,665 packages and using 1,687 MB on disk. The build succeeded in 281 seconds. Tests ran for 125 seconds and failed: 880 passed, 5 failed, and 1 was skipped out of 886. The summary names 2 failed test files, and the tail points into application deployment code without showing enough to assign a cause.

The user path is a root-level install script on a VPS, followed by an admin account, domain, and HTTPS setup. Git deployments need provider credentials or repository access; backups need external storage credentials; notifications and registries add their own secrets.

Dokploy owns Docker, Swarm networking, Traefik files, and host ports. Its docs list supported Ubuntu and Debian releases and warn that missing IPVS kernel support can break Swarm discovery. Source development separately calls for Node 24.4.0, pnpm, Docker, environment files, and local service setup.

Dokploy replaces several small-team deployment chores

Dokploy combines application builds, Docker Compose, databases, routing, certificates, monitoring, backups, notifications, and remote servers in one panel. The target is a team that likes the workflow of Heroku or Netlify but wants its workloads on owned VPS instances. Applications can come from common languages or containers, while databases include PostgreSQL, MySQL, MariaDB, MongoDB, Redis, and libSQL.

The checkout we tested was no toy dashboard. commit 772b768 contained 1,488 files, about 205,816 lines of source, and occupied 37.4 MB before dependencies. It is a pnpm monorepo with a Dockerfile and 10 CI workflow files. The interface sits on top of host-level systems that remain visible when something breaks: Docker, Swarm, Traefik, storage, DNS, and the network between servers.

The one-line installer assumes control of a VPS

The README starts with a curl-to-shell command. That is convenient on a new machine, but the documentation makes the contract clearer. Dokploy expects a supported Ubuntu or Debian server, Docker, free ports, and working Swarm networking. After installation, the panel first appears on port 3000 so the operator can create an administrator. The docs then advise configuring a domain with HTTPS and disabling direct IP-and-port access.

A production setup needs more than the first login. Repository deployments require Git access, registries need credentials, database backups need an external destination, and notifications need their service tokens. Remote servers add SSH and network trust. Dokploy can automate much of this work after configuration, but it cannot decide firewall policy, recovery objectives, or where privileged credentials should live.

Docker Swarm is part of the operating model

Multi-node placement uses Docker Swarm rather than treating each server as an unrelated Docker host. That gives Dokploy a way to spread services and manage a cluster, though it also imports Swarm's networking behavior. The installation documentation specifically warns that service discovery requires IPVS kernel support. Minimal or appliance-style kernels can therefore pass a basic Docker check and still fail once services need to find each other.

An open backup report shows why placement must be tested. In issue 3516, a PostgreSQL container scheduled on a worker node could not be found when the backup command ran on the manager. A related fix was still an open pull request on 2026-08-25. If databases are part of the migration, run a restore drill from every placement class before calling the platform ready.

What happened when we ran it

Our unprivileged Node 22 sandbox installed 1,665 packages in 219 seconds, consuming 1,687 MB on disk. The build then completed in 281 seconds. The run used 3 CPUs, 8 GB of RAM, no secrets, and commit 772b768. That is a successful build, though the dependency footprint is substantial for contributors and CI workers.

The Vitest command did not finish cleanly. It ran for 125 seconds, with 880 tests passing, 5 failing, and 1 skipped out of 886. The summary reported 2 failed files among 98. Its tail shows a failure passing through Proxy.deployApplication in application.ts and application.real.test.ts, then the pnpm lifecycle exits with status 1. The supplied lines do not show the underlying assertion or enough context to name the cause.

Traefik automation can spread one bad configuration

Automatic domains and TLS are a major reason to use Dokploy, because the panel writes Traefik configuration as applications change. The tradeoff is shared control-plane risk. Issue 5189 reports that an application without a domain can produce an invalid file with empty router and service maps. According to the report, Traefik then rejects later dynamic updates, leaving another application on a self-signed certificate and a 404 response.

That report was opened against v0.30.2 on 2026-08-25. It is one issue, not proof that every installation will hit it, but the failure mode is relevant because one application can affect routing for others. Keep the Traefik logs and generated files in your incident playbook. A deployment panel reduces routine typing; it does not remove the need to understand the proxy it controls.

The license boundary needs a procurement decision

GitHub does not identify a standard SPDX license for the repository because Dokploy splits its terms by path. LICENSE.MD applies Apache-2.0 to content outside proprietary directories. LICENSE_PROPRIETARY.md applies the Dokploy Source Available License to code under /proprietary and says production use requires a valid commercial agreement. Development and testing are permitted, but production rights are narrower.

This does not make the community edition unusable. It does mean a company should inspect which features sit under proprietary paths and decide whether its planned deployment invokes those terms. Do that before building internal procedures around a feature. A generic claim that the whole repository is open source would miss the distinction written into its own license files.

Active releases help, but v0.30.2 remains pre-1.0

The latest release, v0.30.2, was published on 2026-08-18 and fixed preview limits plus environment-value quoting for stack deployments. GitHub recorded a push on 2026-08-25 and reported 694 open issues and pull requests. The feed shows new fixes, feature work, and user reports arriving within hours of one another. Dokploy is plainly maintained.

The buying decision rests on operational fit. Dokploy is appealing for a small team that has Docker knowledge and wants one place to deploy apps, inspect resources, manage domains, and schedule backups. Begin with stateless services, pin the chosen release, and prove routing plus restore behavior. If the team wants one simple server, Dokku or CapRover may impose less machinery. For a broader panel, compare Coolify before committing.

Alternatives

ProjectWhat it isPick it when
Coolify gh↗A self-hosted deployment platform for applications, databases, services, and multiple servers.pick this instead when you want the closest broad self-hosted PaaS comparison and prefer its workflow or service catalog.
CapRoverA Docker-based application platform with one-click apps and a smaller operational surface.pick this instead when you want a simpler, older deployment panel and can live with fewer current platform features.
Dokku gh↗A command-line PaaS that brings a Heroku-style Git deployment model to one server.pick this instead when one host and a CLI-driven Git workflow are enough, and you do not need Dokploy's dashboard.
Portainer gh↗A container management interface for Docker, Swarm, and Kubernetes environments.pick this instead when container administration matters more than an opinionated application deployment pipeline.

What people are saying

  1. [github-trending] Dokploy/dokploy

Sources

  1. Dokploy README
  2. Dokploy installation documentation
  3. Dokploy contributing and development guide
  4. Dokploy Apache and proprietary license split
  5. Dokploy Source Available License
  6. Dokploy v0.30.2 release
  7. Dokploy issue 5189, invalid Traefik configuration
  8. Dokploy issue 3516, worker-node database backup

More self-hosted reviews

radar · sftpgo · mailcow-dockerized · openGym · BackPack · PanWatch · the whole board →