Scalr per-run cost vs self-hosted Terrakube

Self-hosting Terrakube removes the per-run line item but moves the cost to hosting, executors, migration and operations. This page shows how to weigh each component against your own run volume.

On this page

Does self-hosting Terrakube cost less than Scalr per run?

Terrakube itself carries no license fee, because it is licensed under Apache 2.0, so the comparison turns on what Scalr bills per run against what you pay to host, operate and migrate. If your renewal or invoice rises with pull requests and environments, ask Scalr for a written quote that states exactly how it counts a run, whether dry runs (plans without applies) are included, and how the price changes as volume grows. The Scalr pricing itself is not part of the information available here, so take those figures from Scalr's quote rather than from this page. Then price your side of the comparison, which is the part you control.

On the self-hosted side, the recurring costs are the infrastructure that runs Terrakube (installed with a Helm chart or Docker Compose), a relational database supported by Liquibase such as PostgreSQL, executor capacity sized to your concurrent runs, and the staff time to patch and upgrade the platform. Terrakube 2.33.2 was released on September 14, 2026, so plan a recurring upgrade cadence and check the Terrakube releases page for changes before each one. The one-time costs are the migration of state, workspaces, variables and VCS connections. Dry runs typically count toward a per-run bill, but on Terrakube they show up as executor and database load, so plan-heavy pull request workflows still need capacity.

The break-even point depends on two inputs: your run volume and how many people on your team can operate the platform without outside help. Confirm the run count for the last twelve months from your Scalr usage data, estimate the hours your platform team would spend on backups, upgrades and incidents, and compare that with the quoted per-run cost. If the internal skills are thin, ask for a fixed-scope implementation from DeployOpen, with scope, deliverables and timelines agreed in writing before work starts, and consider a retainer for ongoing support and upgrades. Ask any implementation partner to show its assumptions in the quote so you can test them against your own numbers.

Which cost components change when you self-host Terrakube

This table compares the cost components of running Scalr with those of running Terrakube in your own cloud or data center, and marks which ones are one-time and which recur. Scalr's per-run billing counts dry runs as well as applies, so confirm the exact metering terms in your order form before you model usage. The main takeaway is that Terrakube removes the license and per-run fees but moves hosting, compute, upgrades and support to your team or your implementation partner.

Cost componentCommercial side (Scalr)Self-hosted side (Terrakube)One-time or recurring
Software licenseSubscription plus per-run billing; dry runs count as well as appliesTerrakube is Apache 2.0 with no license or per-run feeRecurring for Scalr; none for Terrakube software
Run and state platformScalr hosts runs and state; confirm where state is stored and retainedYou host the Terrakube API, UI and state storage in your own infrastructureRecurring
Compute for runsScalr agents or hosted capacity; confirm what the subscription includesExecutors you size, run and scale with run volumeRecurring
DatabaseManaged by Scalr as part of the servicePostgreSQL, MySQL, Oracle or SQL Server through Liquibase; you provision and back it upRecurring
Identity and SSO integrationAvailable per plan; confirm which identity providers are includedDex with providers such as Azure Active Directory, Amazon Cognito, GitHub and SAML; you map groupsOne-time setup, then recurring upkeep
Migration effortConfirm with Scalr what export help exists for workspaces, variables and VCS linksPull state through the remote backend, recreate environments, variables, VCS links and policiesOne-time
UpgradesHandled by Scalr as part of the subscriptionYou plan, test and apply Terrakube releases and database changesRecurring
SupportDepends on your subscription tier; confirm response terms in writingDepends on your arrangement; compare community options with a scoped retainerRecurring
Internal skillsAdmins learn Scalr workspace, policy and agent conceptsStaff need container platform, database and identity administration skillsRecurring

What moves the comparison most

Scalr's bill and the cost of running Terrakube respond to different inputs, so the comparison turns on a few operating facts about your own estate. Each card below names one driver, the direction it pushes cost, and the figure to pull from your own run logs and change records before you ask for a quote.

Run volume including dry runs

Scalr bills per run, and dry runs count alongside applies, so a plan-heavy workflow raises the bill even when few changes reach production. Self-hosted Terrakube has no per-run fee, so its cost moves with executor capacity and storage rather than with how often engineers plan. Pull a 90-day count of plans and applies per workspace from your own run history, then separate dry runs from applies, and check which of those runs Scalr's pricing actually counts.

Workspaces and environments

Scalr's commercial terms depend on how environments and workspaces are counted, so growth in either changes the quote in ways that are not always linear. In Terrakube, each additional workspace adds database rows and a few queued runs, and the main new cost is the work of organizing them under groups and permissions. Ask the vendor how workspaces and environments are metered and count yours today and in the next year of planned projects.

Number of VCS repositories

