GitLab Community Edition vs Enterprise Edition

Choosing between GitLab CE and EE for your own servers depends on which features you need, whether you need a paid tier, and how you will handle a lapsed subscription.

On this page

When is GitLab Community Edition enough, and when does the Enterprise Edition become necessary?

Community Edition is enough when your team needs the core GitLab platform and can meet its own security and compliance needs without a paid feature. CE is MIT licensed, and the GitLab LICENSE file places all code outside the ee/ directory under that license. Nothing needs an activation code. Enterprise Edition becomes necessary when a specific requirement depends on a feature that sits behind a Premium or Ultimate subscription. The practical test is to list the controls your auditors, security team or regulator expect, then check each one against the GitLab pricing page feature lists before you install anything.

Be careful about what a fresh Enterprise Edition install gives you. According to GitLab's license activation documentation, a new instance installed without a license enables only Free features, and an activation code is needed to unlock more. So installing EE does not by itself give you Premium or Ultimate capability. An infrastructure lead should confirm with GitLab which features each tier includes for self-managed instances, then decide whether the EE package is worth installing now or later. Because an instance running CE can be upgraded to EE, starting on CE does not close the door on paid features. Administrators can confirm the edition and version under Help > Help.

Before committing to a paid tier, ask your security lead what proof of controls you must produce and whether Free covers it. For many small and mid-sized teams running their own servers, CE with well-managed backups, access controls and patching is a defensible choice. Teams that need application security testing, vulnerability management, compliance features or LDAP group sync should price Premium or Ultimate against the written scope of their needs, and should get the quote in writing. Confirm which features your GitLab version supports in your own environment, because the feature set changes across releases.

Which features sit in the free edition and which need a paid subscription?

This table compares GitLab Community Edition, the Enterprise Edition Free tier, Premium and Ultimate on the documented feature split for self-managed installations. Read it as a starting point: the exact feature matrix changes by version, so confirm each row on the GitLab pricing page for the release you plan to install.

CapabilityCommunity Edition and EE FreeEE PremiumEE Ultimate
Licensing of the codeMIT for code outside the ee/ directory; no activation code neededRequires an activation code that unlocks EE featuresRequires an activation code that unlocks EE features
Self-managed availabilityAvailableAvailable for self-managed installationsAvailable for self-managed installations
Advanced CI/CDCore pipelines only; confirm current limits on the pricing pageDocumented as includedIncluded in the higher tier
Priority supportCommunity support onlyDocumented as includedIncluded in the higher tier
Application security testingNot documented as a paid-tier feature here; confirm scanner availability for your versionNot listed as a Premium featureDocumented as included
Software supply chain security and vulnerability managementNot includedNot listed as a Premium featureDocumented as included
Compliance featuresNot includedNot listed as a Premium featureDocumented as included
Cost basis for the paid tiersFree of charge at listPriced per user per month, billed annually (per the GitLab pricing page)Custom priced; request a quote from GitLab

What license, support and update terms apply to each edition?

GitLab's editions differ in license, in what a subscription unlocks and in what happens when a subscription ends. The release and backport policy applies to every edition, so it sets the upgrade workload no matter which package you install. Check each card against your own compliance and upgrade calendar before you commit.

Community Edition under MIT

GitLab Community Edition is built from code outside the ee/ directory, which the LICENSE file makes available under the MIT license. It runs without a subscription and has no activation step. The practical question is whether the Free feature set covers your needs, because CE has no paid key to restore features if your requirements grow. Confirm with GitLab which features your team depends on, and whether any of them sit behind a paid tier.

Enterprise Edition Free without a license

A new GitLab Enterprise Edition install without a license runs only Free features. The EE package is the same codebase with paid code under the ee/ directory, so it gives you the option to upgrade later without a reinstall. Administrators can confirm the edition and version under Help. Teams that expect to buy Premium or Ultimate later should decide whether to start on EE now or to convert from CE at that point.

Premium and Ultimate need an activation code

