Webinar Sept 24: Heroku to AWS in one command, with an agent doing the work.

Heroku Alternatives That Run In Your Own Cloud Account: 7 BYOC Options Compared

Your compliance team wants production data inside your own AWS, GCP, Azure, or Scaleway account instead of a third-party platform. Here are the bring-your-own-cloud alternatives to Heroku that keep Heroku-style git-push deploys, compared honestly.

Romaric Philogene
CEO & Co-founder
SEP 15, 2026 · 11 MIN
Heroku Alternatives That Run In Your Own Cloud Account: 7 BYOC Options Compared

A few months ago I watched a security lead ask an engineering team one deceptively simple question: "Where does our production data physically live?" The honest answer, once everyone stopped talking over each other, was "an AWS account that belongs to Heroku, not to us." That is a fine answer right up until an auditor, a customer's procurement team, or an EU data-residency clause asks you to prove it.

Yes, you can keep Heroku-style git-push deploys and still run your apps and databases inside your own cloud account. The model is called bring-your-own-cloud (BYOC), and the platforms that do it well are Qovery, Porter, Cloud 66, and self-hosted tools like Coolify and Dokploy. Encore Cloud does a version of it for greenfield apps. Below I compare all seven honestly, including where each one stops being the right call.

Qovery · Agentic Infrastructure Platform
Kubernetes, operated through one governed API
Learn more

Key takeaways

  • Several platforms give you Heroku-style git-push deploys while your apps and databases run inside your own cloud account: Qovery, Porter, Cloud 66, and the self-hosted tools Coolify and Dokploy, with Encore Cloud as a framework-first option.
  • The compliance difference is where the workload and data physically sit. Heroku's Common Runtime maps its regions directly to AWS regions operated by Salesforce (Heroku Regions docs). In a BYOC model, everything runs in your VPC, under your cloud contract, your encryption keys, your audit logs, and your region choice.
  • Qovery is the closest match to Heroku's developer experience without giving up ownership. It installs into your own AWS, GCP, Azure, Scaleway, or existing Kubernetes cluster, and gives you git-push deploys, a preview environment per pull request, per-environment RBAC, and databases backed by managed cloud services (RDS, Cloud SQL, Azure Database).
  • Coolify and Dokploy are the cheapest BYOC route and run on a single VM you control. You own the upgrades, HA, backups, and the evidence-gathering your auditor will ask for.
  • BYOC also changes your cost structure. The cloud bill stays in your name, so AWS Savings Plans (up to 72% off on-demand) and GCP committed use discounts apply to your own spend instead of being captured by a platform's margin.

Can you get Heroku-style deploys while keeping production data in your own cloud account?

Yes. A category of platforms called bring-your-own-cloud installs a lightweight agent into your own AWS, GCP, Azure, or Scaleway account, so your containers, databases, secrets, and logs never leave your VPC while developers still deploy with a git push.

The split is clean once you name it. The vendor provides the control plane: the UI, the API, the build and orchestration logic. You provide the data plane: your cloud account, your VPC, your data. The real BYOC options are Qovery, Porter, Cloud 66, the self-hosted pair Coolify and Dokploy, and Encore Cloud, plus the do-it-yourself route on raw AWS or GCP with Terraform.

Heroku works differently. Its Common Runtime offers exactly two regions, us and eu, and its Platform API reports the underlying provider as amazon-web-services for each region, so your dynos and Heroku Postgres run on AWS infrastructure that Salesforce owns and operates (Heroku Regions). Private Spaces extend this to ten regions with more isolation, but the account is still Heroku's.

One thing BYOC does not fix: the moment the workload lives in your account, you own cloud account hygiene, IAM, quotas, and the bill. That is the trade, and the rest of this article is about whether it is worth it for you.

What exactly does your compliance team gain from bring-your-own-cloud?

BYOC changes who is accountable for the data plane, which is the part auditors actually question. The data sits in a cloud account your company owns, under your own provider agreement, your KMS keys, your CloudTrail or Cloud Audit Logs, and your chosen region.

