[{"data":1,"prerenderedAt":717},["ShallowReactive",2],{"blog-en-\u002Fen\u002Fblog\u002Fcaprover-vs-coolify-vs-dokploy":3,"blog-en-surround-\u002Fen\u002Fblog\u002Fcaprover-vs-coolify-vs-dokploy":703},{"id":4,"title":5,"author":6,"body":7,"category":683,"cover":684,"date":685,"description":686,"draft":687,"extension":688,"lastReviewed":684,"meta":689,"navigation":690,"path":691,"readingTime":692,"seo":693,"sitemap":694,"stem":695,"tags":696,"__hash__":702},"blog_en\u002Fen\u002Fblog\u002Fcaprover-vs-coolify-vs-dokploy.md","CapRover vs Coolify vs Dokploy: the simple segment compared in 2026","HeroCtl team",{"type":8,"value":9,"toc":669},"minimark",[10,23,26,34,41,48,51,56,59,62,68,78,84,88,91,94,99,108,114,118,121,124,129,134,140,144,147,338,345,349,356,359,362,373,392,395,398,430,433,437,440,443,446,461,464,468,471,503,506,510,513,519,533,543,549,552,556,559,576,579,582,586,592,598,604,610,616,622,628,632,635,638,641,651],[11,12,13,14,18,19,22],"p",{},"Three products today dispute the same niche: the developer who wants a Heroku running on their own VPS, without learning a cluster orchestrator and without paying US$25 per dyno. CapRover, Coolify and Dokploy. The three make the same promise — ",[15,16,17],"code",{},"git push"," or ",[15,20,21],{},"docker pull",", web panel, automatic certificate, deploy in minutes. The three deliver that promise. And even so, choosing wrong between them will cost you three months of your next quarter.",[11,24,25],{},"The difference is not in what each one does. It is in what each one bets on.",[11,27,28,29,33],{},"CapRover bet on ",[30,31,32],"strong",{},"stability",". It has existed since 2017, weathered three hype waves without losing identity, and prefers aging to reinventing itself.",[11,35,36,37,40],{},"Coolify bet on ",[30,38,39],{},"feature richness",". Template marketplace, native docker-compose support, multi-server, dozens of ready-made integrations. It is the most popular panel of the segment in January 2026.",[11,42,43,44,47],{},"Dokploy bet on ",[30,45,46],{},"lightness with modern UX",". Uses Docker Swarm underneath to gain multi-server out of the box, copies what worked in Coolify and discards what weighed it down.",[11,49,50],{},"The choice between the three defines the next pain you will have — and it isn't installation pain. It is the pain that appears in the eighth month, when the panel is already running your two or three production SaaS and you need to decide whether to trust it on a Thursday night. This post is the map to choose knowing which pain comes.",[52,53,55],"h2",{"id":54},"caprover-the-veteran","CapRover, the veteran",[11,57,58],{},"CapRover came out in 2017, before Coolify existed, before the self-hosting hype came back into fashion, before docker-compose was synonymous with \"local dev\". It was written in Node, uses Docker Swarm internally (yes, before Dokploy made that a banner), and never tried to be pretty.",[11,60,61],{},"The project's philosophy is visible in every decision: do one thing well, keep the code simple, prefer biannual releases to weekly ones. The result is one of the most reliable tools in this segment. People who installed CapRover in 2019 still run that same installation in 2026 with incremental upgrades and zero complete reinstallation.",[11,63,64,67],{},[30,65,66],{},"What it does well."," Idle of approximately 150 MB of RAM — the lightest of the three by a comfortable margin. Installation on a US$5\u002Fmonth VPS runs smoothly, with 600 MB free for real workload. Functional panel without frills, simple \"App\" abstraction (a Docker image, environment variables, domain, certificate), deploy support via CLI, via tarball push, via Dockerfile. Small but loyal community — the forum has answers from 2018 that still make sense in 2026.",[11,69,70,73,74,77],{},[30,71,72],{},"Where it loses."," The \"App\" model is primarily single-container. You can run auxiliary services (Postgres, Redis) as separate Apps, but integration between them is via internal DNS and manual variables. docker-compose has limited support — works for simple cases, breaks for cases with complex named volumes or elaborate healthchecks. The plugin\u002Ftemplate ecosystem (\"one-click apps\") exists and works, but curation has stagnated; many templates point to image versions from 2022. The UI has the visual style from when it was written — functional, but dates the product. And the most critical point: ",[30,75,76],{},"there is no real multi-server",". You run on one VPS. Want redundancy? CapRover doesn't help you.",[11,79,80,83],{},[30,81,82],{},"When CapRover is the right choice."," Solo dev with one VPS. Monolithic application without dozens of microservices. Tight budget (its lightness saves you a plan upgrade). Team of one to three people who already made all the important decisions and want a panel that simply doesn't die. You value stability above new features. CapRover ages well; in January 2026 it remains the pragmatic choice for that specific profile.",[52,85,87],{"id":86},"coolify-the-popular-feature-rich","Coolify, the popular feature-rich",[11,89,90],{},"Coolify entered the market late — first relevant release in 2021 — and gained dizzying traction in the past three years. In January 2026 it accumulates tens of thousands of stars in the public repository, active community, monthly releases, conference presence, creator known personally to the public. It is the panel that an indie hacker on Twitter recommends first.",[11,92,93],{},"The philosophy is clear: build the most complete panel on the market. Support everything. Marketplace, multi-server, integrated monitoring, support for multiple destinations (cloud provider A, cloud provider B, your VPS), notifications across multiple channels, integration with multiple git providers, preview deploys, branch-per-environment, pull request review. If a competitor has a feature, Coolify wants to have it too — and usually does.",[11,95,96,98],{},[30,97,66],{}," Modern, pleasant UI. Native and robust docker-compose support — you paste your existing compose, adjust domains, deploy. One-click database templates for Postgres, MySQL, MariaDB, MongoDB, Redis, and a dozen more. Multi-server: you register a remote destination and Coolify provisions apps there. Automatic backup integrated for the provisioned databases. Support for multiple git providers. Active community that responds quickly — active Discord, releases that incorporate requests.",[11,100,101,103,104,107],{},[30,102,72],{}," Heavy. Idle between 500 and 700 MB of RAM, depending on the version and number of active auxiliary services. On a 1 GB VPS you are tight before bringing up a single application container. Complexity grew in the past two years faster than documentation kept up — new features debut with video tutorial on Twitter and take time to become consultable static pages. But the most serious point is what ",[30,105,106],{},"multi-server doesn't mean in Coolify",": it is not high availability. It is \"a central panel deploys on N remote hosts\". If the server hosting the panel falls, you lose the ability to deploy, see logs, review status — the remote apps keep running, but you are blind. The panel is a single point of failure by design.",[11,109,110,113],{},[30,111,112],{},"When Coolify is the right choice."," Indie hacker with 2 to 5 applications. Wants a mature panel, with ready-made features that save configuration time. Values template marketplace and quick database setup. Has budget latitude for hardware — a 2 to 4 GB RAM VPS dedicated to the panel is not a problem. No formal SLA requirement. It is the most complete \"self-hosted Heroku\" you can get today, and for that profile it delivers exactly.",[52,115,117],{"id":116},"dokploy-the-lightweight-challenger","Dokploy, the lightweight challenger",[11,119,120],{},"Dokploy is the newest of the three. Public launch in 2024, gained traction quickly in 2025, in January 2026 accumulates around ten thousand stars in the public repository. It was explicitly positioned as \"what Coolify should have been, without the weight\".",[11,122,123],{},"The philosophy: copy what Coolify got right in UX and discard what weighed it down. Uses Docker Swarm as the orchestration layer — controversial and founding decision of the project. Swarm gives you multi-server out of the box: you add a worker node and it joins the pool without manual network configuration. In exchange, you inherit Swarm's destiny as a product.",[11,125,126,128],{},[30,127,66],{}," Idle approximately 350 MB of RAM — significantly lighter than Coolify, heavier than CapRover. Clean and modern UI, clearly inspired by Coolify but with more economical choices (fewer tabs, less initial config). Real multi-server via Swarm: register a worker, it appears in the pool, jobs distribute. Native Docker Compose support (Dokploy calls it \"stacks\"). Community growth: active Discord, frequent releases, project incorporated important requests in months, not years.",[11,130,131,133],{},[30,132,72],{}," Newer means less battle-tested. Bugs appear in edge cases that Coolify and CapRover have already documented. Coupled to Swarm — and Swarm is a technology in slow maintenance by the original maintainer. Receives security and stability fixes, but there is no clear indication that it will gain new features. For a 2024 project to choose Swarm is a defensible bet (stable, simple, embedded in Docker), but you are building on top of a layer that no longer evolves. Plugin\u002Ftemplate ecosystem still shallow compared to Coolify — you get the basics, not the curated library of specific templates. Documentation in Brazilian Portuguese practically nonexistent.",[11,135,136,139],{},[30,137,138],{},"When Dokploy is the right choice."," Small team (3 to 6 people) that values modern UX but doesn't want to pay Coolify's price in RAM. Real multi-server out of the box is a requirement (you want to run on 2 to 4 VPS from the start). New project without historical dependence on specific templates or plugins. You don't have aversion to Docker Swarm as the underlying technology. For that profile, in January 2026, Dokploy is the choice that ages best among the three.",[52,141,143],{"id":142},"the-three-side-by-side","The three side by side",[11,145,146],{},"The table below is the compressed version of the decision. Each row is a dimension that often becomes a forum argument; side by side, becomes criterion.",[148,149,150,169],"table",{},[151,152,153],"thead",{},[154,155,156,160,163,166],"tr",{},[157,158,159],"th",{},"Criterion",[157,161,162],{},"CapRover",[157,164,165],{},"Coolify",[157,167,168],{},"Dokploy",[170,171,172,187,201,215,229,243,256,270,284,297,310,324],"tbody",{},[154,173,174,178,181,184],{},[175,176,177],"td",{},"Idle RAM (observed average)",[175,179,180],{},"~150 MB",[175,182,183],{},"500 to 700 MB",[175,185,186],{},"~350 MB",[154,188,189,192,195,198],{},[175,190,191],{},"Idle CPU on idle VPS",[175,193,194],{},"\u003C 1%",[175,196,197],{},"1 to 3%",[175,199,200],{},"1 to 2%",[154,202,203,206,209,212],{},[175,204,205],{},"Typical installation time",[175,207,208],{},"5 to 8 minutes",[175,210,211],{},"8 to 15 minutes",[175,213,214],{},"5 to 10 minutes",[154,216,217,220,223,226],{},[175,218,219],{},"UI (subjective impression)",[175,221,222],{},"dated, functional",[175,224,225],{},"modern, dense",[175,227,228],{},"modern, lean",[154,230,231,234,237,240],{},[175,232,233],{},"Native docker-compose",[175,235,236],{},"partial",[175,238,239],{},"yes, robust",[175,241,242],{},"yes, \"stacks\"",[154,244,245,248,251,254],{},[175,246,247],{},"Real multi-server",[175,249,250],{},"no",[175,252,253],{},"yes, no panel HA",[175,255,253],{},[154,257,258,261,264,267],{},[175,259,260],{},"Template marketplace",[175,262,263],{},"existent, stagnated",[175,265,266],{},"large, active",[175,268,269],{},"basic, growing",[154,271,272,275,278,281],{},[175,273,274],{},"Community (stars in January 2026)",[175,276,277],{},"~13k",[175,279,280],{},"~40k",[175,282,283],{},"~10k",[154,285,286,289,292,295],{},[175,287,288],{},"Releases in last 6 months",[175,290,291],{},"~3",[175,293,294],{},"monthly",[175,296,294],{},[154,298,299,302,305,307],{},[175,300,301],{},"Portuguese documentation",[175,303,304],{},"rare",[175,306,236],{},[175,308,309],{},"practically none",[154,311,312,315,318,321],{},[175,313,314],{},"Production maturity (years)",[175,316,317],{},"8+",[175,319,320],{},"4+",[175,322,323],{},"1+",[154,325,326,329,332,335],{},[175,327,328],{},"Ideal application range",[175,330,331],{},"1 VPS, 1 to 3 apps",[175,333,334],{},"1 to 2 VPS, 2 to 5 apps",[175,336,337],{},"2 to 4 VPS, small team",[11,339,340,341,344],{},"The column that informs most is not visible in this table: ",[30,342,343],{},"which pain comes third",". CapRover gives you immediate stability and the pain comes when you grow and need multi-server. Coolify gives you rich features and the pain comes on the VPS bill and growing complexity. Dokploy gives you modern multi-server and the pain comes on long-term Swarm coupling. Choosing is honestly answering: which of these three pains is the one that fits most in your next year?",[52,346,348],{"id":347},"the-pain-the-three-share","The pain the three share",[11,350,351,352,355],{},"There is a pain common to the three that deserves its own name, because it is where the honest transition happens: ",[30,353,354],{},"none of the three has real high availability",".",[11,357,358],{},"I'll be precise about what that means.",[11,360,361],{},"CapRover is single-server by design. Doesn't try. You install, run on one VPS, period. Falling the server is falling the product.",[11,363,364,365,368,369,372],{},"Coolify and Dokploy offer multi-server, but the expression used by both confuses. Multi-server, in their vocabulary, means that a ",[30,366,367],{},"central panel"," deploys containers on ",[30,370,371],{},"N remote hosts",". The panel lives on one machine; the hosts are deploy targets. When the panel server falls:",[374,375,376,380,383,386,389],"ul",{},[377,378,379],"li",{},"The remote apps keep running (Docker on them keeps working).",[377,381,382],{},"You lose access to centralized logs, metrics, deploys, environment variable editing.",[377,384,385],{},"Update the panel? Wait.",[377,387,388],{},"Redeploy a stuck app? Wait.",[377,390,391],{},"See why the checkout service started returning 500? Wait.",[11,393,394],{},"For a hobby project, \"wait\" is tolerable. For a startup with first B2B client demanding contractual uplink of 99.5%, \"wait\" is SLA violation. The three products share that wall.",[11,396,397],{},"The wall is signaled when:",[374,399,400,406,412,418,424],{},[377,401,402,405],{},[30,403,404],{},"Client demands explicit SLA."," Something like ≥ 99.5% in contract. Best-effort doesn't pass the client's legal.",[377,407,408,411],{},[30,409,410],{},"The panel has fallen once a week uninterruptedly."," Could be failed update, kernel panic, OOM kill at peak traffic — the cause matters less than the frequency.",[377,413,414,417],{},[30,415,416],{},"You have 2 or more important applications in production."," Centralized backup becomes a requirement; coordination between apps becomes a requirement; unified observability becomes a requirement.",[377,419,420,423],{},[30,421,422],{},"Team grew to 3 or more people and the panel became a bottleneck."," One deploy blocks another. Simultaneous access confuses state.",[377,425,426,429],{},[30,427,428],{},"Panel backup is manual and hasn't been tested in months."," Can you restore the entire VPS in 30 minutes? Have you tested that procedure in prod?",[11,431,432],{},"When two or more of these points confirm at the same time, you passed the phase where CapRover, Coolify and Dokploy solve the problem. The next decision is structural.",[52,434,436],{"id":435},"heroctl-as-a-natural-next-step","HeroCtl as a natural next step",[11,438,439],{},"HeroCtl is a single executable file you install on N Linux servers with Docker. The first three servers form the replicated control plane — there is no \"central server\" that can fall. Coordination between them survives the loss of any one, with automatic election in around seven seconds without human action.",[11,441,442],{},"The user experience to bring up an application is the same one you already know from the three panels: you describe the service, submit via CLI or web panel, the cluster decides where to run, opens the port, registers in the integrated router, issues an automatic Let's Encrypt certificate and starts serving traffic. Updating means changing the image version and submitting again — rolling deploy without maintenance window.",[11,444,445],{},"The difference is in what happens when something goes wrong. Server falls? Workload migrates. \"Central\" panel doesn't exist — any of the servers serves the UI and API. You are never blind.",[11,447,448,449,452,453,456,457,460],{},"The commercial model is explicit from day one. ",[30,450,451],{},"Community"," is permanent free, no server limit, no artificial feature gates — runs the entire stack above including high availability, router, certificates, metrics and logs. Indie hackers and small teams never need to leave here. ",[30,454,455],{},"Business"," adds SSO\u002FSAML, granular access control, detailed auditing, managed backup and SLA support — for when your client comes to demand formal controls. ",[30,458,459],{},"Enterprise"," adds source code escrow, continuity contract and 24×7 support. Business and Enterprise prices are published — without mandatory \"talk to sales\".",[11,462,463],{},"HeroCtl doesn't try to replace CapRover, Coolify or Dokploy in the bands where they shine. It tries to be the logical step after them, when the high availability wall appears. The three keep being excellent for the profiles we described above — there is no reason to switch before time.",[52,465,467],{"id":466},"decision-by-profile","Decision by profile",[11,469,470],{},"To resolve indecision in one sentence per profile:",[374,472,473,479,485,491,497],{},[377,474,475,478],{},[30,476,477],{},"Solo dev, 1 VPS, hobby project or early product."," CapRover. Lighter, more mature, less abandonable.",[377,480,481,484],{},[30,482,483],{},"Indie hacker with 2 to 5 apps on 1 or 2 VPS, no formal SLA requirement."," Coolify. Marketplace and ready-made features save time.",[377,486,487,490],{},[30,488,489],{},"Small team valuing modern UX, multi-server, new project without template legacy, 3 or more VPS."," Dokploy. Bets on modern lightness.",[377,492,493,496],{},[30,494,495],{},"Startup with first B2B client demanding contractual SLA, 3 or more servers, real high availability requirement."," HeroCtl. The panel stops being a single point of failure.",[377,498,499,502],{},[30,500,501],{},"Solo dev with no time at all to look after a server."," Hosted: Render, Railway, Vercel, Fly.io. Self-hosting is commitment — if you don't have time, pay.",[11,504,505],{},"There is no shame in changing categories. Starting in CapRover, migrating to Coolify when complexity asks for more features, eventually leaving for HeroCtl when the client asks for SLA — that is a healthy path, not a failure of initial planning.",[52,507,509],{"id":508},"migration-between-the-three","Migration between the three",[11,511,512],{},"The good news: what survives between the three is what matters.",[11,514,515,518],{},[30,516,517],{},"Docker images (Dockerfile) work on the three."," If you built for CapRover, build the same for Coolify and Dokploy. There is no runtime lock-in.",[11,520,521,524,525,528,529,532],{},[30,522,523],{},"Named volumes survive."," You can copy a volume's content to a new host via ",[15,526,527],{},"docker run"," with bind mount, or via ",[15,530,531],{},"docker cp",". Postgres dump and restore is the same as always.",[11,534,535,538,539,542],{},[30,536,537],{},"Environment variables migrate literally."," The three accept the same keys. Copying a ",[15,540,541],{},".env"," is trivial.",[11,544,545,548],{},[30,546,547],{},"What needs manual adaptation:"," Coolify one-click templates (the internal config is specific, you reinstall the service from scratch on the destination), Dokploy Swarm stacks (similar, you rewrite), CapRover single-container Apps (you fragment into compose if going to Coolify\u002FDokploy). Domain, certificate and ingress configurations migrate conceptually but each panel's UI is specific — redoing takes an afternoon, not a week.",[11,550,551],{},"To migrate from the three to HeroCtl, the path is the same: same images, same variables, ingress configuration rewritten once in the HeroCtl format (which is a fifty-line configuration file, not three hundred).",[52,553,555],{"id":554},"the-inevitable-question-which-is-the-most-popular","The inevitable question: \"which is the most popular?\"",[11,557,558],{},"In January 2026, in stars on the public repository (which is a weak proxy of real use, but is the only measurable proxy):",[374,560,561,566,571],{},[377,562,563,565],{},[30,564,165],{},": approximately 40k stars.",[377,567,568,570],{},[30,569,162],{},": approximately 13k stars.",[377,572,573,575],{},[30,574,168],{},": approximately 10k stars, growing fast.",[11,577,578],{},"In real production use, hard to measure. Coolify has the most active public discussion — Twitter, Discord, conferences. CapRover has the older, quieter installed base: people who installed in 2018 and don't talk about it because they have nothing to complain about. Dokploy has the fastest growth in percentage.",[11,580,581],{},"Popular is not a direct proxy for \"right for you\". CapRover serves half a million devs in silence without making the headline. Choosing by popularity takes you to Coolify by inertia — and Coolify might even be right, but let it be by analysis, not by tweet count.",[52,583,585],{"id":584},"questions-we-get","Questions we get",[11,587,588,591],{},[30,589,590],{},"Can I migrate from CapRover to Coolify without redoing everything?","\nYou redo the configuration on the new panel (an afternoon of work for two or three apps), but Docker images and volumes survive. It is not code refactoring — it is re-registration on the panel.",[11,593,594,597],{},[30,595,596],{},"Dokploy depends on Docker Swarm. Is that a problem?","\nDepends on the horizon. For the next two years, no. Swarm is stable and functional. For a five-year horizon, it is betting on a layer that hasn't received new features in a long time. If your project is meant to last, worth considering.",[11,599,600,603],{},[30,601,602],{},"Which uses less disk?","\nCapRover installs around 1.5 GB. Dokploy around 2 to 3 GB. Coolify around 3 to 5 GB depending on how many auxiliary services you enable. On a 25 GB VPS, any one fits; on a 10 GB one, CapRover is more comfortable.",[11,605,606,609],{},[30,607,608],{},"Is there Brazilian Portuguese support in any?","\nCapRover has some partial translation and tutorials in Portuguese scattered around. Coolify has partial UI translation but documentation predominantly in English. Dokploy is predominantly in English. For a Brazilian team that prefers material in Portuguese, the tiebreaker is between CapRover and Coolify; HeroCtl is natively in PT-BR.",[11,611,612,615],{},[30,613,614],{},"Does HeroCtl replace one of these or is it different?","\nDifferent in proposition. CapRover, Coolify and Dokploy solve \"Heroku on 1 VPS\" (or multiple VPS without panel high availability). HeroCtl solves \"Heroku in cluster with replicated control plane\". The range where it makes sense is after you outgrow the three — not before.",[11,617,618,621],{},[30,619,620],{},"Is it worth running panel + cluster orchestrator together?","\nNo. It will give port conflict, reverse proxy conflict and operational headache. Choose one. If you are on CapRover\u002FCoolify\u002FDokploy today and want to migrate to HeroCtl, say goodbye to the previous one before — don't run in parallel on the same machine.",[11,623,624,627],{},[30,625,626],{},"And for an agency hosting 30 client sites?","\nCoolify is the popular choice in that profile today, for project isolation and billing-adjacent features (partial multi-tenancy, separate users). Dokploy starts to compete in that niche. HeroCtl is the choice when the agency grows to the point where the panel falling leaves 30 clients without deploy at the same time — there the single point of failure becomes unacceptable.",[52,629,631],{"id":630},"closing","Closing",[11,633,634],{},"The three products of the simple segment are good at what they promise. CapRover ages well if you don't grow too much. Coolify delivers the most complete package if you have RAM to spare. Dokploy makes the most modern bet if you accept Docker Swarm as base. There is no wrong choice for the profiles we described — there is expensive choice, which is not choosing for the right reasons.",[11,636,637],{},"The day the three stop being enough is specific and identifiable: client demanding SLA, panel becoming a bottleneck, team growing, backup becoming an obligation. When that day arrives, the next tool in the sequence is what we are building.",[11,639,640],{},"If you are choosing now between the three and the cluster is still distant, choose by the profile above and move on. If the cluster is becoming a requirement, install on three VPS:",[642,643,648],"pre",{"className":644,"code":646,"language":647},[645],"language-text","curl -sSL get.heroctl.com\u002Finstall.sh | sh\n","text",[15,649,646],{"__ignoreMap":650},"",[11,652,653,654,659,660,664,665,355],{},"For additional reading: the direct comparison ",[655,656,658],"a",{"href":657},"\u002Fen\u002Fblog\u002Fheroctl-vs-coolify","HeroCtl vs Coolify",", the comparison ",[655,661,663],{"href":662},"\u002Fen\u002Fblog\u002Fheroctl-vs-dokploy","HeroCtl vs Dokploy",", and the panorama ",[655,666,668],{"href":667},"\u002Fen\u002Fblog\u002Fself-hosted-heroku-2026","Self-hosted Heroku in 2026",{"title":650,"searchDepth":670,"depth":670,"links":671},2,[672,673,674,675,676,677,678,679,680,681,682],{"id":54,"depth":670,"text":55},{"id":86,"depth":670,"text":87},{"id":116,"depth":670,"text":117},{"id":142,"depth":670,"text":143},{"id":347,"depth":670,"text":348},{"id":435,"depth":670,"text":436},{"id":466,"depth":670,"text":467},{"id":508,"depth":670,"text":509},{"id":554,"depth":670,"text":555},{"id":584,"depth":670,"text":585},{"id":630,"depth":670,"text":631},"comparison",null,"2026-01-19","The three dominant panels for running 'Heroku on 1 VPS'. Each bets on a different philosophy — maturity, feature richness, or low weight. An honest comparison to choose without regret.",false,"md",{},true,"\u002Fen\u002Fblog\u002Fcaprover-vs-coolify-vs-dokploy","14 min",{"title":5,"description":686},{"loc":691},"en\u002Fblog\u002Fcaprover-vs-coolify-vs-dokploy",[697,698,699,700,701,683],"caprover","coolify","dokploy","self-hosted","paas","M08fo9CJtl0Lj3tnyLNqhsNxfYp6AlkX-_yir6ZfprQ",[704,710],{"title":705,"path":706,"stem":707,"description":708,"date":709,"category":683,"children":-1},"AWS ECS vs Kubernetes vs self-hosted: three paths to run containers in 2026","\u002Fen\u002Fblog\u002Faws-ecs-vs-kubernetes-vs-self-hosted","en\u002Fblog\u002Faws-ecs-vs-kubernetes-vs-self-hosted","ECS is AWS's offer for those escaping Kubernetes. Kubernetes is Kubernetes. Self-hosted is the path out of AWS. Each makes sense in specific contexts — no uniform trade-off.","2026-03-04",{"title":711,"path":712,"stem":713,"description":714,"date":715,"category":716,"children":-1},"Cloudflare in front of a self-hosted cluster: is it worth it in 2026?","\u002Fen\u002Fblog\u002Fcloudflare-in-front-of-self-hosted-cluster","en\u002Fblog\u002Fcloudflare-in-front-of-self-hosted-cluster","Free Cloudflare blocks DDoS, caches static assets and hides the server IP. But adds latency, lock-in and features you may not use. When it's worth it and when it's overkill.","2026-05-08","engineering",1777362215379]