Premium and Ultimate are paid subscriptions. The 24-character activation code from the subscription email or the Customers Portal is pasted into Admin > Subscription to unlock the tier. Premium is listed at 29 US dollars per user per month billed annually, while Ultimate is custom priced, so ask for a written quote that names the tier, user count and billing term. Confirm which features each tier covers for self-managed instances before you buy.

What a lapsed subscription does

When a subscription is not renewed, the activation key stops working and GitLab Enterprise Edition is no longer functional, according to the pricing FAQ. Some functions lock when the license expires, and the instance can be downgraded to Community Edition, which is free to use. Plan for the lock-out path in your change process, test the downgrade in a non-production copy, and confirm with GitLab what data stays accessible before renewal dates arrive.

Monthly releases and security backports

GitLab ships a minor release on the third Thursday of each month and patch releases twice a month. Bug fixes go only to the current stable release, while security fixes also reach the previous two monthly releases. This policy applies to CE and EE alike, so the security window is the same for every edition. Schedule an upgrade cadence that stays inside the maintained versions and plan for required upgrade stops.

What happens to an EE instance when the subscription lapses?

An Enterprise Edition instance does not stop working all at once, but it does lose its paid functions, and the path back to Community Edition needs to be rehearsed before the renewal date arrives. The activation code is pasted into Admin > Subscription, and GitLab's license activation documentation says that when the license expires, some functionality is locked. GitLab's pricing FAQ goes further: if the subscription is not renewed, the key no longer works and Enterprise Edition is no longer functional, and the customer can then downgrade to GitLab Community Edition, which is free to use. Treat that as the baseline and confirm the exact behavior for your installed version with GitLab before you rely on it in a budget or audit plan.

Plan for three things. First, confirm that your team can still reach its repositories, issues and pipeline history after the lapse, and that backups taken under the same edition can be restored. Second, inventory every setting that depends on a paid tier, such as the SAML or LDAP group sync, security scanning, compliance controls and any Geo or high availability setup, and decide which of them your team can live without or replace. Third, schedule a downgrade test on a staging copy of the instance: take a backup, apply the downgrade, check the Help > Help page for the edition shown, and record which jobs, integrations and user roles behave differently. Run the same test before each renewal, not once at purchase.

Ask GitLab, in writing, what happens to features your version uses, how long any grace behavior lasts, and whether a downgrade requires an upgrade path step that your current release does not allow. Your own environment matters as much as the vendor's answer, so document the results and link them to your renewal calendar. If the answer shows that a lapse would halt engineering work, that is a signal to negotiate renewal terms earlier or to reassess the tier in the GitLab pricing comparison before the contract ends.

How the cost of CE and EE differs by team situation

A small team that installs GitLab Community Edition pays no license fee, because the Free tier runs on an EE build without a key and CE is MIT licensed. The GitLab pricing page lists Free at 0 US dollars, and the cost that remains is the infrastructure and people needed to keep the instance running. For a team on CE, that cost is mostly staff time for upgrades, backups and monitoring, plus the servers, storage and backup targets the instance needs.

  • Hosting: Recurring compute, storage and network costs for the server or servers, which rise with user count and repository size.
  • Staff time: Recurring effort for monthly minor releases and the required upgrade stops, which GitLab documents as a path through versions such as 18.2, 18.5 and 18.8.
  • Backups: Recurring storage and tested restores, which GitLab's backup and restore documentation describes as a process the operator owns.
  • Initial setup: One-time effort to install, configure authentication and migrate any existing repositories.
  • Security tooling: Features that Free does not include, such as advanced security scanning, must be built or sourced separately, which adds effort and sometimes cost.

Before committing, ask your own platform team to estimate the monthly upgrade and backup hours, and confirm which features your workflow needs are on the Free tier.

What cost components apply to each edition?

This table lists the cost components that apply to GitLab CE, EE Free, Premium and Ultimate, showing who gets paid, what recurs and what drives each cost. Use it to build the question list for a quote, since only the Premium list price and the Free tier price are published in the supplied pricing facts.