Data residency stops being a support ticket. You pick the exact region and availability zones, which is what makes GDPR, EU data-boundary requirements, and Schrems II-style transfer questions answerable instead of hand-wavy. Gartner's November 2025 survey of Western European CIOs found 61% expect geopolitics to increase their reliance on local or regional cloud providers, so this is not a niche concern anymore.

You also shrink the subprocessor list in your DPA. Be honest with yourself here: in a managed BYOC model the vendor's control plane still touches metadata such as build logs, deployment events, and short-lived credentials. Qovery, for example, describes its control plane as transferring only metadata over gRPC or TLS while workloads and data stay in your account. Fewer subprocessors, not zero.

The rest of the compliance win is structural:

  • Evidence and audit trails. You use cloud-native logging (CloudTrail, GCP Audit Logs, Azure Monitor) piped into your own SIEM, rather than depending on a vendor's log exports.
  • Encryption and key management. Your own KMS or CMEK keys, your rotation policy.
  • Network posture. Private subnets, VPC peering to internal services, no public database endpoints, real egress control.
  • Inherited certifications. You inherit your cloud provider's ISO 27001, SOC 2, HIPAA, and PCI eligibility directly for the data plane. Then ask each platform vendor for their control-plane SOC 2 report separately.

Three questions I would put to any BYOC vendor before signing: what exactly does your control plane store, can it be self-hosted or air-gapped, and what happens to my running workloads if you go out of business?

Which Heroku alternatives actually support bring-your-own-cloud?

Only some do. Render, Fly.io, Railway, and Vercel host your workloads in their accounts, so they are Heroku-style vendor-hosted platforms, not BYOC. Qovery, Porter, Cloud 66, Coolify, and Dokploy deploy into infrastructure you own.

It helps to sort the whole landscape into three buckets:

  1. Vendor-hosted PaaS (Heroku, Render, Railway, Fly.io). The vendor holds the cloud account and runs everything. Easiest to start, weakest data-residency story.
  2. Managed control plane plus your cloud (Qovery, Porter, Cloud 66, Encore Cloud). The vendor runs the orchestration, you hold the cloud account and the data.
  3. Fully self-hosted PaaS you run yourself (Coolify, Dokploy, plus Dokku and Kamal). You own the control plane and the data plane. Cheapest in license terms, most operational load.

Runtime matters for what your team already knows. Qovery and Porter run on Kubernetes (EKS, GKE, AKS, Kapsule). Coolify and Dokploy run Docker on a VM, with Dokploy adding Docker Swarm for multi-node (Dokploy docs). Cloud 66 builds Docker images and can stand up and manage a Kubernetes cluster for you (Cloud 66 Deploy). Kubernetes gives you HA and scaling primitives out of the box; Docker-on-a-VM is simpler until you need a second node.

Where Qovery differs is breadth of target. It provisions and operates managed Kubernetes across AWS, GCP, Azure, and Scaleway, and it will also install into a Kubernetes cluster you already run, self-managed or on-prem. On top of that it gives you managed cluster upgrades, per-environment RBAC, a preview environment per pull request, and environment auto-stop for non-production. (Azure support is the newest of the four and shipped as an open beta, worth confirming for your region.)

Encore is a different shape and deserves to be described as such, not dismissed. It is a backend framework with a TypeScript and Go SDK, plus a platform that provisions infrastructure into your own AWS or GCP account from your application code. If you are building greenfield and happy to adopt its SDK, it is excellent. If you just want to deploy the containers you already have, it is less relevant.