Each connected repository adds webhook traffic, a VCS connection to maintain and a set of permissions to keep aligned with identity groups. Terrakube retrieves code from GitHub, GitLab, Bitbucket and Azure DevOps, so cost rises with the number of connections and the upkeep of their tokens and access. List every repository that triggers runs and note who owns each connection, because unowned connections are the ones that break during staff changes.

Availability and on-call needs

A hosted service carries the uptime work for the run platform, while a self-hosted Terrakube makes your team responsible for the database, executors, upgrades and recovery. The cost is mostly staff time and on-call rotation, and it grows if pipelines block releases or policy gates. Confirm the required run availability and the hours your teams expect support, then price that coverage against the work of keeping an in-house platform patched and monitored.

Data residency and air-gap requirements

If state files, plans and variables must stay inside specific accounts, regions or networks, a hosted run service may need extra contractual review or may not fit the requirement at all. A self-hosted Terrakube keeps state in your own database and storage, but it also requires you to build the network paths and backups for that footprint. OpenTofu can encrypt state and plan files on the client side with key providers such as AWS KMS, GCP KMS and OpenBao, which can reduce what a platform operator can read. Document where state and plan files are stored and which key provider protects them before comparing costs.

Internal platform skills

Running Terrakube well requires people who can operate a Kubernetes or Docker Compose deployment, a relational database supported by Liquibase, and Dex-based identity integration. Teams that already run these platforms carry lower one-time migration effort and lower recurring effort, while teams without them should price training or an implementation partner into the first year. Inventory who on your team already runs databases, identity providers and container platforms, and record how many hours each change takes today.

How to build the comparison with your own numbers

This sequence turns Scalr's per-run billing and your own workspace inventory into a like-for-like total cost of ownership for a self-hosted Terrakube setup over a period you choose. Each step produces a figure you can check against your invoices and quotes.

  1. Export twelve months of run counts from Scalr

    Ask your Scalr administrator or account contact to export run history for the last twelve months, split into plan, apply and dry run runs for each workspace and environment. Confirm with Scalr how it counts dry runs and failed runs, because the billing definition decides whether those runs add to your total. The step is done when you have one table with monthly totals per run type and a written note of Scalr's counting rules.

  2. Obtain the written per-run quote from Scalr

    Request a written quote from Scalr that states the per-run rate, any included run allowance, the volume tiers that apply, minimum commitments and the treatment of dry runs and retries. Ask which of your run types are billable and whether any are excluded. The step is done when the quote is on file and every billing rule in your run table can be traced to a line in it.

  3. Inventory workspaces, environments, state and VCS links

    List every workspace and environment, its Terraform or OpenTofu version, the size of its state file, the number of resources it manages, its VCS connection and the team that owns it. Note which workspaces use agents and which variables or policies they depend on. The step is done when the inventory covers all workspaces, because the executor sizing and migration price in later steps depend on it.

  4. Estimate executor and database hosting in your cloud

    Using the run counts and concurrency needs from your inventory, estimate the compute for Terrakube executors and the relational database it needs, in the cloud accounts or data centers you already run. Ask your platform team for current instance and database prices from your provider, and include storage for state backups, logging and ingress. The step is done when you have a monthly hosting figure with its assumptions written beside it, such as peak concurrent runs and retention period.

  5. Price the one-time migration as a fixed-scope quote

    Request a fixed-scope quote for the migration work: pulling state through the remote backend, recreating environments, variables and VCS links, porting OPA policies, replacing Scalr agents with Terrakube executors and switching each workspace's backend configuration. Ask for the scope, deliverables and timeline in writing before work starts. The step is done when the one-time cost is a signed figure tied to the inventory from the previous step.

  6. Price recurring operations as a fixed-scope quote

    Separate the recurring cost of running the platform: upgrades to Terrakube and OpenTofu, patching, backups, monitoring, access reviews and on-call coverage. Your own staff time counts here too, so record the hours your team expects to spend each month. Ask any implementation partner whether support is offered as a retainer and what the written scope covers. The step is done when recurring costs are listed by component with an owner for each.

  7. Compare totals over a stated period

    Add the one-time migration cost to the recurring hosting and operations cost for the period you choose, and set it against Scalr's per-run charges for the same period using your twelve-month run data. Show the result with its assumptions, and run it again with higher and lower run volumes to see what changes the outcome. For reference only, HashiCorp's pricing page lists HCP Terraform paid tiers at $0.10, $0.47 and $0.99 per resource per month, and Terraform Enterprise at custom pricing, so state that source if you include it. The step is done when one document shows both totals, their assumptions and the quotes they rest on.

How the two run models differ by team size and setup