Cost componentWho is paidOne-time or recurringWhat drives it up or down
Software license or subscriptionGitLab, for EE Premium or Ultimate only. CE and EE Free carry no license feeRecurring. Premium is listed at 29 US dollars per user per month, billed annually, on the GitLab pricing page. Ultimate is custom pricedSeat count and tier. Ask whether the quote bills active or licensed users and how seats are true-upped during the term
Required paid featuresGitLab, through the tier that contains the featureRecurring while the feature is neededWhich features you turn on. Premium adds advanced CI/CD and priority support. Ultimate adds application security testing, software supply chain security, vulnerability management and compliance features. Confirm which feature you need before choosing a tier
Infrastructure (compute, storage, network)Your cloud account, data center or hardware vendorRecurring for hosting, one-time for hardware if on-premisesUser count and reference architecture size. GitLab's reference architectures range from 1,000 users to 50,000 users, and high availability is generally recommended from 3,000 users. Ask the vendor or your architect to size against the documented reference
Upgrade staff timeYour internal team, or a DeployOpen retainer if contractedRecurring, roughly per minor releaseRelease cadence and required upgrade stops. GitLab ships a minor release monthly and requires stops such as 19.2, 19.5, 19.8 and 19.11. Each stop adds planning and testing work
Backups, monitoring and restore testingYour internal team, or an implementation partnerRecurring for operation, one-time for initial setupInstance size, database layout and whether high availability components such as PostgreSQL with Patroni are in use. Confirm backup and restore procedures against GitLab's backup and restore documentation
Implementation servicesImplementation partner, such as DeployOpen, or internal staffOne-time for installation, integration and hardening. Support can be recurringInstallation method (Linux package, Helm chart or Operator), identity integration and air-gapped requirements. Most engagements are fixed-scope, so request the written scope, deliverables and timeline before work starts
Edition change and lapse riskYour team, with a possible migration costOne-time if you move editions, plus a possible recurring cost if you stay on a paid tierIf a subscription is not renewed, GitLab's pricing FAQ says the key stops working and EE is no longer functional, and the instance can be downgraded to CE. Ask how data, configuration and paid features are handled in that downgrade

How to move from CE to EE and back again

This sequence takes a self-managed GitLab instance from Community Edition to Enterprise Edition with a verified subscription, and shows how the instance falls back to Community Edition if the subscription lapses. Each step closes with a check you can run before moving on.

  1. Confirm the current edition and version

    The administrator signs in, opens Help > Help and records the edition and version the instance reports. Confirm whether it is Community Edition or Enterprise Edition and note the exact version number. Write both down in the change record, because every later step depends on that starting point. The step is done when the recorded version matches what the instance reports on that page.

  2. Plan the route through upgrade stops

    Open the GitLab upgrade paths documentation and find the row for your starting version. GitLab requires upgrades to pass through required upgrade stops, and since GitLab 17.5 these fall at versions x.2, x.5, x.8 and x.11. Write the full list of stops between your version and your target, and ask your GitLab contact or DeployOpen to confirm the path if the instance is far behind. The step is done when you have a written, ordered list of versions to install.

  3. Rehearse the upgrade in a non-production instance

    Build a copy of the instance from a recent backup and run the planned upgrade path against it first. The administrator or the implementation team performs the rehearsal, and it covers the edition change, background migrations, integrations and any custom CI runners. Record how long each stop took and every error that appeared. The step is done when the copy reaches the target version and core projects, users and pipelines behave as expected.

  4. Install or upgrade to Enterprise Edition

    Take a fresh backup of the production instance, then install the Enterprise Edition package at each stop in the planned order, following the installation method your team uses. Upgrading an existing CE instance to EE is documented as a supported path. Check the service status after each stop before moving on. The step is done when the instance is running the target EE version and Help > Help shows Enterprise Edition.

  5. Paste the activation code in Admin > Subscription

    Copy the 24-character activation code from the subscription confirmation email or the Customers Portal. In the Admin area, open Subscription and paste the code, then confirm the activation. The code must come from the subscription for the tier you bought, so check the tier name against your order before you activate. The step is done when the subscription page shows an active plan with the expected tier and expiry date.

  6. Verify the features your tier includes

    Test each feature your subscription is meant to enable, such as the paid CI/CD, code review or security features listed for your tier on the pricing page. Confirm that users, groups and integrations you depend on still work. Keep the test results with the change record. The step is done when every feature in your purchase order is reachable and the test evidence is filed.

  7. Plan the downgrade path if a subscription lapses

    Agree in advance who owns renewal and what the team does if the subscription is not renewed. GitLab's pricing FAQ says the key stops working and Enterprise Edition features stop functioning, and the customer can then downgrade to Community Edition, which is free to use. Ask the vendor to confirm the exact behavior and any data or access effects for your contract. Store the renewal date and the downgrade runbook with the backup records. The step is done when a named owner and a tested runbook exist before the renewal date.

  8. Downgrade to Community Edition after a lapse

    After a lapse, the administrator follows the documented downgrade process to move the instance to Community Edition, using the same upgrade-stop discipline and a fresh backup. Rehearse this path in the non-production copy before you need it. Check Help > Help afterward and confirm the features that remain available under Community Edition. The step is done when the instance reports Community Edition and the team has signed off on what changed for users.

