In de week dat je een zesde developer aanneemt, gaat de privégroep op topniveau met je code op GitLab.com Free over de vijf gebruikers heen. Volgens de documentatie van GitLab over de gebruikerslimiet van Free wordt de groep dan alleen-lezen. Op GitHub Free voor organisaties komt de nieuwe collega zonder problemen binnen, want het aantal medewerkers is onbeperkt, maar je loopt tegen een andere limiet aan zodra je main wilt afschermen. De privérepo's van GitHub Free kunnen geen beveiligde branches of code owners gebruiken.
De betaalde abonnementen die je daarna vergelijkt, zijn GitHub Team, vermeld voor $4 per gebruiker per maand for the first 12 months,
en GitLab Premium, voor $29 per gebruiker per maand bij jaarlijkse betaling. Er is ook een optie zonder licentiekosten: GitLab Community Edition. CE draait op servers die jij beheert, één voor GitLab en één voor de runner die je CI-jobs uitvoert, en krijgt in de tabel hieronder een eigen kolom.
Zo verhouden de abonnementen zich bij een privérepo
Elke rij hieronder gaat uit van een privérepo van een team. De gegevens over de abonnementen komen van de eigen prijspagina of documentatie van elke leverancier.
| GitHub (Free / Team) | GitLab.com (Free / Premium) | GitLab CE op je eigen server | |
|---|---|---|---|
| Catalogusprijs | Free: $0. Team: $4 per gebruiker per maand voor de eerste 12 maanden | Free: $0. Premium: $29 per gebruiker per maand, jaarlijks gefactureerd | Je betaalt voor een GitLab-server en een runnerserver; CE heeft geen licentiekosten |
| Gebruikers op het gratis abonnement | Onbeperkt aantal medewerkers | 5 per privégroep op topniveau; daarboven alleen-lezen | De limiet van vijf gebruikers geldt niet voor Self-Managed |
| Verplichte reviews vóór een merge | Team | Premium | Vereist conversie naar EE en een Premium-licentie. Goedkeuringen in CE zijn optioneel |
| Code owners | Team | Premium | Vereist conversie naar EE en een Premium-licentie |
| Beveiligde branches | Team (Free heeft ze alleen op openbare repo's) | Free | Inbegrepen in de gratis versie |
| Controle op deploys naar productie | Verplichte reviewers: Enterprise, voor privérepo's | Beveiligde omgevingen, met deployrechten en goedkeurders: Premium | Vereist conversie naar EE en een Premium-licentie |
| Inbegrepen CI | 2.000 / 3.000 minuten per maand; je eigen runners zijn gratis | 400 / 10.000 rekenminuten per maand | Het quotum staat standaard uit, dus de CPU en het RAM van je runnerserver bepalen de limiet |
| Inbegrepen opslag | Packages en Actions-artefacten, gedeeld: 500 MB / 2 GB | Git-repository en LFS, per project: 10 GiB / 500 GiB | De schijf van je GitLab-server |
| Wie beheert de servers en updates | GitHub | GitLab | Jij |
| Zelfgehoste versie | Enterprise Server, op het Enterprise-abonnement | Self-Managed, met dezelfde Free- en Premium-niveaus | Ja, CE is het Self-Managed Free-niveau |
Abonnementen en prijzen zoals vermeld op github.com/pricing en about.gitlab.com/pricing op 28 september 2026, en ongewijzigd toen we beide op 21 oktober opnieuw bekeken. De pagina van GitHub vermeldt niet wat Team kost na de eerste 12 maanden. De opslagrij is geen appels-met-appels-vergelijking. De opslagruimte van GitHub geldt voor packages en Actions-artefacten, die van GitLab voor Git-repository- en LFS-opslag per project.
Wil je team dat iemand akkoord geeft voordat een deploy productie bereikt, lees dan de deployrij vóór de prijsrij. Op GitHub Free, Pro en Team werken verplichte reviewers voor deployomgevingen alleen op openbare repo's, waardoor die controle voor iedereen met privécode een niveau hoger ligt dan een verplichte mergereview. GitLab zet beide in Premium, waar beveiligde omgevingen bepalen wie mag deployen en wie moet goedkeuren. Is je code openbaar, dan vallen de meeste van deze verschillen op GitHub weg: beveiligde branches en deployreviewers werken allebei op openbare repo's zonder betaald abonnement.
Welke past bij jullie team
Kies GitHub Team als
Je code en Actions-workflows staan al op GitHub, en wat ontbreekt is een verplichte review met code owners op privérepo's.
Kies GitLab.com als
Je wilt geen server draaien. Free dekt een groep van maximaal vijf; daarna, of zodra je afgedwongen goedkeuringen nodig hebt, zit je op Premium.
Kies GitLab CE op je eigen server als
De kosten per gebruiker houden je tegen, je leads kunnen werken met goedkeuringen die een merge niet blokkeren, en een van hen wil de updates en back-ups op twee servers op zich nemen: GitLab en de bijbehorende runner.
Wij vinden dat GitHub het lastigst te verlaten is als je pipelines sterk op Actions leunen, want overstappen betekent dat je de Marketplace-workflows die je gebruikt moet ombouwen naar GitLab CI.
Wat GitLab CE weglaat en wat het behoudt
In CE kan een van je leads een merge request mergen dat niemand heeft gereviewd, en GitLab houdt dat niet tegen. Goedkeuringen in de gratis versie, de functieset waarop CE draait, „zijn optioneel en voorkomen niet dat er zonder goedkeuring wordt gemerged”. Alles in de lijst What needs Premium
hieronder heeft in de documentatie van GitLab het label Premium.
Wat CE behoudt
- Met beveiligde branches kies je welke rollen mogen mergen
- CI/CD-pipelines draaien op runners die je zelf host
- Het container registry is inbegrepen
- Eenvoudige issueborden zijn inbegrepen
- Statische applicatiebeveiligingstests (SAST) zijn inbegrepen
Wat Premium vereist
- Verplichte goedkeuringen en goedkeuringsregels
- Code owners, en goedkeuring door code owners op beveiligde branches
- Beveiligde omgevingen voor deploys naar productie
- Pushregels
- Merge trains
- Epics
Of er eerst een review plaatsvindt, blijft aan je Maintainers. Staat er in een klantcontract of een compliancecontrole dat geen enkele wijziging live mag zonder tweede goedkeuring, dan kan CE dat niet afdwingen, en de goedkeuringsregels van Premium wel.
Je hoeft niet te migreren om ze te krijgen. Volgens de conversiedocumentatie van GitLab installeer je het Enterprise Edition-pakket (EE) over CE heen en voeg je daarna een licentie toe. Tot je dat doet, draait EE dezelfde Free-functies zonder kosten. De functies van Premium worden actief zodra je een betaalde licentie activeert.
Wat zelf beheren vraagt
Eén CE-beheerder op het GitLab Forum, met een instance van zo'n 40 geregistreerde gebruikers waarvan er ongeveer vijf actief zijn, doet elke maandag deze vaste routine:
We take a backup and update every Monday morning, so we're generally running the latest and greatest version, and have
had no update/upgrade issues since around the 15->16 update.
Je plan vraagt iets meer:
- GitLab-updates uitvoeren volgens een vast schema, op een rustig moment. Na een koude start duurde het bij onze testinstance ongeveer 2 minuten voordat de aanmeldpagina reageerde
- Back-ups maken naar een andere plek dan de server, en af en toe een kopie terugzetten om te bewijzen dat het werkt. De back-up van GitLab slaat
gitlab.rbengitlab-secrets.jsonover, en volgens de back-updocumentatie moet je die twee zelf kopiëren - Ook GitLab Runner op zijn eigen server bijwerken
- Een tweede persoon aanwijzen die alles kan overnemen als de eerste afwezig is
Dit kost een jaar aan gebruikerslicenties tegen catalogusprijs, nog vóórdat je iets voor servers rekent:
| Teamgrootte | GitLab Premium, per jaar | GitHub Team, eerste jaar |
|---|---|---|
| 5 personen | $1,740 | $240 |
| 10 personen | $3,480 | $480 |
| 25 personen | $8,700 | $1,200 |
Dat is $29 en $4 per gebruiker per maand, maal 12. Onze gids over de kosten per gebruiker van GitLab en GitHub naast één GitLab CE-server berekent de volledige rekening, inclusief servers. Bij het mediane Amerikaanse uurloon in 2025 voor softwaredevelopers, QA-analisten en testers van $64,44, volgens het Bureau of Labor Statistics, kosten 10 Premium-licenties per jaar ongeveer evenveel als 54 uur werk van een developer, en 10 GitHub Team-licenties ongeveer 7 uur.
Om die uren voor je eigen team af te wegen tegen de licentiekosten, neem je een jaar aan Premium-licenties, trek je de kosten van de twee servers eraf en deel je door je eigen uurkosten. Zoveel uur onderhoud per jaar kun je besteden voordat CE duurder wordt dan Premium. Dit weegt alleen de kosten af, want CE dwingt goedkeuringen niet af zoals Premium dat doet. Is GitHub Team je andere optie, maak dan dezelfde berekening met de licentieprijs van $4. Bij die prijs duurt het veel langer voordat de licentiekosten oplopen tot de kosten van twee servers en hun onderhoud.
Op de GitLab VPS van DreamHost ondersteunt DreamHost de hardware, het netwerk en de connectiviteit 24/7, en volgens de productpagina regel je software-updates en configuratie zelf. Back-ups zijn ook jouw taak, zoals in de lijst hierboven staat.
Hoeveel server GitLab nodig heeft
De pagina met vereisten van GitLab noemt 8 vCPU en 16 GB geheugen als basis voor een installatie op één node. De GitLab VPS-abonnementen van DreamHost omvatten Stack 16 (4 vCPU, 16 GB) en Stack 32 (8 vCPU, 32 GB). Stack 32 is het eerste abonnement dat aan die basis voldoet. Stack 16 haalt de 16 GB, maar heeft de helft van de 8 vCPU, dus het zit onder de basis, en de kleinere abonnementen zitten er nog verder onder. De gids van GitLab voor beperkt geheugen gaat veel lager, voor maximaal vijf developers. Geen van beide pagina's noemt een team van 10 of 20.
Die getallen gelden voor GitLab zelf. CI-jobs horen ergens anders: volgens de installatiepagina voor de runner van GitLab installeer je GitLab Runner op een andere machine dan de machine waarop je GitLab-instance draait. GitLab publiceert geen formaat voor die machine. De pagina met vereisten voor de runner zegt dat het afhangt van hoeveel CPU en geheugen je jobs gebruiken, hoeveel er tegelijk draaien en hoeveel mensen parallel werken. Wij schatten zelf in dat Stack 8 volstaat, met 2 vCPU en 8 GB, gelijk aan de standaard gehoste runner van GitLab.com.
| CPU | Geheugen | Opslag | |
|---|---|---|---|
| Basis van GitLab | 8 vCPU | 16 GB, of minimaal 8 GB als het geheugen krap is | 40 GB voor de applicatie, plus repositories; SSD aanbevolen |
| GitLab met weinig geheugen, maximaal 5 developers | 1 AMD64-core | 2 GB plus 1 GB swap | 20 GB |
| Stack 16 | 4 vCPU | 16 GB | 250 GB NVMe |
| Stack 32 | 8 vCPU | 32 GB | 450 GB NVMe |
| Stack 8, onze schatting voor de runner | 2 vCPU | 8 GB | 150 GB NVMe |
Pagina's met vereisten van GitLab geraadpleegd op 28 september 2026, runnerpagina's op 20 oktober 2026. Specificaties van de Stacks komen van de GitLab VPS-pagina van DreamHost.
De documentatie van GitLab zegt niet waar 4 vCPU tekortschiet voor een team van jouw omvang, en wij hebben dat ook niet gemeten. Daarom draait de test hieronder GitLab op Stack 16 en houdt die in de gaten terwijl pipelines draaien. Komen jobs tijdens de test in de wachtrij, controleer dan de concurrency-instelling van de runner en het CPU-gebruik op beide servers voordat je het abonnement de schuld geeft. Zit de CPU van een GitLab-server bijna vol terwijl pipelines draaien, dan heb je het tekort gevonden, en Stack 32 voldoet aan beide basiswaarden van de pagina met vereisten. Schijfruimte groeit mee met je repositories, containerimages en CI-artefacten, dus controleer de gebruikte ruimte aan het eind van de proefperiode en reken die door naar de toekomst.
Wat GitLab CE gebruikte op onze test-VM
De pagina's van GitLab over het formaat geven een basis voor echt gebruik en een ondergrens voor weinig geheugen, maar geen meting van wat een lege installatie werkelijk gebruikt. Daarom hebben we het officiële image van GitLab CE 19.5.0 gedraaid op een test-VM met 2 vCPU en 8 GB, ongeveer het formaat van de runnerserver hierboven, en het geheugen afgelezen 10 minuten nadat het tot rust was gekomen. Daarna draaiden we drie pipelines van een klein Node.js-project, met GitLab Runner op dezelfde VM.

| Wat we controleerden | Resultaat | Wat het betekent voor je servers |
|---|---|---|
| Drie pipelines, runner op dezelfde VM | GitLab piekte op ongeveer 4.705 MiB. Bij één meting gebruikte de job 137% CPU en GitLab 79% | Meer dan 2 vCPU tegelijk kon leveren, en daarom krijgt de runner een eigen server |
| Aanmeldpagina terwijl de pipelines draaiden | Doorgaans 0,17 s, traagst 1,30 s | De webapp bleef bruikbaar voor één klein project |
| Jobminuten per push, klein Node.js-project | 0,28 tot 0,80 minuten | De 400 minuten van GitLab.com Free zouden 500 of meer van zulke pushes dekken. Je eigen testsuite zal afwijken, dus bekijk je pagina met CI-gebruik |
In de CPU-cijfers staat 100% voor één vCPU, dus de job en GitLab hadden samen meer nodig dan de twee van de VM. Deze runs hadden geen gebruikers en één klein project, dus ze zeggen niets over teamgrootte. Ze laten wel zien dat GitLab in rust ongeveer 4.285 MiB geheugen gebruikt met de standaardinstellingen en ongeveer 2.657 MiB met de instellingen voor weinig geheugen, ongeveer een kwart van de 16 GB van Stack 16 of minder. Daardoor blijft de 4 vCPU het cijfer om in de gaten te houden. Let tijdens de proefperiode dus op de CPU van beide servers terwijl je eigen pipelines draaien.
Zo probeer je CE één sprint lang uit
Spiegel je code naar de testserver en laat het origineel staan waar het is. Valt de test tegen, dan hoef je niets terug te verhuizen.
- Kopieer één echte repository
Kies een repo met een werkende pipeline en de echte geschiedenis, zodat de test je werkelijke omvang en buildtijden meeneemt. De GitHub-importer van GitLab zet de repo, issues en pull requests over.
- Stel de mergeregel in
Bescherm
mainmet Allowed to merge ingesteld op Maintainers en Allowed to push and merge op No one. Kijk daarna of je leads goed kunnen werken met goedkeuringen die GitLab niet afdwingt. - Draai een normale week CI
Registreer een runner op een tweede server, een Stack 8, en draai je gebruikelijke pipelines. Zijn het GitHub Actions-workflows, herschrijf ze dan eerst voor GitLab CI en tel die uren mee in de test. Noteer hoe lang jobs wachten terwijl mensen de webapp gebruiken.
- Test een herstel en een update
Zet een back-up, plus je kopieën van
gitlab.rbengitlab-secrets.json, terug op een losse wegwerpserver en voer daarna een GitLab-update uit. Noteer hoe lang elke stap duurde en wat je met de hand moest oplossen. We hebben op onze test-VM geen update getimed, dus uit deze stap komt je cijfer voor het onderhoud.
Leg voordat de sprint begint vast wanneer de test geslaagd is: hoe lang een build mag wachten en hoeveel uur onderhoud per maand je accepteert.
Hoe we GitLab CE hebben getest
De GitLab-cijfers op deze pagina zijn op 20 oktober 2026 door DreamHost gemeten op een test-VM (arm64), niet op een DreamHost-server. Het is dezelfde meting als die achter onze gids over de kosten per gebruiker van GitLab en GitHub, waarin je de volledige opstelling en de metingen in rust uitgebreider vindt. Onze abonnementen gebruiken x86-processors van het type AMD EPYC, dus reken op kleine verschillen op een echte server. Kort samengevat: de officiële CE 19.5.0-image op een machine met 2 vCPU en 8 GB geheugen (7.922 MiB volgens Linux), één keer met de standaardinstellingen en één keer met de instellingen voor beperkt geheugen van GitLab. Voor de pipelines draaide GitLab Runner op dezelfde machine en voerde die de test- en buildjobs van het opensourceproject Express drie keer uit, terwijl we elke 3 seconden het geheugen- en CPU-gebruik uitlazen.
Wat we niet hebben getest: de belasting van een echt team, een grote repository, meerdere pipelines tegelijk, een runner op een tweede server, de 4 vCPU van Stack 16 of de 8 van Stack 32, en de downtime tijdens een update. Elke instelling draaide één keer. Abonnementsgegevens en prijzen komen van de eigen pagina's van GitHub en GitLab, op de data die bij de bronnen staan.
Veelgestelde vragen over GitLab of GitHub
Is GitLab CE gratis voor een team van 20?
Je betaalt geen licentiekosten, en de limiet van vijf gebruikers van GitLab geldt niet voor CE. Het grootste deel van de code valt onder de MIT Expat-licentie, terwijl de map ee/ een eigen licentie heeft. De kosten zitten in de servers en de uren onderhoud die we behandelen in het deel over zelf hosten.
Kunnen we op GitLab.com Free blijven door het team over meer groepen te verdelen?
Dat kan, tot op zekere hoogte. De limiet van vijf gebruikers geldt per privégroep op het hoogste niveau, dus elke groep heeft nog steeds maximaal vijf gebruikers. Bovendien kunnen Free-accounts die na 27 januari 2026 zijn aangemaakt maximaal drie groepen op het hoogste niveau bezitten.
Kun je GitHub zelf hosten?
Ja, met het Enterprise-abonnement. De prijspagina van GitHub noemt Enterprise Server, zelfgehoste GitHub voor appliances op eigen locatie of zelfbeheerde cloudomgevingen, als de zelfgehoste implementatieoptie van dat abonnement. Op 28 sep 2026 begon het Enterprise-abonnement bij $21 per gebruiker/maand voor de eerste 12 maanden.
Is GitHub Actions gratis op onze eigen runners?
Volgens de documentatie over Actions-facturering van GitHub was gebruik op zelfgehoste runners nog steeds gratis toen we die op 21 oktober 2026 opnieuw lazen. Een team op GitHub Team kan zijn builds dus naar een eigen machine sturen en de 3.000 inbegrepen minuten bewaren voor al het andere.
Bronnen
- Pricing, GitHub, 28 sep 2026. github.com/pricing
- GitHub's plans, GitHub Docs, 28 sep 2026. docs.github.com/en/get-started/learning-about-github/githubs-plans
- About protected branches, GitHub Docs, 28 sep 2026. docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches
- About code owners, GitHub Docs, 28 sep 2026. docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
- Deployments and environments, GitHub Docs, 28 sep 2026. docs.github.com/en/actions/reference/workflows-and-actions/deployments-and-environments
- GitHub Actions billing, GitHub Docs, 28 sep 2026. docs.github.com/en/billing/concepts/product-billing/github-actions
- Pricing, GitLab, 28 sep 2026. about.gitlab.com/pricing
- Free tier user and group limits, GitLab Docs, 28 sep 2026. docs.gitlab.com/user/free_user_limit
- Merge request approvals, GitLab Docs, 28 sep 2026. docs.gitlab.com/user/project/merge_requests/approvals
- Code Owners, GitLab Docs, 28 sep 2026. docs.gitlab.com/user/project/codeowners
- Protected branches, GitLab Docs, 28 sep 2026. docs.gitlab.com/user/project/repository/branches/protected
- Protected environments, GitLab Docs, 28 sep 2026. docs.gitlab.com/ci/environments/protected_environments
- Compute minutes, GitLab Docs, 28 sep 2026. docs.gitlab.com/ci/pipelines/compute_minutes
- Installation requirements, GitLab Docs, 28 sep 2026. docs.gitlab.com/install/requirements
- Running GitLab in a memory-constrained environment, GitLab Docs, 28 sep 2026. docs.gitlab.com/omnibus/settings/memory_constrained_envs
- Convert a Linux package CE instance to EE, GitLab Docs, 28 sep 2026. docs.gitlab.com/update/convert_to_ee/package
- Activate GitLab EE with a license, GitLab Docs, 28 sep 2026. docs.gitlab.com/administration/license
- Tell me about your experience with self-managed GitLab, GitLab Forum, 28 sep 2026. forum.gitlab.com/t/tell-me-about-your-experience-with-self-managed-gitlab/120200
- LICENSE, GitLab, 29 sep 2026. gitlab.com/gitlab-org/gitlab/-/blob/master/LICENSE
- Storage usage quotas, GitLab Docs, 29 sep 2026. docs.gitlab.com/user/storage_usage_quotas
- Import your project from GitHub to GitLab, GitLab Docs, 29 sep 2026. docs.gitlab.com/user/project/import/github
- Install GitLab Runner, GitLab Docs, 20 okt 2026. docs.gitlab.com/runner/install
- System requirements and supported platforms, GitLab Docs, 20 okt 2026. docs.gitlab.com/runner/install/requirements
- Hosted runners on Linux, GitLab Docs, 20 okt 2026. docs.gitlab.com/ci/runners/hosted_runners/linux
- Back up GitLab, GitLab Docs, 20 okt 2026. docs.gitlab.com/administration/backup_restore/backup_gitlab
- GitLab CE Docker image (gitlab/gitlab-ce), Docker Hub, 20 okt 2026. hub.docker.com/r/gitlab/gitlab-ce
- Software Developers, Quality Assurance Analysts, and Testers (Occupational Outlook Handbook), US Bureau of Labor Statistics, 28 sep 2026. bls.gov/ooh/computer-and-information-technology/software-developers.htm