{"id":84629,"date":"2026-07-06T07:00:00","date_gmt":"2026-07-06T14:00:00","guid":{"rendered":"https:\/\/dhblog.dream.press\/blog\/?p=84629"},"modified":"2026-07-06T11:20:34","modified_gmt":"2026-07-06T18:20:34","slug":"dokploy-vps","status":"publish","type":"post","link":"https:\/\/www.dreamhost.com\/blog\/dokploy-vps\/","title":{"rendered":"Dokploy on a VPS: Git-Based App Deployment Without the Platform Tax"},"content":{"rendered":"<div class=\"tldr-block\" style=\"display: none;\">\n\t<div class=\"svg\">\n\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 119.25 37.8\">\n\t<g>\n\t\t<g>\n\t\t\t<path fill=\"#ffffff\" d=\"M23.4,6.93h-8.1v24.57h-7.2V6.93H0V0h23.4v6.93Z\" \/>\n\t\t\t<path fill=\"#ffffff\" d=\"M45,24.57v6.93h-18.45V0h7.2v24.57h11.25Z\" \/>\n\t\t\t<path fill=\"#ffffff\"\n\t\t\t\td=\"M90.9,15.75c0,8.91-6.61,15.75-15.3,15.75h-12.6V0h12.6c8.68,0,15.3,6.84,15.3,15.75ZM83.97,15.75c0-5.4-3.42-8.82-8.37-8.82h-5.4v17.64h5.4c4.95,0,8.37-3.42,8.37-8.82Z\" \/>\n\t\t\t<path fill=\"#ffffff\"\n\t\t\t\td=\"M105.57,21.15h-3.42v10.35h-7.2V0h12.6c5.98,0,10.8,4.81,10.8,10.8,0,3.87-2.34,7.38-5.81,9.13l6.71,11.56h-7.74l-5.94-10.35ZM102.15,14.85h5.4c1.98,0,3.6-1.75,3.6-4.05s-1.62-4.05-3.6-4.05h-5.4v8.1Z\" \/>\n\t\t<\/g>\n\t\t<path\n\t\t\tfill=\"#0173ec\"\n\t\t\td=\"M53.97,37.8h-5.4l1.8-13.27h7.2l-3.6,13.27ZM49.02,12.55c0-2.34,1.93-4.27,4.27-4.27s4.27,1.94,4.27,4.27-1.93,4.27-4.27,4.27-4.27-1.94-4.27-4.27Z\"\n\t\t \/>\n\t<\/g>\n<\/svg>\n\t<\/div>\n\t<div class=\"tldr-wrap\">\n\t\t\n\n<p class=\"wp-block-paragraph\">Dokploy is an open-source platform-as-a-service that mirrors the Heroku and Vercel deployment experience, but on a server you control.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Install Dokploy on a VPS with 4 GB of RAM and 40 GB of disk, connect a GitHub repository, and deploy unlimited apps with automatic SSL, managed databases, and Docker Compose support.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A flat VPS bill (DreamHost&#8217;s Stack 4 starts at $8.99\/mo, $15.99 on renewal) replaces $7-and-up per Heroku Basic dyno, $25 for an always-on Standard-1X, or $20 per Vercel developer seat (plus usage on top).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You\u2019ll want a <a href=\"https:\/\/www.dreamhost.com\/hosting\/vps\/\">VPS<\/a> plan like DreamHost\u2019s offering with NVMe SSD storage, full root access, and unmetered bandwidth.<\/p>\n\n\n\t<\/div>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">You ship one project to Heroku\u2019s managed cloud platform.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then a second.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then a third.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It\u2019s all in a month\u2019s work.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But then the bill creeps up from $7, to $35, to $75 a month \u2014 <em>plus<\/em> other variable fees based on add-ons and build minutes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">All of these little apps don\u2019t seem like a big deal at the time, but the cost can add up <em>fast<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you\u2019re looking for an alternative, it\u2019s time to consider Dokploy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dokploy plus a flat-rate VPS mimics the same deploy flow, but without the seemingly ever-growing costs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The catch?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You&#8217;re in charge of the server now.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Which actually isn\u2019t nearly as worrisome as it sounds, as long as you understand what you\u2019re getting into.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Curious?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then come along as we walk through what running Dokploy on a <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/glossary\/hosting\/vps-hosting\/\">VPS hosting<\/a> plan actually looks like, how it compares to managed platforms, which is right for you, and how to get set up.<\/p>\n\n\n\n<h2 id=\"h-what-is-dokploy-and-what-does-it-replace\" class=\"wp-block-heading\">What Is Dokploy and What Does It Replace?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dokploy is an <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/glossary\/web-design\/open-source\/\">open-source<\/a> platform-as-a-service (PaaS) that runs on a Linux VPS with <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/blog\/what-is-docker\/\">Docker<\/a>, giving you a Heroku-style deployment experience but on infrastructure you control.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Push to a Git branch and Dokploy builds the app, routes traffic through a bundled reverse proxy, and serves the result over HTTPS. The control plane is a web dashboard. The workloads are containers.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"761\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/01-What-Dokploy-Runs-On_1x.webp\" alt=\"Dokploy setup form with email and password fields to configure your initial server access credentials.\" class=\"wp-image-84632 lazyload\" data-srcset=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/01-What-Dokploy-Runs-On_1x.webp 1600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/01-What-Dokploy-Runs-On_1x-300x143.webp 300w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/01-What-Dokploy-Runs-On_1x-1024x487.webp 1024w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/01-What-Dokploy-Runs-On_1x-768x365.webp 768w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/01-What-Dokploy-Runs-On_1x-1536x731.webp 1536w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/01-What-Dokploy-Runs-On_1x-600x285.webp 600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/01-What-Dokploy-Runs-On_1x-1200x571.webp 1200w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/01-What-Dokploy-Runs-On_1x-730x347.webp 730w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/01-What-Dokploy-Runs-On_1x-1460x694.webp 1460w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/01-What-Dokploy-Runs-On_1x-784x373.webp 784w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/01-What-Dokploy-Runs-On_1x-1568x746.webp 1568w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/01-What-Dokploy-Runs-On_1x-877x417.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/761;\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Dokploy connects to <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/glossary\/web-design\/github\/\">GitHub<\/a>, GitLab, Bitbucket, or Gitea, and detects what you&#8217;re deploying through one of three paths.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The project has accumulated <a target=\"_blank\" href=\"https:\/\/github.com\/Dokploy\/dokploy\">more than 34,000 stars on GitHub<\/a> and a roster of 388+ one-click templates for Plausible, Pocketbase, Cal.com, Supabase, Ghost, and the rest.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dokploy offers control and monetary savings compared to managed PaaS like Heroku and Vercel, which have per-dyno\/per-seat pricing plus usage. Coolify is a peer to Dokploy, but has a heavier idle footprint \u2014 and CapRover is similarly lightweight but more limited on Docker Compose.<\/p>\n\n\n\n<h3 id=\"h-what-can-you-deploy-with-dokploy\" class=\"wp-block-heading\">What Can You Deploy With Dokploy?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">With Dokploy, you can deploy anything that runs in a container. The patterns most teams actually use look like:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Git-connected web apps:<\/strong> Push to a branch, Nixpacks figures out the language, container deploys.<\/li>\n\n\n\n<li><strong>Managed databases:<\/strong> PostgreSQL, MySQL, MongoDB, MariaDB, Redis, libSQL, and S3-compatible backups.<\/li>\n\n\n\n<li><strong>388+ one-click templates:<\/strong> Plausible, Pocketbase, Cal.com, Supabase, Ghost, and the rest of the self-hosting greatest hits.<\/li>\n\n\n\n<li><strong>Cron jobs and background workers:<\/strong> Scheduled tasks and queue processors run alongside the web services.<\/li>\n\n\n\n<li><strong>Multi-container apps via Docker Compose:<\/strong> Paste the YAML, Dokploy runs the whole stack.<\/li>\n<\/ul>\n\n\n\n<div class=\"article-newsletter article-newsletter--gradient\">\n\n\n<h2>Get Content Delivered Straight to Your Inbox<\/h2><p>Subscribe now to receive all the latest updates, delivered directly to your inbox.<\/p><form class=\"nwsl-form\" id=\"newsletter_block_\" novalidate><div class=\"messages\"><\/div><div class=\"form-group\"><label for=\"input_newsletter_block_\"><input type=\"email\"name=\"email\"id=\"input_newsletter_block_\"placeholder=\"Enter your email address\"novalidatedisabled=\"disabled\"\/><\/label><button type=\"submit\"class=\"btn btn--brand\"disabled=\"disabled\"><span>Sign Me Up!<\/span><svg width=\"21\" height=\"14\" viewBox=\"0 0 21 14\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n<path d=\"M13.8523 0.42524L12.9323 1.34521C12.7095 1.56801 12.7132 1.9304 12.9404 2.14865L16.7241 5.7823H0.5625C0.251859 5.7823 0 6.03416 0 6.3448V7.6573C0 7.96794 0.251859 8.2198 0.5625 8.2198H16.7241L12.9405 11.8535C12.7132 12.0717 12.7095 12.4341 12.9323 12.6569L13.8523 13.5769C14.072 13.7965 14.4281 13.7965 14.6478 13.5769L20.8259 7.39879C21.0456 7.17913 21.0456 6.82298 20.8259 6.60327L14.6477 0.42524C14.4281 0.205584 14.0719 0.205584 13.8523 0.42524Z\" fill=\"white\"\/>\n<\/svg>\n<\/button><\/div><\/form><\/div>\n\n\n<h2 id=\"h-how-much-does-running-dokploy-on-a-vps-cost\" class=\"wp-block-heading\">How Much Does Running Dokploy on a VPS Cost?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dokploy itself is free. No seats, no build minutes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You pay for the VPS underneath, and the VPS usually pays for itself once you have more than one or two small apps.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The platform is <a target=\"_blank\" href=\"https:\/\/dokploy.com\/blog\/we-are-updating-dokploys-open-source-license\">Apache 2.0 licensed<\/a> as of January 21, 2026, with future paid features moving to the Dokploy Source Available License.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dokploy idles at roughly <a target=\"_blank\" href=\"https:\/\/massivegrid.com\/blog\/dokploy-vs-coolify-vs-caprover\/\">350 MB of RAM and 0.8% CPU<\/a> per MassiveGRID&#8217;s benchmark, leaving most of a 4 GB box free for app containers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You\u2019re looking for a <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/hosting\/vps\/\">VPS<\/a> plan where Dokploy runs on 4 GB at the baseline, with NVMe storage, full root access, and unmetered <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/glossary\/hosting\/bandwidth\/\">bandwidth<\/a>.<\/p>\n\n\n\n<h3 id=\"h-dokploy-vs-heroku-vercel-and-render-pricing\" class=\"wp-block-heading\">Dokploy vs. Heroku, Vercel, and Render Pricing<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">These three platforms charge slightly differently, but the fees add up just the same once you have a handful of apps:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Heroku Basic:<\/strong> $7 per dyno per month. Five small apps cost $35 before databases. Essential Postgres starts at $5\/month (Essential-0); the 10 GB Essential-1 plan is $9.<\/li>\n\n\n\n<li><strong>Heroku Standard-1X:<\/strong> $25 per dyno. The always-on step up from Basic \u2014 Standard-1X dynos don\u2019t sleep, and it\u2019s the entry point for horizontal scaling.<\/li>\n\n\n\n<li><strong>Vercel Pro:<\/strong> $20 per developer per month with $20 of included credit. Bandwidth and function invocations bill on top.<\/li>\n\n\n\n<li><strong>Render Starter: <\/strong>$7 per web service for 512 MB RAM and 0.5 vCPU. As of April 2026, Render bills workspaces at a flat rate rather than per seat. The Pro workspace is $25 per month with unlimited team members.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The additional costs are the same across all three: bandwidth overages, build minutes, database add-ons, and seats for collaborators. Flat-rate VPS doesn&#8217;t have any of these line items.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Setup<\/strong><\/th><th><strong>Monthly Cost<\/strong><\/th><th><strong>Notes<\/strong><\/th><\/tr><\/thead><tbody><tr><td>5 \u00d7 Heroku Basic dynos + Essential Postgres<\/td><td>$35 + $9 = <strong>$44<\/strong><\/td><td>$7 per app. Essential-1 Postgres at $9 (Essential-0 starts at $5). Bandwidth and build minutes extra.<\/td><\/tr><tr><td>5 \u00d7 Render Starter web services + Pro workspace<\/td><td>$35 + $25 = <strong>$60<\/strong><\/td><td>$7 per service plus a flat $25\/mo Pro workspace (unlimited users; per-seat billing ended April 2026).<\/td><\/tr><tr><td>1 \u00d7 Vercel Pro seat (5 apps)<\/td><td>$20 + usage<\/td><td>$20 per developer per month (includes $20 of credit). Bandwidth and function invocations extra.<\/td><\/tr><tr><td>1 \u00d7 VPS (4 GB minimum) + Dokploy<\/td><td><strong>flat rate<\/strong><\/td><td>One reliable bill, as many apps as you want.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 id=\"h-what-vps-do-you-need-to-run-dokploy\" class=\"wp-block-heading\">What VPS Do You Need to Run Dokploy?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The official minimum is <a target=\"_blank\" href=\"https:\/\/docs.dokploy.com\/docs\/core\/installation\">2 GB of RAM, 30 GB of disk, and a Docker-compatible Linux distro<\/a>. In our opinion, a more realistic recommendation is 4 GB and 40+ GB, because the official minimum is a fresh-install benchmark and your actual apps will use RAM.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dokploy officially supports Ubuntu (24.04, 23.10, 22.04, 20.04, 18.04), Debian (12, 11, 10), Fedora 40, and CentOS (9, 8). Any other Docker-compatible distro generally works, but those are the tested ones.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Any cloud VPS that runs one of those distros works. DigitalOcean droplets, Hetzner Cloud, Linode, AWS Lightsail, and our <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/hosting\/vps\/\">VPS hosting<\/a> at DreamHost all qualify.<\/p>\n\n\n\n<h2 id=\"h-how-do-you-install-dokploy-on-a-vps\" class=\"wp-block-heading\">How Do You Install Dokploy on a VPS?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The install is one shell command that handles Docker, Docker Swarm, the four Dokploy containers, and the initial database in one pass. It typically finishes in a few minutes, mostly spent pulling images.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Prerequisites: a clean Linux VPS with root SSH access, a <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/glossary\/domains\/a-record\/\">DNS A<\/a> record pointing at the server&#8217;s IPv4, and ports 80, 443, and 3000 open.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here are the steps to install:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>SSH into the server as root.<\/li>\n\n\n\n<li>Run the install script.<\/li>\n\n\n\n<li>Wait three to five minutes while the script provisions Docker, pulls the four Dokploy containers, and starts Traefik.<\/li>\n\n\n\n<li>Visit `http:\/\/your-server-ip:3000` in a browser.<\/li>\n\n\n\n<li>Create the admin account on the setup screen.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"922\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/02-Dokploy-Setup-Screen_1x.webp\" alt=\"Dokploy setup form with email and password fields to configure your initial server access credentials.\" class=\"wp-image-84633 lazyload\" data-srcset=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/02-Dokploy-Setup-Screen_1x.webp 1600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/02-Dokploy-Setup-Screen_1x-300x173.webp 300w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/02-Dokploy-Setup-Screen_1x-1024x590.webp 1024w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/02-Dokploy-Setup-Screen_1x-768x443.webp 768w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/02-Dokploy-Setup-Screen_1x-1536x885.webp 1536w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/02-Dokploy-Setup-Screen_1x-600x346.webp 600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/02-Dokploy-Setup-Screen_1x-1200x692.webp 1200w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/02-Dokploy-Setup-Screen_1x-730x421.webp 730w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/02-Dokploy-Setup-Screen_1x-1460x841.webp 1460w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/02-Dokploy-Setup-Screen_1x-784x452.webp 784w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/02-Dokploy-Setup-Screen_1x-1568x904.webp 1568w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/02-Dokploy-Setup-Screen_1x-877x505.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/922;\" \/><\/figure>\n\n\n\n<ol start=\"6\" class=\"wp-block-list\">\n<li>Point a domain at the server, paste it into Dokploy, and Dokploy provisions a Let&#8217;s Encrypt SSL cert automatically.<\/li>\n\n\n\n<li>Close port 3000 to the public once HTTPS is live.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Here\u2019s the install command itself, verbatim from the <a target=\"_blank\" href=\"https:\/\/docs.dokploy.com\/docs\/core\/installation\">official docs<\/a>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -sSL https:\/\/dokploy.com\/install.sh | sh<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">That script is a single HTTP fetch piped into <code>`sh`<\/code>, which is standard for trusted-source installs. If you&#8217;d rather inspect first, the manual install path is also in the docs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What&#8217;s running when the script finishes is a four-container stack, which looks like this:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Traefik:<\/strong> The reverse proxy. Routes traffic to the right container and handles Let&#8217;s Encrypt certs.<\/li>\n\n\n\n<li><strong>Dokploy:<\/strong> The web UI and API on port 3000. The control plane.<\/li>\n\n\n\n<li><strong>PostgreSQL:<\/strong> Dokploy&#8217;s metadata store. Internal Docker network only.<\/li>\n\n\n\n<li><strong>Redis:<\/strong> The deployment job queue. It serializes builds and deploys (so two deployments don&#8217;t collide) and handles background job processing.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">For SSL, enter a domain in the Dokploy UI. Traefik requests a 90-day Let&#8217;s Encrypt cert via the HTTP-01 challenge on port 80 and auto-renews it automatically about 30 days before expiry. If a cert request fails, the usual cause is that port 80 isn&#8217;t actually open or DNS hasn&#8217;t propagated yet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For the full step-by-step with firewall configuration and post-install hardening, the <a target=\"_blank\" href=\"https:\/\/docs.dokploy.com\/docs\/core\/installation\">Dokploy installation docs<\/a> walk through everything.<\/p>\n\n\n\n<h2 id=\"h-how-does-dokploy-compare-to-coolify-and-caprover\" class=\"wp-block-heading\">How Does Dokploy Compare to Coolify and CapRover?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dokploy, Coolify, and CapRover all have trade-offs when comparing idle footprint, Docker Compose support, and UX polish.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Feature<\/strong><\/th><th><strong>Dokploy<\/strong><\/th><th><strong>Coolify<\/strong><\/th><th><strong>CapRover<\/strong><\/th><\/tr><\/thead><tbody><tr><td>Idle RAM<\/td><td>~350 MB<\/td><td>~500-700 MB<\/td><td>~300-400 MB<\/td><\/tr><tr><td>Idle CPU<\/td><td>~0.8%<\/td><td>~5-6%<\/td><td>~1-2%<\/td><\/tr><tr><td>Docker Compose<\/td><td>Native, multi-service<\/td><td>Native, multi-service<\/td><td>Limited (single-container focus)<\/td><\/tr><tr><td>Multi-server<\/td><td>Docker Swarm<\/td><td>Multi-server dashboard<\/td><td>Docker Swarm<\/td><\/tr><tr><td>GitHub stars (May 2026)<\/td><td>34K<\/td><td>~56K<\/td><td>~14K<\/td><\/tr><tr><td>Best for<\/td><td>Lightweight, Compose-first<\/td><td>Polished UX on 8 GB+<\/td><td>One-container templates<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Pick Dokploy on a 2-4 GB VPS or when the workload includes multi-service apps. Pick Coolify on 8 GB+ when polish matters. Pick CapRover when the workload is simple one-container apps.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Coolify is the most feature-rich of the three. The dashboard is the prettiest, the integrations are the most numerous, and on a well-provisioned 8 GB+ server it&#8217;s a delight. Its idle footprint is its downfall: <a target=\"_blank\" href=\"https:\/\/massivegrid.com\/blog\/dokploy-vs-coolify-vs-caprover\/\">around 500-700 MB and 5-6% CPU<\/a>. Fine on big boxes, tight on small ones.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">CapRover (originally CaptainDuckDuck, RIP) is the elder of the three (and shows it). The UI is simple, it has a solid template library for one-container apps, and the multi-service Docker Compose support is limited compared to the other two.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ultimately, Dokploy lands between them. Lighter than Coolify and more flexible than CapRover for multi-container apps.<\/p>\n\n\n\n<h2 id=\"h-when-should-you-self-host-with-dokploy-and-when-shouldn-t-you\" class=\"wp-block-heading\">When Should You Self-Host With Dokploy (And When Shouldn&#8217;t You)?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Generally speaking, we recommend self-hosting with Dokploy when the math works, when you can spend about an hour a month on maintenance, and when you&#8217;d rather pay for a server than for seats.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">By app number three, a flat-rate VPS is likely going to be cheaper than the equivalent on any per-dyno or per-seat platform.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dokploy is the right call when:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>You have three or more small apps running 24\/7. <\/strong>The cost of managed PaaS hits fast when your apps are always on.&nbsp;<\/li>\n\n\n\n<li><strong>You need the guarantee of flat-rate billing. <\/strong>No usage meter, no bandwidth overage, and no per-seat add-on.<\/li>\n\n\n\n<li><strong>You use Docker Compose. <\/strong>Multi-service apps deploy as one unit, the way they run locally.<\/li>\n\n\n\n<li><strong>You care about data portability. <\/strong>Your apps, your databases, your server \u2014&nbsp;all moveable to any <a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/hosting\/web-hosting\/\">web host<\/a> that runs Docker.<\/li>\n\n\n\n<li><strong>You can spend 30-60 minutes a month on maintenance. <\/strong>You\u2019ll need to stay on top of OS patches, the occasional apt upgrade, and disk usage.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Don&#8217;t self-host with Dokploy when:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>You have one hobby app with low traffic.<\/strong> Heroku&#8217;s most basic plan is probably fine for you.<\/li>\n\n\n\n<li><strong>The workload is spiky and needs autoscaling-to-zero.<\/strong> Dokploy runs containers, not Lambda functions.<\/li>\n\n\n\n<li><strong>No one on your team can SSH into a server and read a log file.<\/strong> You don&#8217;t need to be a sysadmin, but someone needs to know how to run journalctl.<\/li>\n\n\n\n<li><strong>You need enterprise SLAs.<\/strong> Workloads with contractual uptime guarantees still belong on managed cloud platforms or self-built Kubernetes.<\/li>\n<\/ul>\n\n\n\n<h2 id=\"h-how-do-you-scale-dokploy-beyond-one-server\" class=\"wp-block-heading\">How Do You Scale Dokploy Beyond One Server?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dokploy supports <a target=\"_blank\" href=\"https:\/\/docs.dokploy.com\/docs\/core\/cluster\">multi-server deployments via Docker Swarm<\/a>, where one server is the control plane and one or more remote servers are workers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The control plane runs Dokploy and Traefik. Workers run the app containers. Traefik routes incoming traffic to whichever worker has the right container for a given route.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1600\" height=\"1428\" data-src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/03-Scaling-Dokploy-with-a-Second-Server.webp\" alt=\"Dokploy control plane routes visitor traffic between two worker servers running containerized applications.\" class=\"wp-image-84634 lazyload\" data-srcset=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/03-Scaling-Dokploy-with-a-Second-Server.webp 1600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/03-Scaling-Dokploy-with-a-Second-Server-300x268.webp 300w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/03-Scaling-Dokploy-with-a-Second-Server-1024x914.webp 1024w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/03-Scaling-Dokploy-with-a-Second-Server-768x685.webp 768w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/03-Scaling-Dokploy-with-a-Second-Server-1536x1371.webp 1536w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/03-Scaling-Dokploy-with-a-Second-Server-600x536.webp 600w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/03-Scaling-Dokploy-with-a-Second-Server-1200x1071.webp 1200w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/03-Scaling-Dokploy-with-a-Second-Server-730x652.webp 730w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/03-Scaling-Dokploy-with-a-Second-Server-1460x1303.webp 1460w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/03-Scaling-Dokploy-with-a-Second-Server-784x700.webp 784w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/03-Scaling-Dokploy-with-a-Second-Server-1568x1399.webp 1568w, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/03-Scaling-Dokploy-with-a-Second-Server-877x783.webp 877w\" data-sizes=\"(max-width: 1600px) 100vw, 1600px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/1428;\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Here\u2019s how to set up the architecture in three steps:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Stand up a second VPS with Docker installed. Same provider, different region \u2014 doesn&#8217;t matter to Dokploy.<\/li>\n\n\n\n<li>In the Dokploy UI, add the new server as a worker and paste in its SSH details. Dokploy joins it to the Swarm cluster.<\/li>\n\n\n\n<li>Deploy apps to the cluster. Specify replicas and placement, Dokploy and Traefik handle the rest.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">The trigger to add a second server is usually one of two things: You&#8217;ve outgrown a single box&#8217;s resources (RAM consistently tight, builds queue, restarts slow) or you&#8217;ve hit single-point-of-failure pain.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Backups still matter with multi-server, because cluster availability isn&#8217;t the same as data durability.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dokploy supports automated backups of its managed databases to any S3-compatible store, and you should configure those off-server before putting real workloads on the cluster. A multi-server cluster with no off-server backup is still one bad day from a long restore.<\/p>\n\n\n\n<h2 id=\"h-so-is-dokploy-the-answer-for-you\" class=\"wp-block-heading\">So, Is Dokploy the Answer for You?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If the fees have started to feel arbitrary \u2014 per-dyno, per-seat, per-bandwidth-spike \u2014 a flat-rate VPS with Dokploy is the more honest deal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The install is one shell command. The deploy flow is just like the one you already know, with managed databases and free SSL bundled in. The biggest catch is really a bit of maintenance time every month.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Honestly, that seems worth it to us for most cases.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If your workload is one tiny app that sleeps most of the day, a managed PaaS like Heroku is fine. If it&#8217;s three or more apps running 24\/7, the math is already in favor of Dokploy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Either way, run the numbers \u2014 then go ship something.<\/p>\n\n\n\n\n<div class=\"article-cta-shared article-cta-small article-cta--product\">\n\t<div class=\"tr-img-wrap-outer jsLoading\"><img decoding=\"async\" class=\"js-img-lazy \" src=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/themes\/blog2018\/assets\/img\/lazy-loading-transparent.webp\" data-srcset=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/cta_image_a-877x522.webp 1x, https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/06\/cta_image_a.webp 2x\"  \/><\/div>\n\n\t<a href='https:\/\/www.dreamhost.com\/hosting\/vps\/' class='link-top' target='_blank' rel='noopener noreferrer'>\n\t\t<span>VPS<\/span>\n\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 384 512\" width=\"15\"><path d=\"M342.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L274.7 256 105.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"\/><\/svg>\n\t<\/a>\n\n\t<div class=\"content-btm\">\n\t\t<h2 class=\"h2--md\">\n\t\t\tOwn Your Entire Stack. Apps, AI, Databases, and More.\n\t\t<\/h2>\n\t\t<p class=\"p--md\">\n\t\t\tKeep every credential and conversation on a server you control, with NVMe speed and unmetered bandwidth built in.\n\t\t<\/p>\n\n\t\t        <a\n            href=\"https:\/\/www.dreamhost.com\/hosting\/vps\/\"\n                        class=\"btn btn--white-outline btn--sm btn--round\"\n                                    target=\"_blank\"\n            rel=\"noopener noreferrer\"\n            >\n                            Explore VPS Hosting Plans                    <\/a>\n\n\t<\/div>\n<\/div>\n\n\n<h2 id=\"h-frequently-asked-questions-about-dokploy-on-a-vps\" class=\"wp-block-heading\">Frequently Asked Questions About Dokploy on a VPS<\/h2>\n\n\n\n<h3 id=\"h-is-dokploy-free\" class=\"wp-block-heading\">Is Dokploy free?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes, Dokploy is free and open source under the Apache License 2.0. Future paid features will ship under a Dokploy Source Available License, but the platform you self-host today is genuinely free with no seats, no usage meter, no asterisks.<\/p>\n\n\n\n<h3 id=\"h-how-much-ram-does-dokploy-need\" class=\"wp-block-heading\">How much RAM does Dokploy need?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Technically<\/em> Dokploy needs at least 2 GB of RAM and 30 GB of disk per the <a target=\"_blank\" href=\"https:\/\/docs.dokploy.com\/docs\/core\/installation\">official docs<\/a>, but 4 GB is the realistic recommendation for any production-leaning setup. Dokploy itself idles <a target=\"_blank\" href=\"https:\/\/massivegrid.com\/blog\/dokploy-vs-coolify-vs-caprover\/\">around 350 MB of RAM<\/a>, leaving most of a 4 GB box free for app containers. Builds and active workloads push usage higher, which is why the official minimum is a floor, not a target.<\/p>\n\n\n\n<h3 id=\"h-does-dokploy-support-docker-compose\" class=\"wp-block-heading\">Does Dokploy support Docker Compose?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes, Dokploy has native Docker Compose support. Paste in docker-compose.yml and Dokploy treats the full stack as a single application: web service, worker, database, and cache. This is a meaningful differentiator versus CapRover, where Compose support is limited to single-container deployments.<\/p>\n\n\n\n<h3 id=\"h-can-dokploy-deploy-from-github\" class=\"wp-block-heading\">Can Dokploy deploy from GitHub?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes, Dokploy connects to GitHub, GitLab, Bitbucket, and Gitea; and auto-detects most runtimes. Nixpacks identifies Node.js, Python, Go, Ruby, and PHP projects without configuration. If your project has a Dockerfile, Dokploy uses that. If you&#8217;re migrating from Heroku, your existing Heroku Buildpack works, too.<\/p>\n\n\n\n<h3 id=\"h-how-does-dokploy-compare-to-coolify\" class=\"wp-block-heading\">How does Dokploy compare to Coolify?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Dokploy and Coolify are both self-hosted PaaS tools, but they have their differences. Dokploy is lighter (~350 MB idle vs. Coolify&#8217;s ~500-700 MB) and Compose-first. Coolify has the more polished UX and broader feature set, especially around integrations. The decision usually comes down to server size: Pick Dokploy on a 2-4 GB box, pick Coolify when you&#8217;re on 8 GB+ and want the polish.<\/p>\n\n\n\n<h3 id=\"h-what-s-the-easiest-way-to-run-dokploy-on-a-managed-vps\" class=\"wp-block-heading\">What&#8217;s the easiest way to run Dokploy on a managed VPS?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/hosting\/vps\/\">DreamHost&#8217;s VPS<\/a> for Dokploy, specifically the Stack 4 plan at 4 GB RAM, is a clean baseline. NVMe SSD storage handles container I\/O fast, unmetered bandwidth means traffic spikes don&#8217;t bill extra, and full root access is non-negotiable for any self-hosted PaaS. Sizing maps to load: Stack 4 for 1-3 light apps, Stack 8 for a team&#8217;s worth, Stack 16 for production multi-tenant.<\/p>\n\n\n\n<h3 id=\"h-is-dokploy-production-ready\" class=\"wp-block-heading\">Is Dokploy production-ready?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes, Dokploy is production-ready for single-server and small multi-server deployments. Side projects, internal tools, agency client sites, and small SaaS all clear that bar. Enterprise SLA-grade workloads still belong on managed cloud platforms or self-built Kubernetes.<\/p>\n\n\n\n<h3 id=\"h-can-you-migrate-from-heroku-to-dokploy\" class=\"wp-block-heading\">Can you migrate from Heroku to Dokploy?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes, Dokploy supports Heroku Buildpacks natively, so most Heroku apps redeploy with minimal config changes. Point Dokploy at the same Git repository, pick the buildpack, and deploy. The separate step is the database: Dump your managed Postgres from Heroku, restore it into a Dokploy-managed Postgres or an external host, and update the connection string.<\/p>\n\n\n<p><script type=\"application\/ld+json\"><br \/>\n{<br \/>\n  \"@context\": \"https:\/\/schema.org\",<br \/>\n  \"@graph\": [<br \/>\n    {<br \/>\n      \"@type\": \"FAQPage\",<br \/>\n      \"mainEntity\": [<br \/>\n        {<br \/>\n          \"@type\": \"Question\",<br \/>\n          \"name\": \"Is dokploy free?\",<br \/>\n          \"acceptedAnswer\": {<br \/>\n            \"@type\": \"Answer\",<br \/>\n            \"text\": \"Yes, Dokploy is free and open source. The current codebase is licensed under Apache 2.0 as of the January 21, 2026 license update. Future paid features will ship under a Dokploy Source Available License, but the platform you self-host today is genuinely free, with no seats, no usage meter, no asterisk.\"<br \/>\n          }<br \/>\n        },<br \/>\n        {<br \/>\n          \"@type\": \"Question\",<br \/>\n          \"name\": \"How much RAM does dokploy need?\",<br \/>\n          \"acceptedAnswer\": {<br \/>\n            \"@type\": \"Answer\",<br \/>\n            \"text\": \"Dokploy needs at least 2 GB of RAM and 30 GB of disk per the official docs, but 4 GB is the realistic recommendation for any production-leaning setup. Dokploy itself idles at around 350 MB of RAM, which leaves most of a 4 GB box free for app containers. Builds and active workloads push usage higher, which is why the official minimum is a floor, not a target.\"<br \/>\n          }<br \/>\n        },<br \/>\n        {<br \/>\n          \"@type\": \"Question\",<br \/>\n          \"name\": \"Does dokploy support Docker Compose?\",<br \/>\n          \"acceptedAnswer\": {<br \/>\n            \"@type\": \"Answer\",<br \/>\n            \"text\": \"Yes, Dokploy has native Docker Compose support. Paste or reference a docker-compose.yml and Dokploy treats the full stack as a single application, including web service, worker, database, and cache. This is a meaningful differentiator versus CapRover, where Docker Compose support is limited to single-container deployments and multi-service apps need workarounds.\"<br \/>\n          }<br \/>\n        },<br \/>\n        {<br \/>\n          \"@type\": \"Question\",<br \/>\n          \"name\": \"Can dokploy deploy from GitHub?\",<br \/>\n          \"acceptedAnswer\": {<br \/>\n            \"@type\": \"Answer\",<br \/>\n            \"text\": \"Yes, Dokploy connects to GitHub, GitLab, Bitbucket, and Gitea, and auto-detects most popular runtimes. Nixpacks identifies Node.js, Python, Go, Ruby, and PHP projects without any configuration. If your project has a Dockerfile, Dokploy uses that instead. If you're migrating from Heroku, your existing Heroku Buildpack will work too.\"<br \/>\n          }<br \/>\n        },<br \/>\n        {<br \/>\n          \"@type\": \"Question\",<br \/>\n          \"name\": \"How does dokploy compare to Coolify?\",<br \/>\n          \"acceptedAnswer\": {<br \/>\n            \"@type\": \"Answer\",<br \/>\n            \"text\": \"Dokploy and Coolify are both self-hosted PaaS tools, but they make different trade-offs. Dokploy is lighter (~350 MB idle vs. Coolify's ~500-700 MB) and Compose-first. Coolify has the more polished UX and broader feature set, especially around integrations. The decision usually comes down to server size: pick Dokploy on a 2-4 GB box, pick Coolify when you're on 8 GB+ and want the polish.\"<br \/>\n          }<br \/>\n        },<br \/>\n        {<br \/>\n          \"@type\": \"Question\",<br \/>\n          \"name\": \"What's the easiest way to run dokploy on a managed VPS?\",<br \/>\n          \"acceptedAnswer\": {<br \/>\n            \"@type\": \"Answer\",<br \/>\n            \"text\": \"DreamHost's VPS, specifically the Stack 4 plan at 4 GB RAM, is a clean baseline for Dokploy. NVMe SSD storage handles container I\/O fast, unmetered bandwidth means traffic spikes don't bill extra, and full root access is non-negotiable for any self-hosted PaaS. The sizing matrix maps the Stack tiers to realistic app loads: Stack 4 for 1-3 light apps, Stack 8 for a team's worth, Stack 16 for production multi-tenant.\"<br \/>\n          }<br \/>\n        },<br \/>\n        {<br \/>\n          \"@type\": \"Question\",<br \/>\n          \"name\": \"Is dokploy production-ready?\",<br \/>\n          \"acceptedAnswer\": {<br \/>\n            \"@type\": \"Answer\",<br \/>\n            \"text\": \"Yes, Dokploy is production-ready for single-server and small multi-server deployments. Side projects, internal tools, agency client sites, and small SaaS all clear that bar. Enterprise SLA-grade workloads still belong on managed cloud platforms or self-built Kubernetes.\"<br \/>\n          }<br \/>\n        },<br \/>\n        {<br \/>\n          \"@type\": \"Question\",<br \/>\n          \"name\": \"Can you migrate from Heroku to Dokploy?\",<br \/>\n          \"acceptedAnswer\": {<br \/>\n            \"@type\": \"Answer\",<br \/>\n            \"text\": \"Yes, Dokploy supports Heroku Buildpacks natively, which means most Heroku apps redeploy with minimal config changes. The build step is essentially unchanged: point Dokploy at the same Git repository, pick the buildpack, deploy. Database migration is the separate step. Dump your managed Postgres from Heroku, restore it into a Dokploy-managed Postgres or an external Postgres host, and update the connection string.\"<br \/>\n          }<br \/>\n        }<br \/>\n      ]<br \/>\n    },<br \/>\n    {<br \/>\n      \"@type\": \"HowTo\",<br \/>\n      \"name\": \"How to install Dokploy on a VPS\",<br \/>\n      \"step\": [<br \/>\n        {<br \/>\n          \"@type\": \"HowToStep\",<br \/>\n          \"name\": \"SSH into the server as root\",<br \/>\n          \"text\": \"Connect to your VPS as the root user via SSH.\"<br \/>\n        },<br \/>\n        {<br \/>\n          \"@type\": \"HowToStep\",<br \/>\n          \"name\": \"Run the install script\",<br \/>\n          \"text\": \"Run: curl -sSL https:\/\/dokploy.com\/install.sh | sh\"<br \/>\n        },<br \/>\n        {<br \/>\n          \"@type\": \"HowToStep\",<br \/>\n          \"name\": \"Wait for provisioning\",<br \/>\n          \"text\": \"Wait three to five minutes while the script provisions Docker, pulls the four Dokploy containers, and starts Traefik.\"<br \/>\n        },<br \/>\n        {<br \/>\n          \"@type\": \"HowToStep\",<br \/>\n          \"name\": \"Open the Dokploy dashboard\",<br \/>\n          \"text\": \"Visit http:\/\/your-server-ip:3000 in a browser.\"<br \/>\n        },<br \/>\n        {<br \/>\n          \"@type\": \"HowToStep\",<br \/>\n          \"name\": \"Create the admin account\",<br \/>\n          \"text\": \"Create the admin account on the setup screen.\"<br \/>\n        },<br \/>\n        {<br \/>\n          \"@type\": \"HowToStep\",<br \/>\n          \"name\": \"Point a domain and enable HTTPS\",<br \/>\n          \"text\": \"Point a domain at the server, paste it into Dokploy, and Dokploy provisions a Let's Encrypt SSL cert automatically.\"<br \/>\n        },<br \/>\n        {<br \/>\n          \"@type\": \"HowToStep\",<br \/>\n          \"name\": \"Close port 3000\",<br \/>\n          \"text\": \"Close port 3000 to the public once HTTPS is live.\"<br \/>\n        }<br \/>\n      ]<br \/>\n    }<br \/>\n  ]<br \/>\n}<br \/>\n<\/script><\/p>","protected":false},"excerpt":{"rendered":"<p>Learn how and why to install Dokploy on a VPS to deploy unlimited apps from Git for a flat monthly fee.<\/p>\n","protected":false},"author":2,"featured_media":84631,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_yoast_wpseo_opengraph-title":"Dokploy on a VPS: Deploy Unlimited Apps for a Flat Fee","_yoast_wpseo_opengraph-description":"Install Dokploy on a VPS to deploy apps straight from Git with automatic SSL, managed databases, and one flat monthly bill instead of per-app pricing.","_yoast_wpseo_twitter-title":"Dokploy on a VPS: Deploy Unlimited Apps for a Flat Fee","_yoast_wpseo_twitter-description":"Install Dokploy on a VPS to deploy apps straight from Git with automatic SSL, managed databases, and one flat monthly bill instead of per-app pricing.","toc_headlines":"[[\"h-what-is-dokploy-and-what-does-it-replace\",\"What Is Dokploy and What Does It Replace?\"],[\"h-how-much-does-running-dokploy-on-a-vps-cost\",\"How Much Does Running Dokploy on a VPS Cost?\"],[\"h-what-vps-do-you-need-to-run-dokploy\",\"What VPS Do You Need to Run Dokploy?\"],[\"h-how-do-you-install-dokploy-on-a-vps\",\"How Do You Install Dokploy on a VPS?\"],[\"h-how-does-dokploy-compare-to-coolify-and-caprover\",\"How Does Dokploy Compare to Coolify and CapRover?\"],[\"h-when-should-you-self-host-with-dokploy-and-when-shouldn-t-you\",\"When Should You Self-Host With Dokploy (And When Shouldn't You)?\"],[\"h-how-do-you-scale-dokploy-beyond-one-server\",\"How Do You Scale Dokploy Beyond One Server?\"],[\"h-so-is-dokploy-the-answer-for-you\",\"So, Is Dokploy the Answer for You?\"],[\"h-frequently-asked-questions-about-dokploy-on-a-vps\",\"Frequently Asked Questions About Dokploy on a VPS\"]]","hide_toc":false,"footnotes":""},"categories":[550,807,804],"tags":[],"class_list":["post-84629","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","category-vps-hosting","category-web-hosting"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.3 (Yoast SEO v27.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Dokploy on a VPS: Git Deployment Without the Platform Tax - DreamHost<\/title>\n<meta name=\"description\" content=\"Learn how and why to install Dokploy on a VPS to deploy unlimited apps from Git for a flat monthly fee.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dreamhost.com\/blog\/dokploy-vps\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dokploy on a VPS: Deploy Unlimited Apps for a Flat Fee\" \/>\n<meta property=\"og:description\" content=\"Install Dokploy on a VPS to deploy apps straight from Git with automatic SSL, managed databases, and one flat monthly bill instead of per-app pricing.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dreamhost.com\/blog\/dokploy-vps\/\" \/>\n<meta property=\"og:site_name\" content=\"DreamHost Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DreamHost\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-06T14:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-07-06T18:20:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/1220-x-628-OGIMAGE_Dokploy-on-a-VPS_1x.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Dallas Kashuba\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Dokploy on a VPS: Deploy Unlimited Apps for a Flat Fee\" \/>\n<meta name=\"twitter:description\" content=\"Install Dokploy on a VPS to deploy apps straight from Git with automatic SSL, managed databases, and one flat monthly bill instead of per-app pricing.\" \/>\n<meta name=\"twitter:creator\" content=\"@http:\/\/twitter.com\/dallas\" \/>\n<meta name=\"twitter:site\" content=\"@dreamhost\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dallas Kashuba\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Dokploy on a VPS: Git Deployment Without the Platform Tax - DreamHost","description":"Learn how and why to install Dokploy on a VPS to deploy unlimited apps from Git for a flat monthly fee.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dreamhost.com\/blog\/dokploy-vps\/","og_locale":"en_US","og_type":"article","og_title":"Dokploy on a VPS: Deploy Unlimited Apps for a Flat Fee","og_description":"Install Dokploy on a VPS to deploy apps straight from Git with automatic SSL, managed databases, and one flat monthly bill instead of per-app pricing.","og_url":"https:\/\/www.dreamhost.com\/blog\/dokploy-vps\/","og_site_name":"DreamHost Blog","article_publisher":"https:\/\/www.facebook.com\/DreamHost\/","article_published_time":"2026-07-06T14:00:00+00:00","article_modified_time":"2026-07-06T18:20:34+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/1220-x-628-OGIMAGE_Dokploy-on-a-VPS_1x.webp","type":"image\/webp"}],"author":"Dallas Kashuba","twitter_card":"summary_large_image","twitter_title":"Dokploy on a VPS: Deploy Unlimited Apps for a Flat Fee","twitter_description":"Install Dokploy on a VPS to deploy apps straight from Git with automatic SSL, managed databases, and one flat monthly bill instead of per-app pricing.","twitter_creator":"@http:\/\/twitter.com\/dallas","twitter_site":"@dreamhost","twitter_misc":{"Written by":"Dallas Kashuba","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dreamhost.com\/blog\/dokploy-vps\/#article","isPartOf":{"@id":"https:\/\/www.dreamhost.com\/blog\/dokploy-vps\/"},"author":{"name":"Dallas Kashuba","@id":"https:\/\/www.dreamhost.com\/blog\/#\/schema\/person\/f6a12ad459538e8e418cf31b8b603814"},"headline":"Dokploy on a VPS: Git-Based App Deployment Without the Platform Tax","datePublished":"2026-07-06T14:00:00+00:00","dateModified":"2026-07-06T18:20:34+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dreamhost.com\/blog\/dokploy-vps\/"},"wordCount":2541,"publisher":{"@id":"https:\/\/www.dreamhost.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.dreamhost.com\/blog\/dokploy-vps\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/1460x1095-BLOG-HERO-Dokploy-on-a-VPS_1x.webp","articleSection":["Tutorials","VPS Hosting","Web Hosting"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.dreamhost.com\/blog\/dokploy-vps\/","url":"https:\/\/www.dreamhost.com\/blog\/dokploy-vps\/","name":"Dokploy on a VPS: Git Deployment Without the Platform Tax - DreamHost","isPartOf":{"@id":"https:\/\/www.dreamhost.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dreamhost.com\/blog\/dokploy-vps\/#primaryimage"},"image":{"@id":"https:\/\/www.dreamhost.com\/blog\/dokploy-vps\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/1460x1095-BLOG-HERO-Dokploy-on-a-VPS_1x.webp","datePublished":"2026-07-06T14:00:00+00:00","dateModified":"2026-07-06T18:20:34+00:00","description":"Learn how and why to install Dokploy on a VPS to deploy unlimited apps from Git for a flat monthly fee.","breadcrumb":{"@id":"https:\/\/www.dreamhost.com\/blog\/dokploy-vps\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dreamhost.com\/blog\/dokploy-vps\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dreamhost.com\/blog\/dokploy-vps\/#primaryimage","url":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/1460x1095-BLOG-HERO-Dokploy-on-a-VPS_1x.webp","contentUrl":"https:\/\/www.dreamhost.com\/blog\/wp-content\/uploads\/2026\/07\/1460x1095-BLOG-HERO-Dokploy-on-a-VPS_1x.webp","width":1460,"height":1095,"caption":"Dokploy on a VPS: Git-Based App Deployment Without the Platform Tax"},{"@type":"BreadcrumbList","@id":"https:\/\/www.dreamhost.com\/blog\/dokploy-vps\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.dreamhost.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Dokploy on a VPS: Git-Based App Deployment Without the Platform Tax"}]},{"@type":"WebSite","@id":"https:\/\/www.dreamhost.com\/blog\/#website","url":"https:\/\/www.dreamhost.com\/blog\/","name":"DreamHost Blog","description":"","publisher":{"@id":"https:\/\/www.dreamhost.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dreamhost.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.dreamhost.com\/blog\/#organization","name":"DreamHost","url":"https:\/\/www.dreamhost.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dreamhost.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/dhblog.dream.press\/blog\/wp-content\/uploads\/2019\/01\/dh_logo-blue-2.png","contentUrl":"https:\/\/dhblog.dream.press\/blog\/wp-content\/uploads\/2019\/01\/dh_logo-blue-2.png","width":1200,"height":168,"caption":"DreamHost"},"image":{"@id":"https:\/\/www.dreamhost.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DreamHost\/","https:\/\/x.com\/dreamhost","https:\/\/www.instagram.com\/dreamhost\/","https:\/\/www.linkedin.com\/company\/dreamhost\/","https:\/\/www.youtube.com\/user\/dreamhostusa"]},{"@type":"Person","@id":"https:\/\/www.dreamhost.com\/blog\/#\/schema\/person\/f6a12ad459538e8e418cf31b8b603814","name":"Dallas Kashuba","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/05ab6fb1606be97d16c74efb0fba01b3c11e91501dc5f9661bdfbb5c5b0cd113?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/05ab6fb1606be97d16c74efb0fba01b3c11e91501dc5f9661bdfbb5c5b0cd113?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/05ab6fb1606be97d16c74efb0fba01b3c11e91501dc5f9661bdfbb5c5b0cd113?s=96&d=mm&r=g","caption":"Dallas Kashuba"},"description":"Dallas Kashuba co-founded DreamHost while attending Harvey Mudd College and has spent nearly three decades building infrastructure at scale. Today he serves as an advisor, board member, and investor for various tech startups, with a consistent focus on user privacy, open source, and data portability. When he's not thinking about the Open Web, he's probably making music. Follow Dallas on X.","sameAs":["http:\/\/www.idallas.com\/","https:\/\/x.com\/http:\/\/twitter.com\/dallas"],"url":"https:\/\/www.dreamhost.com\/blog\/author\/dallas\/"}]}},"lang":"en","translations":{"en":84629,"nl":84930,"fr":84875,"es":84879,"pl":84881,"it":84885,"pt":84883,"de":84887,"ru":84903,"uk":84911},"pll_sync_post":{},"_links":{"self":[{"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/84629","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"version-history":[{"count":6,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/84629\/revisions"}],"predecessor-version":[{"id":84662,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/84629\/revisions\/84662"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/media\/84631"}],"wp:attachment":[{"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/media?parent=84629"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/categories?post=84629"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/tags?post=84629"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}