PlatformRuns in your own cloud account?Clouds supportedRuntimeGit-push + preview per PRManaged DBs via cloud servicesWho runs upgrades/patchingRBAC & auditPricing modelBest fit
QoveryYesAWS, GCP, Azure, Scaleway, or your existing K8sKubernetes (managed for you or BYO)Yes / YesYes (RDS, Cloud SQL, Azure Database)Qovery-managed cluster upgradesPer-environment RBAC + cloud-native audit logsSubscription + your own cloud billHeroku-like DX on your own cloud without running K8s yourself
PorterYesAWS, GCP, AzureKubernetesYes / YesYes (cloud managed services)Porter-managedRBACUsage-based ($/GB RAM + $/vCPU) + your cloud billK8s-native BYOC with pay-per-use pricing
Cloud 66Yes (your cloud or your servers)AWS, GCP, Azure, DigitalOcean, Hetzner, othersDocker; can build/manage K8sGit-driven / limitedVia your cloud or Cloud 66-managedCloud 66 toolingRolesTiered subscription + per-server overageServer-based deploys across many providers
CoolifyYes (your own VM/server)Any VM (AWS, Hetzner, bare metal, etc.)Docker on a VMYes / Yes (PR deployments)No (you run DB containers)You doBasic roles; you gather evidenceFree OSS (Apache-2.0); Cloud from $5/moCheapest single-VM self-host
DokployYes (your own VPS)Any VMDocker on a VM (+ Swarm multi-node)Yes / not first-classNo (you run DB containers)You doBasic; you gather evidenceFree OSS (Apache-2.0 core)Cheap self-host with Compose/Swarm
Encore CloudYesAWS, GCPCloud services provisioned from your codeYes / YesYes (provisions cloud DBs)Encore-managed provisioningRolesFramework tier + your cloud billGreenfield apps built on the Encore SDK
DIY (Terraform + K8s)YesAnyKubernetes (self-run)You build itYou wire it upYou do everythingYou build itCloud bill only + heavy engineering timeTeams with a platform team that wants full control
Ship faster on infrastructure you control.
Qovery gives your team self-service deployments on your own AWS, GCP, Azure, or Scaleway account - or your existing Kubernetes cluster. Start deploying in under 10 minutes.

How close is the developer experience to Heroku once you move to your own cloud?

With a managed BYOC control plane you keep the parts developers actually care about (git push to deploy, automatic builds, streamed logs, one-click rollback, an environment per pull request) and you lose the parts nobody liked, such as dyno sizing ceilings and add-on lock-in.

Most Heroku primitives map cleanly:

  • Procfile and buildpacks become a Dockerfile or buildpack build.
  • Add-ons become managed cloud services: Heroku Postgres to RDS or Cloud SQL, Redis to ElastiCache or Memorystore, search and mail to cloud or SaaS equivalents.
  • Review apps become preview environments per PR.
  • Pipelines become environments and stages.
  • heroku logs --tail becomes platform log streaming.

What genuinely gets harder is ownership. You now own VPC design, IAM, service quotas, and cost. Budget real platform-engineering time even with a BYOC vendor doing the heavy lifting; the vendor removes the Kubernetes toil, not the accountability.

What gets better is headroom. No dyno memory ceilings, access to GPU and ARM instance types, private networking to internal services, Kubernetes-native tooling when you want it, and background workers and cron jobs without add-on gymnastics.

If your team does not want to run Kubernetes at all, this is exactly the gap a platform like Qovery fills: it provisions the cluster and handles upgrades for you, so you get Kubernetes underneath without operating it by hand. And if you already run a cluster, you point Qovery at that instead.

What does BYOC do to your cloud bill compared to Heroku?

In a BYOC model the infrastructure invoice arrives from AWS, GCP, Azure, or Scaleway in your own name. That means Savings Plans and Reserved Instances (up to 72% off on-demand), GCP committed use discounts (up to 70% on some machine families), and any enterprise agreement you already hold apply to this spend. You then pay the platform separately for the control plane rather than paying a markup baked into compute.

Split the cost into two lines: cloud infrastructure (yours, discountable) plus a platform subscription (per user, per resource, or usage-based depending on the vendor).

A quick like-for-like on the compute line, ignoring the operational labour BYOC adds. A Heroku Standard-2X dyno is $50/month. A comparable AWS EC2 t3.medium (2 vCPU, 4 GB) on-demand in us-east-1 is $0.0416/hour, which is roughly $30/month before any commitment discount. On the database line, a Standard-0 Heroku Postgres plan is $50/month while an RDS db.t3.medium single-AZ PostgreSQL instance is $0.072/hour, around $53/month on-demand. The raw compute is cheaper in your own account; the labour to run it is not free.