Questions teams ask before choosing an edition

Can we start on GitLab Community Edition and upgrade to Enterprise Edition later?

Yes. GitLab's license activation documentation says an instance running Community Edition can be upgraded to Enterprise Edition, so the decision does not lock you in on day one. The upgrade path is a change of package and activation, not a new installation, but you still need to confirm the exact steps for your version with GitLab before planning it. Check your current edition and version under Help > Help, then review the upgrade stops in GitLab's upgrade paths documentation, because a required stop has to be passed in order. Plan the change in a maintenance window and take a verified backup first.

What happens to our data and features if the GitLab subscription lapses?

Your data stays on your servers, but paid features stop working. GitLab's pricing FAQ says that if a subscription is not renewed, the key no longer works and Enterprise Edition will not be functional anymore, and the customer can then downgrade to Community Edition, which is free to use. The license activation docs add that some functionality is locked when the license expires. Confirm with GitLab exactly which features lock, how long any grace behavior lasts and what the downgrade involves for your version, and keep your backups and configuration under your own control so a lapse never becomes a restore problem.

How do license and operating costs grow as our user count increases?

The subscription component scales with users, while the infrastructure and operations components scale with load and availability needs. GitLab's pricing page lists Premium at 29 US dollars per user per month billed annually and Ultimate as custom priced, with all tiers available for self-managed installations. Infrastructure costs follow GitLab's reference architectures, which run from 1,000 users at 20 API requests per second to 50,000 users at 1,000 API requests per second. GitLab's docs generally recommend a high availability strategy at 3,000 or more users. Ask for a quote that separates subscription seats, server and storage sizing, and any external PostgreSQL, Redis and object storage.

What does our internal team need to run a self-managed GitLab instance?

Your team needs Linux administration, database and backup skills, and a plan for monthly upgrades. GitLab ships a minor release on the third Thursday of each month and backports security fixes to the current and previous two releases, so an instance has to be patched on a steady cadence. Upgrades must pass through required stops that fall at versions such as 18.2, 18.5 and 19.2, and the Linux package bundles PostgreSQL, Redis and Sidekiq for simpler operation. Larger deployments that use Patroni, Gitaly Cluster and Redis Sentinel need people who can operate those components. Confirm the staffing estimate against your own user count before committing.

Can our own staff perform the upgrades and license activation without an outside partner?

Often yes, if your team has the skills and time, and the steps are documented. Activation is a simple task: an administrator pastes the 24-character activation code from the subscription confirmation email or Customers Portal into Admin > Subscription. Upgrades follow GitLab's documented paths and maintenance policy. Outside help is most useful for planning the upgrade stops, rehearsing restores in a staging copy, and documenting the runbook. DeployOpen plans, implements, upgrades, documents and supports self-hosted platforms in your own infrastructure under a written, fixed scope, or on a retainer for ongoing support, so the choice between in-house and partner work depends on your staffing.

