Tech Digest

Platforms

Dokploy

Self-hosted PaaS on Docker Swarm and Traefik, with git push deploys and managed databases

PlatformsApache-2.0, with DSAL 1.0 reserved for a /proprietary pathYoungarm64 builds
Last reviewed Profile maintained against the project's own documentation
Operational load
3 / 5
Moderate
Idle memory
900 MB
typical use ~2048 MB
Moving parts
3
containers in a normal deployment
Backup shape
Postgres dump
needs a dump or a stop

Dokploy installs a Docker Swarm plus Traefik stack on your server and gives you a dashboard for deploying applications from git, running managed Postgres, MySQL, MongoDB, MariaDB and Redis instances, and issuing TLS certificates. It aims at the Vercel and Heroku workflow on hardware you own.

Our verdict on Dokploy#

Dokploy is the leanest of the self-hosted PaaS options: the install script initializes Docker Swarm, creates an overlay network, starts a Postgres 16 service, the Dokploy service on port 3000, and a Traefik container on 80 and 443. Three containers, not five. The Swarm dependency is the thing to weigh, because it means your single-node PaaS is running an orchestrator most people no longer use, and it is also how multi-node scaling works. Be clear-eyed about maturity: the repository was created in April 2024 and the current release is v0.30.5 (September 2026), still 0.x, shipping multiple releases some weeks. A v0.29.13 release fixed roughly sixteen command-injection and authorization-bypass issues, which tells you both that the project takes reports seriously and that the code is young. The licence is Apache-2.0 today, with a Dokploy Source Available License reserved for a future /proprietary directory that does not yet exist at the repo root.

Who Dokploy is for#

Choose it if

  • A developer deploying a handful of Node, Python or Go apps to one VPS who wants push-to-deploy and automatic TLS
  • Someone who already knows Docker Swarm and wants a UI over it rather than a new orchestrator
  • A small agency hosting client sites who needs per-project isolation, managed databases and scheduled backups in one dashboard

Look elsewhere if

  • You want the dashboard behind your company identity provider, since there is no OIDC login
  • You need a stable API and upgrade contract; a 0.x line moving this fast will break something within a year
  • You are on a 1 GB VPS, because Postgres plus Traefik plus the app itself will not fit under the documented 2 GB minimum

What running it actually looks like#

One command: curl -sSL https://dokploy.com/install.sh | sh on a fresh Ubuntu or Debian box with 2 GB RAM and 30 GB disk. It checks that port 3000 is free, installs Docker if missing, runs docker swarm init against your advertise address, creates the attachable overlay network dokploy-network, generates Postgres and auth secrets as Docker secrets, then starts three things: dokploy-postgres (postgres:16), the dokploy service published on 3000 in host mode with the Docker socket mounted, and a dokploy-traefik container binding 80 and 443. You then open port 3000, create the first admin, point a domain at the box and let Traefik issue certificates. Adding a second server means joining it as a Swarm worker, not installing Dokploy again.

Resource profile#

Memory
900 MB idle, around 2048 MB in ordinary use. The docs state a 2 GB minimum for the server; Dokploy plus Postgres plus Traefik consume most of the first gigabyte before you deploy anything.
CPU and acceleration
Idle between deploys, then a build spike that runs on the same box as your production containers unless you configure a dedicated build server.
Storage growth
The docs ask for 30 GB free; build layers and old images are the growth, and `/etc/dokploy` holds Traefik config, deployment logs and application volumes.
Operational load
3 of 5, Moderate. A real Postgres, a Swarm you did not ask for, and a 0.x release line shipping several versions a month. Upgrades usually work, but you should read release notes before running them, which is rubric level 3.

Figures describe a small single-household install and are the working assumptions behind our stack planner. Your numbers will differ with library size, user count and hardware. See methodology.

Data and backup surface#

Two locations. /etc/dokploy on the host holds Traefik static and dynamic configuration, SSH keys, per-application volumes and deployment logs; it is a plain directory and copies fine. The dokploy-postgres Docker volume holds every project, environment variable, domain and user, and needs a pg_dump rather than a file copy while it is running. Managed database instances you create through the UI are separate volumes with their own lifecycle, and Dokploy's scheduled backup feature can push them to S3, which is the right answer. Built images and cloned repositories are regenerable. Also record your Swarm join tokens; without them a rebuilt manager cannot readopt workers.

Derived backup shape

Postgres dump. pg_dump (or pg_dumpall) into a file, then snapshot that file plus the app's data volume.

Traps and surprises#

The installer initializes Docker Swarm on your host

docker swarm init runs as part of installation and picks an advertise address. If the box has multiple interfaces, or you later change its IP, Swarm keeps advertising the old address and services fail to schedule. Set --advertise-addr deliberately on a multi-homed machine, and remember that leaving Swarm later (docker swarm leave --force) removes every Dokploy service along with it.

Port 3000 must be free before you install

The install script explicitly checks for a listener on port 3000 and aborts with an error if it finds one. Grafana, a Node dev server or another dashboard on that port will stop the install cold. There is no prompt to pick a different port during installation, so free the port first or plan to run Dokploy on a dedicated host.

Still 0.x, with security fixes landing in patch releases

Release v0.29.13 fixed around sixteen command-injection and authorization-bypass issues in one go. That is a young codebase with an active security process, not an abandoned one, but it means you should not run an old pinned version and you should not expose the dashboard on 3000 to the internet. Put it behind a VPN or a reverse proxy with authentication, and keep up with releases.

The licence reserves room for paid-only code

LICENSE.MD splits the repository: anything under a /proprietary directory falls under the Dokploy Source Available License, which forbids production use without a commercial agreement, and everything else is Apache-2.0. No such directory exists at the repository root today, so what you install is Apache-2.0. Treat this as a signal about where the project is heading rather than a current restriction.

Specifications#

Category
Platforms and container management
Licence
Apache-2.0, with DSAL 1.0 reserved for a /proprietary path (Permissive)
Written in
TypeScript
First release
2024
Maturity
Young
Datastore
PostgreSQL 16 (Docker Swarm service, dokploy-postgres volume)
Default ports
80, 443, 3000
Ships as
install script (initializes Docker Swarm), multi-node via Swarm workers
arm64 builds
Yes
Identity
Local accounts only. Local accounts with two-factor and invitations; there is no OIDC login for the dashboard itself.
Replaces
Vercel, Heroku, Netlify, Render
Project site
dokploy.com
Source
github.com/Dokploy/dokploy
Documentation
docs.dokploy.com

Alternatives to Dokploy#

Everything else in platforms and container management, closest in operational weight first.

ToolOps loadIdle RAMLicence
Coolify3, Moderate1200 MBApache-2.0
Komodo3, Moderate250 MBGPL-3.0
TrueNAS Community Edition3, Moderate8192 MBLGPL-3.0 (middleware)
CasaOS2, Light300 MBApache-2.0
Docker Engine2, Light120 MBApache-2.0 (Engine and Compose); Docker Desktop is proprietary
Podman2, Light40 MBApache-2.0

Where Dokploy comes up elsewhere#

Head to head

Sources#

Facts on this page were checked against the project's own material. Where a number is our own estimate rather than a published figure, the text says so.

  1. Repository and feature list
  2. Installation requirements and ports
  3. Install script source
  4. Dual licence terms
  5. Release history

Published . Last reviewed . Found something out of date? Tell us and we will fix it and log the change.