Moving to Dokploy for Docker-native self-hosting
Learn how to migrate from Coolify or Railway to Dokploy for efficient Docker-native self-hosting. Dokploy offers superior scaling via Docker Swarm and features low idle resource usage, requiring as little as 4GB of RAM for standard operations.
Dokploy requires a minimum of 2 vCPU, 4GB RAM, and 20GB disk to run, though I recommend 4 vCPU, 8GB RAM, and 40GB+ disk for production workloads. You install it on Ubuntu 22.04, 24.04 LTS, Debian 12, CentOS, or Fedora using a single command: curl -sSL https://dokploy.com/install.sh | sudo sh. The script automatically installs Docker and Docker Compose, deploys all necessary Dokploy containers, and configures Traefik as a reverse proxy. After the script finishes, you access the interface at http://<your-server-ip>:3000.
| Feature | Dokploy | Coolify |
|---|---|---|
| Idle CPU Usage | 0.8% to 1.5% | 5% to 7% |
| Idle RAM Usage | ~350MB | 500MB to 700MB |
| One-click Templates | 350+ | 280+ |
| GitHub Stars (June 2026) | ~35,000 | ~57,300 |
Dokploy vs Coolify
Dokploy and Coolify both provide a way to run applications on your own VPS instead of paying for managed services like Railway or Heroku. Dokploy uses Docker Swarm for orchestration, which allows you to add worker nodes with a single command to create a cluster. This makes scaling easier than Coolify, where you manage multiple servers through SSH and separate orchestration logic. Coolify uses plain Docker to run applications on a single host or across multiple hosts via SSH.
Dokploy provides a cleaner, more modern UI built with Next.js and TypeScript, which feels more responsive than Coolify’s PHP-based interface. I found that Coolify’s dashboard occasionally feels laggy in a browser when you have many resources open in different tabs. While Coolify provides more built-in environments per project, Dokploy offers better performance for multi-container stacks because it treats Docker Compose as a native primitive. Dokploy supports more build methods than Coolify, including Nixpacks, Dockerfile, Heroku Buildpacks, and Paketo Buildpacks.
If you want to deploy a multi-service stack, Dokploy handles the orchestration through Swarm placement constraints. You can set replicas to 3 in the UI, and Dokploy immediately distributes those containers across your cluster. Coolify requires more manual effort to scale services using Docker Compose replicas. Dokploy also allows you to select custom Docker images for database deployments, whereas Coolify only lets you select a tag from the base image.
Managing databases and deployments
Dokploy manages PostgreSQL, MySQL, MariaDB, MongoDB, and Redis. It provides scheduled backups to S3-compatible storage and supports volume backups for Docker named volumes. You must use named volumes if you want to use the automated backup feature, because the platform does not back up bind mounts. You can also use the Dokploy UI to set environment variables, which the system writes to a .env file. To use these variables inside your containers, you must use the env_file option or the ${VAR_NAME} syntax in your Docker Compose file.
Deployments in Dokploy are fast, often taking only 40 seconds for a full rebuild and 5 seconds for incremental updates. This speed makes it a strong choice for teams that want to move away from the slow build times of managed platforms. You can trigger deployments via webhooks from GitHub, GitLab, Bitbucket, or Gitea. If you deploy a Stack using Docker Swarm, you must add the --with-registry-auth flag to your configuration so that worker nodes can pull images from private registries.
I encountered a significant issue when I tried to experiment with a Web Application Firewall by creating and renaming Docker Compose networks. This action broke my project configuration entirely, and the platform did not provide a way to fix the error gracefully. You still have to manage host security, SSH access, and OS patches yourself. Does the speed of deployment outweigh the manual work of maintaining the underlying Linux host?