GitLab’s delivery offerings decide where the software runs and which usage quotas apply. GitLab sells three: GitLab.com, “The GitLab software-as-a-service offering”; GitLab Dedicated, “A single-tenant SaaS service for highly regulated and large enterprises”; and GitLab Self-Managed, where the customer will “Install, administer, and maintain your own GitLab instance”.[2] The tiers and per-user prices are the same across offerings. The quotas are not: compute minutes and storage limits are enforced on GitLab.com and are optional or absent elsewhere.[1][6]
Editions
| Offering | Who runs it | Subscription applies to | Notes |
|---|---|---|---|
| GitLab.com | GitLab, multi-tenant, hosted on Google Cloud Platform in the USA | A top-level group | Compute and storage quotas apply; Free tier user limits |
| GitLab Self-Managed | The customer, on-premises or in its own cloud | An instance, activated with an activation code or license file | Free tier has no user limit; quotas optional |
| GitLab Dedicated | GitLab, single-tenant on AWS in a region of the customer’s choice | A Dedicated instance | Ultimate feature set; no self-serve purchasing |
| GitLab Dedicated for Government | GitLab, on AWS GovCloud | A Dedicated instance | FedRAMP Moderate baseline; GovRAMP for state and local agencies |
The table draws on the pricing page and the Dedicated documentation retrieved on 2026-10-07.[1][5] Catalog rows: Free, Premium, Ultimate, Dedicated, Dedicated for Government.
GitLab Dedicated “comes with the GitLab Self-Managed Ultimate feature set”, with listed exceptions. Self-serve purchasing and configuration are not available, nor is deployment to cloud providers other than AWS.[5] Pre-production environments for testing upgrades and configuration “must be purchased as an add-on to your GitLab Dedicated subscription, with no additional licenses required”.[5]
Metrics
The Compute minute measures “The usage of instance runners by projects running CI/CD jobs”.[6] The Storage (GiB) metric covers a project’s Git repository and Git LFS objects on GitLab.com. The container registry, package registry and build artifacts are not included in the limit.[8] Both sit alongside the per-user subscription and are not tied to the number of users. The pricing FAQ says the compute quota “will be applied to a group, no matter the number of users in the group or the number of users in the subscription”.[1]
Counting / floors
Compute minutes
Each job consumes Job duration / 60 * Cost factor minutes. Duration excludes time spent in the created or pending states. The result is added to the usage of the job’s top-level namespace, not the namespace of the user who started the pipeline.[6] Jobs run in parallel, so a pipeline can use more minutes than its elapsed time. Trigger jobs consume none.[6] Usage resets to zero on the first day of each month.[6] Catalog proof: Compute minutes are job duration times cost factor.
The cost factor depends on the runner. On GitLab.com hosted runners, the Linux x86-64 small runner has a factor of 1, medium 2, large 3, xlarge 6 and 2xlarge 12; the GPU-enabled medium runner has 7. The macOS M2 Pro large runner (beta) has 12, and the Windows medium runner (beta) has 1.[6] Public projects in the GitLab for Open Source program get a factor of 0.5, and their public forks 0.008.[6] Community contributors to GitLab-maintained projects can use up to 300,000 minutes on instance runners through a reduced cost factor.[6]
The monthly quota on GitLab.com is 400 minutes on Free, 10,000 on Premium and 50,000 on Ultimate.[1] Customer-managed runners do not count: “Execution on your own runners will not use your compute minutes and is unlimited.”[1] On Self-Managed and Dedicated, a compute quota can be applied to admin-managed instance runners. It is disabled by default, and GitLab-hosted runners on Dedicated cannot have it applied.[6] To use the free compute minutes on GitLab.com shared runners, users must provide card details, which GitLab checks with a one-dollar authorization and no charge, to discourage cryptocurrency mining abuse.[1] Catalog proof: Own runners do not use compute minutes.
Purchased minutes. Extra minutes cost USD 10 per 1,000 as a one-time payment on all plans.[1] They are used only after the monthly quota runs out and carry over to the next month. They “Are valid for 12 months from date of purchase if not consumed earlier”, although the documentation notes that expiry is not yet enforced.[7] They stay available after a tier change, including a move to Free, but cannot be moved to another group.[7] Catalog rows: Compute minutes (1,000); catalog proof: Purchased compute minutes roll over for 12 months.
Storage
On GitLab.com Free, “Each project in a Free tier namespace on GitLab.com has 10 GiB of free storage.”[8] Premium and Ultimate have a fixed limit of 500 GiB per project.[8] A Free project that goes over 10 GiB draws on storage bought for the namespace. If none is left, the project becomes read-only and pushes are refused until more storage is bought.[8][10] Paid projects over 500 GiB are also set to read-only.[10] The pricing FAQ says that “Buying additional storage does not increase the maximum limit for a single project”, so buying 1 TB does not let one project exceed 500 GiB.[1] Usage is measured in binary units, where 1 GiB is 2 to the power of 30 bytes, and forks are counted at a reduced cost factor toward namespace storage.[8] Storage is sold at USD 5 per month for 10 GiB, billed annually, and is listed for Premium and Ultimate.[1] Purchased storage that is not de-provisioned at the end of a subscription period can later disappear from the account as expired storage.[8] Catalog row: Storage (10 GiB); catalog proof: Purchased storage does not raise the per-project limit.
Free tier limits on GitLab.com
A top-level group with private visibility on GitLab.com Free can have up to five users. Every unique user of the group, its subgroups and projects counts toward that number.[9] Groups created before 2022-12-28 became subject to the limit on 2023-06-13.[9] Over the limit, the namespace is read-only: no new merge requests, pipelines, packages or container images, and no new invitations.[10] Accounts created after 2026-01-27 on Free, including those on an Ultimate trial, are limited to three top-level groups; the personal namespace does not count.[9] GitLab’s licensing policy treats the five-user maximum as an aggregate per customer, so a 30-person team cannot be spread across Free groups.[3] Catalog proof: Five-user limit on GitLab.com Free.
Virtualization & partitioning
Self-Managed is licensed per instance and user, whatever the hardware. For scaled architectures and GitLab Geo, the licence is uploaded once and replicated through the database to all nodes.[12] A single activation code can cover several instances whose users are identical to, or a subset of, the licensed production instance.[12][3] Offline environments are activated with a license file instead of an activation code.[12] Catalog proof: One activation code for several Self-Managed instances.
Cloud / BYOL
There is no licence mobility between offerings. “Subscriptions cannot be transferred between GitLab.com and GitLab Self-Managed”, and switching means buying and applying a new subscription.[2] A customer that wants GitLab.com, Dedicated and Self-Managed “will need to purchase separate subscriptions for each instance”.[3] Several GitLab.com groups or Dedicated instances are allowed, but each needs its own subscription.[3] Catalog proof: Separate subscriptions per offering.
GitLab Dedicated is contractually limited to GitLab’s infrastructure. The Agreement’s SaaS appendix states that a Dedicated subscription “will not be provided for installation on Customer’s infrastructure (whether virtual or physical)”. On termination or expiry, the customer is responsible for migrating its content off GitLab’s infrastructure.[4] After a Dedicated subscription expires, the customer can access the instance for 30 days. Data preservation must be requested within 15 days, and after 30 days the instance is terminated and all customer content deleted unless it was archived or migrated.[5] On Self-Managed, an expired licence makes the instance read-only and locks features such as Git pushes until a new subscription is activated or the expired licence is removed.[13] Catalog proof: GitLab Dedicated runs only on GitLab-selected infrastructure; GitLab Dedicated data is deleted 30 days after expiry; Expired Self-Managed licence makes the instance read-only.
Programs
GitLab’s community programs grant Ultimate with 50,000 compute minutes per month.[11]
| Program | Eligibility and limits | Catalog row |
|---|---|---|
| GitLab for Open Source | Public namespace; every project under an OSI-approved licence; one private project allowed for security purposes | GitLab for Open Source |
| GitLab for Education | Non-profit educational institutions; instructional use or non-commercial academic research only | GitLab for Education |
| GitLab for Startups | Qualifying startups; for 12 months | GitLab for Startups |
The eligibility rules are from the community programs page.[11] These subscriptions are excluded from the Free tier user limit and can buy GitLab Credits, but do not receive included credits.[9][11] Catalog proof: Education licences are for instruction and non-commercial research.
Under GitLab Flex on Dedicated, the administration fee and storage are billed outside the Flex balance.[14] Hosted runners for GitLab Dedicated are one of the non-agentic features billed in GitLab Credits.[15]
Out of scope
This page does not cover Self-Managed reference architectures and sizing, GitLab Runner licensing, the GitLab.com service level agreement in the Subscription Agreement’s SaaS appendix, or network and data-residency features of Dedicated beyond their licensing effect.