How long does a migration from Community Edition to Enterprise Edition take?

The duration depends on instance size, the number of required upgrade stops between your version and the target, and how much testing your environment needs. The activation step itself is quick once you have the code, but the surrounding work is not. Factors that extend the timeline include the backup and restore rehearsal, the number of integrations to re-verify, and any change in installation method. GitLab does not publish a fixed duration in the sources available here, so ask GitLab and your partner to confirm the steps for your version. A written scope with clear deliverables lets you compare timelines across quotes.

Does Community Edition cover air-gapped or offline installations?

Community Edition can be installed offline, but you should confirm which features your environment needs. GitLab documents running self-managed instances in offline, air-gapped environments, with separate guidance for its security scanners and for GitLab Duo Self-Hosted. The paid tiers add application security testing, vulnerability management and compliance features on Ultimate, and Premium adds advanced CI/CD and priority support. Because those features depend on what each tier includes, map your required controls to the tier list on GitLab's pricing page and confirm offline support for each one with GitLab before procurement.

Where to check the edition split and license terms

Before you commit to either package, confirm the edition split against the primary sources rather than a summary. The GitLab LICENSE file in the gitlab-org/gitlab repository is the place to start: it shows that content outside the ee/ directory is available under the MIT Expat license, while content under ee/ is licensed under the GitLab Enterprise Edition license. GitLab LICENSE file Ask your legal or procurement team to read it, because the boundary between the two licenses determines what you can modify and redistribute on your own servers.

The GitLab pricing page shows which features sit in Free, Premium and Ultimate for self-managed installations, and it is the document to compare against any feature you have been promised. The page lists Premium at 29 US dollars per user per month billed annually and gives Ultimate custom pricing. Its FAQ also states that an unrenewed key stops working and that the instance can then be downgraded to Community Edition. Confirm the current figures and the feature matrix in writing with GitLab or your reseller before budgeting, since list prices and tier contents change.

Use the GitLab docs on license activation to confirm the activation steps and the behavior of an expired subscription in the version you plan to run. The docs describe pasting the 24-character activation code into Admin > Subscription and note that some functionality is locked when a license expires. For release timing, the GitLab maintenance policy defines which minor releases receive fixes, which matters because an EE instance you cannot upgrade still needs security patches. Record the edition and version under Help > Help and check both against the policy before each upgrade window.

How DeployOpen scopes and delivers a GitLab edition rollout

DeployOpen plans, implements, customizes, integrates, hardens, backs up, upgrades, documents and supports self-hosted open-source platforms inside your own infrastructure. For GitLab Community Edition vs Enterprise Edition, that means we start from which package and features your teams need, then build and document the instance on your servers, cloud accounts or air-gapped network.

How we scope

  • Engagements are fixed-scope, with the edition, features and deliverables agreed in writing before work starts
  • The written scope records which GitLab package, subscription tier and activation process applies to your instance
  • Scope also states who owns the activation code, renewal date and the fallback plan if a subscription lapses
  • Ask for a quote built from that written scope, since DeployOpen does not publish a price list

How we build

  • We install GitLab on your infrastructure and confirm the edition and version under Help > Help
  • We configure authentication, backups and the upgrade path, including the required upgrade stops for your target version
  • We document the activation steps in Admin > Subscription so your administrators can repeat them without us
  • We test backup and restore on the instance before handover, using the restore steps GitLab documents

How we hand over

  • You receive written runbooks covering installation, edition checks, activation, backup, restore and upgrade procedures
  • We walk your administrators through license expiry behavior so the renewal calendar is owned by your team
  • Hardening decisions, configuration and evidence are documented so your auditors or assessors can review them
  • Handover ends with a written list of open items, owners and the settings you should confirm with GitLab

How we support

  • Ongoing support, upgrades and continuous testing are available as retainers after handover
  • A retainer can cover monthly and security release review, upgrade planning and the required upgrade stops
  • Support can extend to the offline or air-gapped procedures GitLab documents if your network requires them
  • Confirm the retainer scope, response expectations and any SLA terms in the written agreement

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.