Watch the line items people forget: NAT gateway and egress charges, load balancers, managed-Kubernetes control-plane fees, observability, and engineer time. Those control-plane fees are real but small and predictable: EKS is $0.10 per cluster per hour (about $73/month), GKE charges a flat $0.10 per cluster per hour, and AKS is free on its Free tier, $0.10 per cluster per hour on Standard.

BYOC also gives you cost levers a vendor-hosted PaaS simply cannot offer: spot or preemptible nodes for non-production, environment auto-stop outside working hours, rightsizing, and per-team cost attribution through cloud tags.

To be fair, BYOC is not always cheaper. For a handful of small apps, Coolify or Dokploy on one VM will be the cheapest thing you can run, and plain Heroku can beat a full BYOC setup below a certain scale once you price in the engineering time.

ModelWho receives the infra invoiceDiscounts availablePlatform fee modelOps headcount neededCompliance evidence effort
Heroku (vendor-hosted)Salesforce/Heroku, bundledNone on compute (no commitments)Per-dyno + per-add-on (e.g. Standard-2X $50/mo)Near zeroVendor provides SOC 2 + ISO; PCI and HIPAA only on Heroku Shield (Enterprise)
BYOC, managed control plane (Qovery/Porter)AWS/GCP/Azure/Scaleway, in your nameYes: Savings Plans/RIs up to 72%, GCP CUD up to 70%Per-user or usage-based + your cloud billLow to moderateYou inherit cloud certs for the data plane; ask the vendor for a control-plane SOC 2
Self-hosted OSS (Coolify/Dokploy)Cloud provider (or one VM), in your nameYes, on your own spendFree/OSS (optional cheap cloud tier)Moderate: you own upgrades, HA, backupsHighest DIY effort: you produce all evidence yourself
DIY (Terraform + K8s)Cloud provider, in your nameYesNo platform fee, high engineering costHigh: dedicated platform teamYou build every control and every artifact

How do you migrate off Heroku into your own cloud account without a freeze?

Migrate incrementally. Containerise the app, stand up the target environment in your own cloud account, replicate the database, run both stacks in parallel behind DNS, then cut over. Most teams do this service by service over a few weeks, not in one heroic weekend.

  1. Inventory everything. Config vars, add-ons, buildpacks, scheduled jobs, and release-phase tasks. You cannot migrate what you have not written down.
  2. Map add-ons to managed cloud equivalents. Heroku Postgres to RDS or Cloud SQL, Redis to ElastiCache or Memorystore, mail and search to cloud or SaaS equivalents. Keep this in a migration sheet, one row per add-on.
  3. Containerise. Dockerfile or buildpack build, and split your Procfile web and worker processes into separate services.
  4. Move the data carefully. Use pg_dump and pg_restore for small databases, or logical replication (pglogical, or a Postgres follower plus logical replication) for a low-downtime cutover. Test the restore, not just the backup.
  5. Run both stacks in parallel. Shift traffic with weighted DNS and keep Heroku warm as a rollback target for a week.
  6. Rebuild the developer workflow. Preview environments per PR, RBAC per environment, and secrets in the platform or a cloud secret manager, so the team feels an upgrade rather than a downgrade.

The same path applies if you are leaving Render, Railway, Vercel, or Fly.io rather than Heroku. The source platform changes; the shape of the move does not. If you want the longer version of the AWS side of this, we wrote up moving from Heroku to AWS separately.

When is BYOC the wrong answer?

BYOC is the wrong answer when nobody on your team owns a cloud account, when your compliance requirement is already satisfied by a vendor's existing certifications, or when your whole stack is three small services with no regulated data.

If your real requirement is a signed DPA plus a SOC 2 report, a vendor-hosted PaaS in an EU region may already clear the bar. Check that before you rebuild your platform. Heroku itself holds SOC 1/2/3 and ISO 27001, and adds PCI DSS Level 1 and HIPAA on its Shield tier for Enterprise, so the certification gap may be smaller than you assume.

