{"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-08-22T18:18:49","modified_gmt":"2026-08-23T01:18:49","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 a free, open-source platform-as-a-service (PaaS) that you install on a server you control. It mirrors the Heroku and Vercel deployment experience \u2014 push to Git, get a built, HTTPS-served app \u2014 without per-dyno or per-seat fees.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Install Dokploy on a VPS with one shell command (the official minimum is 2 GB of RAM and 30 GB of disk; give it 4 GB if real apps will live there), connect a Git repository, and deploy with automatic SSL, managed databases, and native Docker Compose support.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A flat-rate VPS can replace some per-dyno, per-seat, and service charges: Heroku Basic costs $7 per dyno, Heroku Standard costs $25\u2013$50 per dyno, and Vercel Pro costs $20 per month with $20 developer seats and additional usage charges beyond included allowances.<\/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 VPS Hosting, with NVMe SSD storage, full root access, and unmetered bandwidth \u2014 there\u2019s even a <a href=\"https:\/\/www.dreamhost.com\/hosting\/vps\/dokploy\/\">VPS with Dokploy pre-installed<\/a> if you\u2019d rather skip the install script.<\/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\u2019re 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 rel=\"noopener noreferrer\" 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 rel=\"noopener noreferrer\" 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 rel=\"noopener noreferrer\" 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 Traefik 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=\"What Dokploy Runs On 1x\" 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 deploys from <a rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/glossary\/web-design\/github\/\">GitHub<\/a>, GitLab, Bitbucket, or Gitea repositories, and builds what you push through the path you pick: Nixpacks (the default), Railpack (its newer successor), a Heroku or Paketo buildpack, your own Dockerfile, or a static build for plain HTML.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The project has accumulated <a rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/github.com\/Dokploy\/dokploy\">more than 36,000 stars on GitHub<\/a> and a roster of <a rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/dokploy.com\/templates\">517+ one-click templates<\/a> for Plausible, Pocketbase, Cal.com, and the rest of the self-hosting greatest hits (counts as of August 2026).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Compared with managed PaaS like Heroku and Vercel \u2014 per-dyno or per-seat pricing, plus usage \u2014 Dokploy trades a little convenience for control and one flat server bill. Coolify is a peer to Dokploy with a similar self-hosted pitch, and CapRover is a lighter option whose Docker Compose support is a subset its own docs call experimental.<\/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 many containerized web apps and services through Nixpacks, Railpack, buildpacks, Dockerfiles, or Docker Compose. 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 and Dokploy builds it with Nixpacks, no Dockerfile required \u2014 Node.js, PHP, Python, Go, Ruby, and more.<\/li>\n\n\n\n<li><strong>Managed databases:<\/strong> MySQL, PostgreSQL, MongoDB, MariaDB, libSQL, and Redis, with automated backups to an external storage destination (Dokploy calls these S3 destinations).<\/li>\n\n\n\n<li><strong>517+ one-click templates:<\/strong> Plausible, Pocketbase, Cal.com, and the rest of the self-hosting greatest hits.<\/li>\n\n\n\n<li><strong>Scheduled jobs and background workers:<\/strong> Dokploy\u2019s schedule jobs run tasks on cron expressions alongside your 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<p class=\"newsletter-form__title\">Get Content Delivered Straight to Your Inbox<\/p><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, so compare its current price and capacity with the managed-platform services your workload would otherwise require.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The platform\u2019s entire current codebase is <a rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/dokploy.com\/blog\/we-are-updating-dokploys-open-source-license\">Apache 2.0 licensed<\/a> as of January 21, 2026. Future paid features will ship under a separate Dokploy Source Available License, and the project has committed to never moving existing open-source functionality behind the paid license.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The <a rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/docs.dokploy.com\/docs\/core\/installation\">official requirement<\/a> is at least 2 GB of RAM and 30 GB of disk \u2014 a floor Dokploy sets specifically to handle the resources Docker consumes during builds. Your actual apps use RAM on top of that, which is why we\u2019d start at 4 GB.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You\u2019re looking for a <a rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/hosting\/vps\/\">VPS<\/a> plan with at least 4 GB of RAM, NVMe storage, full root access, and unmetered <a rel=\"noopener noreferrer\" 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 (all prices below checked August 22, 2026):<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Heroku Eco:<\/strong> A $5\/month flat fee for a pool of 1,000 dyno hours shared across apps. Eco dynos sleep after 30 minutes of inactivity, so it suits intermittent hobby projects, not always-on services.<\/li>\n\n\n\n<li><strong>Heroku Basic:<\/strong> $7 per dyno per month for a 512 MB dyno. Five small apps cost $35 before databases. Essential Postgres starts at $5\/month for 1 GB (Essential-0); the 10 GB Essential-1 plan is $9.<\/li>\n\n\n\n<li><strong>Heroku Standard:<\/strong> $25\u2013$50 per dyno per month, and the entry point for horizontal scaling.<\/li>\n\n\n\n<li><strong>Vercel Pro:<\/strong> $20 per month, with developer seats at $20 each. Data transfer and function invocations bill on top once you pass the included allowances, and build minutes are billed per minute on Pro.<\/li>\n\n\n\n<li><strong>Render Pro:<\/strong> A $25\/month flat workspace fee with unlimited team members (Render announced the end of per-seat billing on April 23, 2026, and rolled the new plans out to all workspaces by August 1, 2026), plus per-service compute billed separately.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The line items vary \u2014 Vercel meters data transfer and build minutes, Render bills bandwidth past the 25 GB included on Pro, Heroku sells databases as add-ons \u2014 but the shape is the same: usage meters stacked on a base fee. A VPS can eliminate PaaS-specific seat, build, and service charges, but check the provider\u2019s limits and overage terms; DreamHost\u2019s VPS plans include unmetered bandwidth.<\/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). Add-ons extra.<\/td><\/tr><tr><td>1 \u00d7 Vercel Pro seat (5 apps)<\/td><td>$20 + usage<\/td><td>$20 per month per developer seat. Data transfer and function invocations bill past the included allowances; build minutes bill per minute.<\/td><\/tr><tr><td>5 \u00d7 Render web services + Pro workspace<\/td><td>$25 + compute<\/td><td>A flat $25\/mo Pro workspace (unlimited members on the plans rolled out August 1, 2026) plus per-service compute.<\/td><\/tr><tr><td>1 \u00d7 VPS (4 GB recommended) + Dokploy<\/td><td><strong>flat rate<\/strong><\/td><td>One predictable bill, as many apps as the server can hold.<\/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 rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/docs.dokploy.com\/docs\/core\/installation\">2 GB of RAM and 30 GB of disk<\/a>. In our opinion, a more realistic recommendation is 4 GB and 40+ GB, because the official minimum exists to survive Docker builds \u2014 your actual apps will use RAM on top.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dokploy\u2019s tested distros are Ubuntu (24.04, 23.10, 22.04, 20.04, 18.04), Debian (12, 11, 10), Fedora 40, and CentOS (9, 8). You\u2019ll also need ports 80, 443, and 3000 free \u2014 the installer fails if anything else is using them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Any VPS that runs one of those distros with root access qualifies. DreamHost\u2019s <a rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/hosting\/vps\/\">VPS Hosting<\/a> checks every box: full root access, Docker support, NVMe SSD storage, and unmetered bandwidth on every plan. The Stack 4 plan (2 vCPU, 4 GB RAM, 75 GB NVMe SSD) clears Dokploy\u2019s requirements with room to spare, and you can pick <a rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/www.dreamhost.com\/hosting\/vps\/dokploy\/\">a VPS with Dokploy pre-installed<\/a> from the one-click app library if you\u2019d rather not touch the shell at all.<\/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 sets up Docker (installing it automatically if it\u2019s missing), the Dokploy web app, its PostgreSQL database, and the Traefik reverse proxy in one pass. It typically finishes in minutes, mostly spent pulling images.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Prerequisites: a clean Linux VPS with root SSH access and ports 80, 443, and 3000 available. You can point a domain at the server when you\u2019re ready to configure HTTPS.<\/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 a few minutes while the script provisions Docker, pulls the Dokploy images, 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 Screen 1x\" 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, configure it in Dokploy, and Dokploy provisions a Let&#8217;s Encrypt SSL certificate for the dashboard.<\/li>\n\n\n\n<li>Disable public access on port 3000 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 rel=\"noopener noreferrer\" 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 command downloads a script and immediately runs it with <code>sh<\/code>. If you\u2019d rather inspect the installation steps first, use the manual installation path in the docs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What\u2019s running when the script finishes is a small stack of core components:<\/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 SSL certificates.<\/li>\n\n\n\n<li><strong>Dokploy:<\/strong> The web UI and API on port 3000, built on Next.js. The control plane.<\/li>\n\n\n\n<li><strong>PostgreSQL:<\/strong> Dokploy&#8217;s own datastore for configuration and operational data.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">For SSL, configure a domain in the Dokploy UI and pick Let&#8217;s Encrypt. Let&#8217;s Encrypt&#8217;s default certificates are valid for 90 days. If you use the HTTP-01 challenge, port 80 must be reachable because that challenge can only run on port 80.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once your domain works over HTTPS, the docs recommend shutting off dashboard access via raw IP and port. One command does it:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker service update --publish-rm \"published=3000,target=3000,mode=host\" dokploy<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">For the full step-by-step with firewall configuration and post-install hardening, the <a rel=\"noopener noreferrer\" 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 solve the same problem \u2014 a self-hosted PaaS on your own server \u2014 with different trade-offs on Docker Compose depth, minimum server size, and install path.<\/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>Minimum server (per each project&#8217;s docs)<\/td><td>2 GB RAM, 30 GB disk<\/td><td>2 cores, 2 GB RAM, 30 GB disk<\/td><td>No published minimum; 512 MB &#8220;might not be enough&#8221; for builds, and its docs note most providers start at 1 GB<\/td><\/tr><tr><td>Docker Compose<\/td><td>Native, multi-service<\/td><td>Native \u2014 the Compose file is the source of truth<\/td><td>Experimental subset of the Compose spec<\/td><\/tr><tr><td>Install<\/td><td>One shell script<\/td><td>One shell script (auto-script needs Ubuntu LTS)<\/td><td>One docker run command + CLI setup<\/td><\/tr><tr><td>Best for<\/td><td>Compose-first apps, Git-to-production teams<\/td><td>Broad OS support, hosted-cloud option<\/td><td>Simple one-container apps<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Pick Dokploy when the workload includes multi-service Compose apps or you want Swarm-based clustering later. Pick Coolify if you want the widest OS support or a managed cloud escape hatch. Pick CapRover when the workload is simple one-container apps.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Coolify is the sprawling one of the three: it supports Debian-based, RedHat-based, SUSE-based, Arch, and Alpine distros \u2014 even Raspberry Pi OS \u2014 and offers Coolify Cloud if you&#8217;d rather not self-host the control plane. Its docs&#8217; own example production setup is an 8 GB, 4-core server comfortably running more than a dozen apps and databases, which is a fair picture of where it feels at home.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">CapRover (originally CaptainDuckDuck, RIP) is the minimalist. The UI is simple, it has a solid one-click app library, and it uses Docker Swarm under the hood for clustering. Its Docker Compose support is the limitation: an experimental subset of the spec \u2014 its docs list eight supported service fields and ignore the rest, including build, custom networks, and secrets.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ultimately, Dokploy lands between them: fuller Compose support than CapRover, with a tighter focus than Coolify.<\/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 take responsibility for ongoing server maintenance, and when you&#8217;d rather pay for a server than for seats.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At $7 per Heroku Basic dyno, three always-on apps plus a $9 Essential-1 Postgres already run $30 a month \u2014 right around flat-rate VPS territory, with every additional app widening the gap.<\/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 want predictable infrastructure billing. <\/strong>Dokploy has no per-seat fee, but VPS limits and overage terms vary by provider; DreamHost VPS plans include unmetered bandwidth.<\/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;portable to another compatible server where you have the required Linux environment, resources, ports, and administrative access.<\/li>\n\n\n\n<li><strong>You can take responsibility for ongoing server maintenance. <\/strong>The time required varies, and you\u2019ll need to handle OS and package updates, security patches, 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 $5\/month Eco plan \u2014 which sleeps after 30 minutes of inactivity \u2014 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 contractual uptime guarantees that your hosting and operations setup cannot meet.<\/strong> Verify infrastructure SLAs, redundancy, monitoring, backups, and support coverage before self-hosting.<\/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 rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/docs.dokploy.com\/docs\/core\/cluster\">multi-server deployments via Docker Swarm<\/a>, where your Dokploy server acts as the manager and additional servers join as workers. Dokploy&#8217;s own docs recommend scaling vertically first \u2014 a bigger VPS is faster to set up than a cluster.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In a cluster, the manager runs Dokploy and schedules the services. Workers run the app containers, and Traefik routes incoming traffic to whichever node 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=\"Scaling Dokploy with a Second Server\" 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 the setup works, in three steps:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Stand up a second VPS with Docker installed and the same CPU architecture as your Dokploy server.<\/li>\n\n\n\n<li>Connect a Docker registry (Docker Hub and GitHub Container Registry both work) \u2014 the cluster needs one to move app images between nodes, and the Cluster section unlocks once it&#8217;s configured.<\/li>\n\n\n\n<li>Click Add Node in the Dokploy UI, follow the join instructions on the new server, then set replicas and registry per app in its cluster settings.<\/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 an external storage destination \u2014 an S3 destination, in Dokploy&#8217;s terms \u2014 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 per-dyno, per-seat, or usage-based fees no longer fit your workload, a flat-rate VPS with Dokploy may offer more predictable costs.<\/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 you run three or more apps 24\/7, compare the managed-platform total with a suitably sized VPS and the value of your maintenance time; Dokploy may cost less, but the break-even point varies.<\/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\" width=\"877\" height=\"522\"  alt=\"\" \/><\/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                                    aria-label=\"Explore VPS Hosting Plans: Own Your Entire Stack. Apps, AI, Databases, and More.\"\n                                    target=\"_blank\"\n            rel=\"noopener noreferrer\"\n            >\n                            Explore VPS Hosting Plans                    <\/a>\n\n\t<\/div>\n<\/div>\n\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: the entire current codebase is licensed under the Apache License 2.0 as of January 21, 2026. Future paid features will ship under a separate Dokploy Source Available License, but the platform you self-host today has no seats, no usage meter, no asterisks \u2014 and the project has committed to never moving existing open-source features behind the paid license.<\/p>\n\n\n\n<h3 id=\"h-is-dokploy-a-vps\" class=\"wp-block-heading\">Is Dokploy a VPS?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No. Dokploy is software; a VPS is the server it runs on. Dokploy is a self-hosted PaaS you install on a Linux VPS with one shell command \u2014 the VPS provides the compute, and Dokploy provides the Heroku-style deploy experience on top. You need both: rent the VPS, install Dokploy on it.<\/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 rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/docs.dokploy.com\/docs\/core\/installation\">official docs<\/a>, which set that floor to handle the resources Docker consumes during builds and prevent system freezes. But 4 GB is the realistic recommendation for any production-leaning setup, because your actual apps and their databases use RAM on top of the platform. 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, whose Compose feature is an experimental subset of the spec that ignores fields like build, custom networks, and secrets.<\/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 deploys from GitHub, GitLab, Bitbucket, and Gitea repositories, with webhooks to trigger a deploy on every push. Builds run through Nixpacks (the default) or Railpack, a Heroku or Paketo buildpack, or your own Dockerfile if the project has one.<\/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\">Dokploy supports Heroku Buildpacks as a build option, so compatible repositories can use that build path. This does not guarantee a no-change migration: assess application configuration, databases, and other Heroku add-ons separately.<\/p>\n\n\n\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Is Dokploy free?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes, Dokploy is free and open source: the entire current codebase is licensed under the Apache License 2.0 as of January 21, 2026. Future paid features will ship under a separate Dokploy Source Available License, but the platform you self-host today has no seats, no usage meter, no asterisks \u2014 and the project has committed to never moving existing open-source features behind the paid license.\"}},{\"@type\":\"Question\",\"name\":\"Is Dokploy a VPS?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. Dokploy is software; a VPS is the server it runs on. Dokploy is a self-hosted PaaS you install on a Linux VPS with one shell command \u2014 the VPS provides the compute, and Dokploy provides the Heroku-style deploy experience on top. You need both: rent the VPS, install Dokploy on it.\"}},{\"@type\":\"Question\",\"name\":\"How much RAM does Dokploy need?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Dokploy needs at least 2 GB of RAM and 30 GB of disk per the official docs, which set that floor to handle the resources Docker consumes during builds and prevent system freezes. But 4 GB is the realistic recommendation for any production-leaning setup, because your actual apps and their databases use RAM on top of the platform. The official minimum is a floor, not a target.\"}},{\"@type\":\"Question\",\"name\":\"Does Dokploy support Docker Compose?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"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, whose Compose feature is an experimental subset of the spec that ignores fields like build, custom networks, and secrets.\"}},{\"@type\":\"Question\",\"name\":\"Can Dokploy deploy from GitHub?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes, Dokploy deploys from GitHub, GitLab, Bitbucket, and Gitea repositories, with webhooks to trigger a deploy on every push. Builds run through Nixpacks (the default) or Railpack, a Heroku or Paketo buildpack, or your own Dockerfile if the project has one.\"}},{\"@type\":\"Question\",\"name\":\"Can you migrate from Heroku to Dokploy?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Dokploy supports Heroku Buildpacks as a build option, so compatible repositories can use that build path. This does not guarantee a no-change migration: assess application configuration, databases, and other Heroku add-ons separately.\"}}]},{\"@type\":\"HowTo\",\"name\":\"How to install Dokploy on a VPS\",\"step\":[{\"@type\":\"HowToStep\",\"name\":\"SSH into the server as root\",\"text\":\"Connect to your VPS as the root user via SSH.\"},{\"@type\":\"HowToStep\",\"name\":\"Run the install script\",\"text\":\"Run: curl -sSL https:\/\/dokploy.com\/install.sh | sh\"},{\"@type\":\"HowToStep\",\"name\":\"Wait for provisioning\",\"text\":\"Wait a few minutes while the script provisions Docker, pulls the Dokploy images, and starts Traefik.\"},{\"@type\":\"HowToStep\",\"name\":\"Open the Dokploy dashboard\",\"text\":\"Visit http:\/\/your-server-ip:3000 in a browser.\"},{\"@type\":\"HowToStep\",\"name\":\"Create the admin account\",\"text\":\"Create the admin account on the setup screen.\"},{\"@type\":\"HowToStep\",\"name\":\"Point a domain and enable HTTPS\",\"text\":\"Point a domain at the server, configure it in Dokploy, and Dokploy provisions a Let's Encrypt SSL certificate for the dashboard.\"},{\"@type\":\"HowToStep\",\"name\":\"Close port 3000\",\"text\":\"Disable public access on port 3000 once HTTPS is live.\"}]}]}<\/script>\n","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 Apps Without Fees - DreamHost","_yoast_wpseo_opengraph-description":"Dokploy turns any VPS into a self-hosted PaaS \u2014 push to Git, get automatic SSL and Docker Compose support, without per-dyno or per-seat fees.","_yoast_wpseo_twitter-title":"Dokploy on a VPS: Deploy Apps Without Fees - DreamHost","_yoast_wpseo_twitter-description":"Dokploy turns any VPS into a self-hosted PaaS \u2014 push to Git, get automatic SSL and Docker Compose support, without per-dyno or per-seat fees.","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,"show_updated_at":"1","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 v28.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Dokploy on a VPS: Deploy Apps Without Fees - DreamHost<\/title>\n<meta name=\"description\" content=\"Dokploy turns any VPS into a self-hosted PaaS \u2014 push to Git, get automatic SSL and Docker Compose support, without per-dyno or per-seat fees.\" \/>\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 Apps Without Fees - DreamHost\" \/>\n<meta property=\"og:description\" content=\"Dokploy turns any VPS into a self-hosted PaaS \u2014 push to Git, get automatic SSL and Docker Compose support, without per-dyno or per-seat fees.\" \/>\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-08-23T01:18:49+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 Apps Without Fees - DreamHost\" \/>\n<meta name=\"twitter:description\" content=\"Dokploy turns any VPS into a self-hosted PaaS \u2014 push to Git, get automatic SSL and Docker Compose support, without per-dyno or per-seat fees.\" \/>\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: Deploy Apps Without Fees - DreamHost","description":"Dokploy turns any VPS into a self-hosted PaaS \u2014 push to Git, get automatic SSL and Docker Compose support, without per-dyno or per-seat fees.","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 Apps Without Fees - DreamHost","og_description":"Dokploy turns any VPS into a self-hosted PaaS \u2014 push to Git, get automatic SSL and Docker Compose support, without per-dyno or per-seat fees.","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-08-23T01:18:49+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 Apps Without Fees - DreamHost","twitter_description":"Dokploy turns any VPS into a self-hosted PaaS \u2014 push to Git, get automatic SSL and Docker Compose support, without per-dyno or per-seat fees.","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-08-23T01:18:49+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dreamhost.com\/blog\/dokploy-vps\/"},"wordCount":2921,"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: Deploy Apps Without Fees - 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-08-23T01:18:49+00:00","description":"Dokploy turns any VPS into a self-hosted PaaS \u2014 push to Git, get automatic SSL and Docker Compose support, without per-dyno or per-seat fees.","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,"fr":85414,"es":84879,"pl":84881,"it":84885,"pt":84883,"de":84887,"ru":84903,"uk":84911,"nl":84930},"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":3,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/84629\/revisions"}],"predecessor-version":[{"id":87078,"href":"https:\/\/www.dreamhost.com\/blog\/wp-json\/wp\/v2\/posts\/84629\/revisions\/87078"}],"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}]}}