For a small team with a handful of workspaces, the per-run invoice is the most visible cost, and it is easy to see how it grows with plan and apply volume. The self-hosted side is mostly a fixed block of hosting and one person's time to install, upgrade and back up the platform. Illustrative: a team that runs a few pipelines each week may find the invoice modest, while the hours spent on operations are less visible.

  • Invoice shape: Confirm how Scalr counts dry runs, applies and retries under your current contract, since those counts drive the bill.
  • Hosting: Terrakube can be installed with a Helm chart or Docker Compose, so a small footprint can stay modest, but compute and database storage still recur.
  • Operator time: Identify who installs, patches and backs up the platform, and whether that person has other duties.
  • Atlantis option: For pull-request-only work, Atlantis may need less to run, though it does not host state or a module registry.

Ask your current vendor for a sample invoice and your run count for the last year, then compare them with the hours your team would spend on upgrades.

Costs teams forget on each side

Per-run billing is only one line in the comparison. The costs that surprise teams sit on both sides: the operating work of a self-hosted Terrakube stack, and the one-time exit work of leaving Scalr. Review both before comparing totals.

Upgrades across two release trains

A self-hosted Terrakube deployment needs its own upgrade cycle, separate from the OpenTofu or Terraform binaries that runs call. Terrakube's latest release on the supplied release page is 2.33.2, so check each upgrade against the release notes, the Helm chart or Compose file you deploy, and the database schema changes they carry. Ask who on your team owns each upgrade and how long a rollback takes in your environment.

Backup of the database and state

Terrakube keeps run and workspace metadata in a relational database, and state files must survive independently of it. Recovery testing covers both, plus the encryption keys used to protect them. Define the backup schedule, retention and restore drill before go-live, and budget staff time for the drill itself, which recurs.

Identity provider integration through Dex

Terrakube uses Dex for authentication and assigns permissions on workspaces, modules and VCS connections by group. Each identity provider connector, such as Azure Active Directory, Amazon Cognito, GitHub or SAML, needs configuration, testing and ownership when your directory changes. Confirm which group mappings Scalr roles currently rely on so access does not widen or break during cutover.

Extension maintenance for OPA and Infracost

Policy checks and cost estimates run as Terrakube extensions, and the API supports custom integrations. Each extension has its own version, configuration and failure mode that someone must track. Confirm which Scalr policy checks and cost reports your teams use today, then assign owners for keeping those equivalents working after each upgrade.

Migration exit work

Moving off Scalr involves pulling state, recreating environments, variables and VCS links, and switching each workspace's backend configuration. This work is one-time but scales with the number of workspaces and the depth of their variable sets. Ask your team to inventory workspaces and their dependencies before estimating effort, and ask any services partner for a written scope.

Parallel running and lost integrations

Most cutovers run Scalr and Terrakube side by side for a period, so both bills and both sets of runs continue. Scalr-specific integrations, such as notifications, webhooks or reporting that other systems read, may not have one-to-one equivalents. Map each integration before the parallel period starts, and confirm with your vendor which features they will stop supporting and when.

What moving state out of Scalr costs in time and risk

State leaves Scalr through the remote backend, so the migration cost is mostly verification, locking discipline and backend reconfiguration rather than new software. Each workspace's state has to be pulled from Scalr's storage, validated against the live infrastructure, and then written to the Terrakube backend before any run is allowed to touch it. The work is one-time, but its size grows with the number of workspaces, the number of resources in each state file, and how many teams share a workspace. Confirm the exact export path with Scalr's documentation and your account team, including whether state can be downloaded per workspace and in which format, before you estimate the effort. Then compare that path with the Terrakube CLI-driven workflow documentation, which describes the remote backend, the state migration support and how terraform login authenticates against the Terrakube API hostname.

Locking discipline is the main operational risk during the cutover. A workspace that is still being planned or applied in Scalr while its state is copied can produce a state file that no longer matches the infrastructure. Freeze runs in each workspace, confirm that no run is pending, and record the state serial or version before and after the copy. Reconfigure the backend block or cloud block only after the copied state has been checked with a plan that shows no unexpected changes. Keep the Scalr workspace read-only for a defined rollback period so the previous state can be restored if a verification step fails.

The costs that recur are the ones you take on after cutover: database and executor capacity, upgrades, backups of the state store and the time spent on access and policy maintenance. Ask any implementation partner for a written scope that lists the workspaces in scope, the verification steps for each, the rollback criteria and who signs off on each cutover. A fixed scope makes the one-time cost predictable, and it makes it clear which risks are yours to plan for, such as a state file that cannot be exported cleanly or a workspace whose variables depend on Scalr-specific features.

Questions buyers ask before comparing Scalr and Terrakube costs

Is Terrakube free to use?