If you have no cloud account owner, no IAM policy, and no on-call rotation, BYOC just relocates the risk rather than removing it. And it genuinely adds attack surface you must secure: a misconfigured S3 bucket or an over-broad IAM role is now your incident. IBM's 2026 Cost of a Data Breach report puts the global average breach at a record $4.99 million, with public-cloud-stored data among the most expensive to lose, so this surface is worth taking seriously.

Heroku Private Spaces, or a dedicated or enterprise tier from another vendor, can be a reasonable middle ground worth pricing before you commit to full BYOC.

Here is how I would decide in one paragraph. Classify the data, ask your auditor what evidence they actually need, then pick the lightest model that produces that evidence. If a vendor's SOC 2 and an EU region satisfy the auditor, stay vendor-hosted. If they need the data in an account you control with your own keys and logs, go BYOC, and pick the tool that matches how much Kubernetes your team wants to touch.

Frequently asked questions
What are the best Heroku alternatives that deploy into my own AWS, GCP, or Azure account?

The managed BYOC options are Qovery (AWS, GCP, Azure, Scaleway, or your own Kubernetes cluster), Porter (AWS, GCP, Azure), Cloud 66 (many providers), and Encore Cloud (AWS, GCP, framework-first). If you are happy to run the control plane yourself, Coolify and Dokploy deploy Docker workloads onto any VM you own. All of them keep your workloads and data in an account you control.

What does bring-your-own-cloud (BYOC) actually mean, and how is it different from self-hosting?

BYOC means the vendor runs the control plane (UI, API, orchestration) while your applications, databases, and secrets run in your own cloud account. Pure self-hosting means you run the control plane too, on your own servers, as with Coolify or Dokploy. BYOC keeps the operational convenience of a managed service while moving the data plane into your account; self-hosting moves everything to you.

Does Heroku host my data in its own AWS accounts, and can I choose the region?

Yes on the first part. Heroku's Common Runtime maps its regions to AWS regions operated by Salesforce, and its Platform API reports the provider as amazon-web-services. Region choice is limited: the Common Runtime offers only us and eu, while Private Spaces expand this to ten regions. In a BYOC model you pick any region your cloud provider offers.

Is Qovery a real BYOC platform, and which clouds does it support?

Yes. Qovery describes itself as bring-your-own-cloud, orchestrating from a control plane while your data and compute stay in your own account. It supports AWS, GCP, Azure, and Scaleway with managed Kubernetes provisioning, and it can install into an existing Kubernetes cluster you already run, including on-prem. It is multi-cloud, not AWS-only.

How do Coolify and Dokploy compare to Qovery and Porter for a compliance-driven team?

Coolify and Dokploy are genuinely good and genuinely cheap. They are open source (Apache-2.0), and they run Docker on a VM you own, with Coolify offering push-to-deploy and PR deployments. Where they stop being enough for a regulated team is HA (a single VM is a single point of failure), the upgrade burden (you own it), and audit evidence and fine-grained RBAC, which you assemble yourself. Qovery and Porter run on Kubernetes and provide managed upgrades and per-environment RBAC out of the box, which is what an auditor usually wants to see.

How long does it take to migrate a Heroku app to our own cloud account?

For a single containerised service with a Postgres database, plan on days rather than weeks once the target environment exists. For a portfolio of services with many add-ons and stateful data, most teams run a few weeks of parallel operation, migrating service by service and keeping Heroku as a rollback target. The database cutover is usually the critical path, so test your restore early.

Romaric Philogene
About the author
Romaric Philogene

Romaric founded Qovery to make Kubernetes accessible to every engineering team. He writes about platform strategy, developer experience, and the future of cloud infrastructure.

Next step

Ship faster on infrastructure you control.

Qovery gives your team self-service deployments on your own AWS, GCP, Azure, or Scaleway account - or your existing Kubernetes cluster. Start deploying in under 10 minutes.