Yes, the software is licensed under Apache 2.0, so there is no license fee to run it. The cost is what you operate: compute for the Terrakube services, which install with a Helm chart or Docker Compose, a supported relational database such as PostgreSQL, executors that run Terraform or OpenTofu, storage, backups, and the staff time to run it. Zero license cost does not mean zero total cost. Ask for a written scope that lists each component, who provides it, and what recurs each month.

How do dry runs affect Scalr cost?

Under per-run billing, every counted run adds to the bill, and dry runs (plans without an apply) are counted alongside applies. Teams that plan often, through pull requests or scheduled drift checks, see run volume grow even when few changes reach production. Confirm the exact counting rules, any included allowance and the overage terms in Scalr's current agreement. Then pull a run history from your own workspaces and ask for a calculation based on it. Self-hosted Terrakube has no per-run meter, so plan frequency mainly changes compute and executor load.

Can our team run Terrakube without outside help?

It depends on your container platform skills, database administration, identity integration and how many workspaces and VCS connections you need. Terrakube documents Helm and Docker Compose installs and a minikube test path, and it authenticates through Dex with providers such as Azure Active Directory, Amazon Cognito, GitHub and SAML. Platform teams often run a pilot in-house. Teams that also need hardening, tested backups and documented controls for an assessment may prefer a fixed-scope engagement, in which DeployOpen plans, implements, hardens and documents the platform inside your own environment.

How long does a migration from Scalr take?

No fixed duration applies to every team. The main drivers are the number of workspaces, the size and backend type of each state file, how many environments, variables and VCS links must be recreated, how many OPA policies need porting, how many Scalr agents must be replaced with Terrakube executors, and how many teams must cut over. Terrakube supports the remote backend and state migration, and users authenticate with terraform login against the Terrakube API hostname. Start with a written inventory, then agree a fixed-scope plan and timeline before work begins.

What ongoing work does a self-hosted Terrakube need?

The recurring work includes applying Terrakube releases, such as the 2.33.2 release published on September 14, 2026, which shows how often upgrades arrive. Other tasks are database maintenance and tested backups, executor image updates, managing which Terraform and OpenTofu versions executors support, keeping Dex and identity settings current, monitoring, security patching and updating extensions such as OPA policy checks and Infracost estimates. Decide early who owns each item. DeployOpen offers ongoing support, upgrades and continuous testing as retainers, and the scope and frequency are agreed in writing.

Is Atlantis cheaper for pull-request-only use?

Atlantis is also Apache 2.0 and runs in your own infrastructure, so its license cost is zero too. The difference lies in scope. Atlantis runs plans and applies from pull request comments and locks a directory or workspace until the pull request is merged or the lock is deleted. It does not host state, provide a module registry or offer a workspace UI, so you run your own state backend, which can be any type except local state. If pull requests are your only workflow, the footprint may be smaller, but you will build the parts that Terrakube provides. Compare the components you would keep before deciding.

Does choosing OpenTofu change the cost comparison?

Both Terrakube and Atlantis document running OpenTofu as well as Terraform, so the run platform choice and the CLI choice are separate decisions. OpenTofu is an MPL-2.0 fork under the Linux Foundation and was accepted into the CNCF Sandbox on April 23, 2025, which removes Business Source License terms from the CLI. Its client-side encryption of state and plan files works with key providers such as AWS KMS, GCP KMS and OpenBao. That encryption adds key management work to your operations budget, so include it in the scope and the quote.

How DeployOpen scopes a fixed-price Terrakube implementation

DeployOpen plans, implements, integrates, hardens, documents and supports self-hosted open-source platforms inside your own infrastructure. For a move from Scalr to Terrakube, the work starts with a written scope that sets out which workspaces, pipelines and controls are in and out before any build begins.

How we scope

  • Inventory Scalr environments, workspaces, run triggers, variables and VCS links to define what the written scope covers.
  • Confirm which Terraform or OpenTofu versions each workspace uses and where state is stored today.
  • Agree in writing which policy, cost estimation and identity requirements Terrakube must meet, and what stays out of scope.

How we build

  • Deploy Terrakube with its documented Helm chart or Docker Compose option in your cloud account, data center or air-gapped network.
  • Connect Terrakube to your identity provider, group permissions and version control systems, then test access by role.
  • Port OPA policy checks and extensions, and test runs in a non-production workspace before any cutover.

How we hand over

  • Deliver runbooks for backend configuration, state migration through the remote backend and rollback steps for each workspace.
  • Document the executor setup that replaces Scalr agents, along with the access model and the change records your reviewers need.
  • Run a handover session with your platform and security teams and confirm the agreed deliverables against the written scope.

How we support

  • Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts.
  • Ongoing support, upgrades and continuous testing are available as a retainer, which you can ask us to quote alongside the initial scope.
  • Ask for a quote that separates the one-time implementation from any recurring retainer so you can compare it with per-run billing.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.