Ontwikkelen
Een Europees alternatief voor GitHub: Forgejo, Gitea of GitLab?
Kort antwoord
Forgejo is voor de meeste teams het meest voor de hand liggende Europese alternatief voor GitHub. Het is volledig vrije software, valt onder een Duitse vereniging zonder winstoogmerk, en kan repositories, issues, pull requests en releases van GitHub overnemen. Gitea lijkt erop, maar wordt beheerd door een commercieel bedrijf. GitLab kan meer, maar is zwaarder om te draaien en deels gesloten software.
Waarom zoeken teams een alternatief voor GitHub?
Meestal om een van drie redenen. De code is het belangrijkste wat een softwarebedrijf heeft, en het staat bij een Amerikaans bedrijf. Klanten vragen waar hun broncode staat. Of het team wil gewoon zelf bepalen welke versie draait, wie erbij kan en waar de back-ups staan.
GitHub is een goed product. Het punt is niet dat het slecht werkt, maar dat je er niets over te zeggen hebt.
Welke drie opties zijn er?
| Forgejo | Gitea | GitLab | |
|---|---|---|---|
| Wie bepaalt de koers | Codeberg e.V., een Duitse vereniging zonder winstoogmerk | Een commercieel bedrijf | GitLab Inc., een Amerikaans bedrijf |
| Licentie | Alleen vrije software, GPL v3 of later sinds versie 9 | Open core: een open versie plus betaalde functies | Open core: Community Edition plus gesloten betaalde functies |
| CI/CD | Forgejo Actions | Gitea Actions | GitLab CI |
| Zwaarte | Eén programma of container met een database | Vergelijkbaar met Forgejo | Groter: de eigen documentatie gaat uit van 8 vCPU en 16 GB geheugen voor één server |
Forgejo of Gitea?
Ze hebben een gezamenlijke geschiedenis. In oktober 2022 werden de domeinen en het merk van Gitea overgedragen aan een commercieel bedrijf. Een deel van de gemeenschap was het daar niet mee eens en begon Forgejo, onder de vleugels van Codeberg e.V.
In het begin was Forgejo een zachte afsplitsing die wijzigingen van Gitea bleef overnemen. Begin 2024 werd het een harde afsplitsing met een eigen codebase. Ze lijken nog op elkaar, maar ze lopen steeds verder uiteen.
Het verschil zit vooral in wie de koers bepaalt. Forgejo publiceert alleen vrije software, onder een vereniging die de domeinen in beheer heeft. Gitea werkt met een open core-model, waarbij een deel van de functies betaald is. Voor de dagelijkse ontwikkelaar voelen ze vergelijkbaar.
Wanneer kies je GitLab?
Als je meer wilt dan een Git-server met CI. GitLab heeft ingebouwde onderdelen voor projectplanning, beveiligingsscans en registers, en grote organisaties werken er graag mee. Daar staat tegenover dat het veel zwaarder is om te draaien, en dat een deel van de functies alleen in de betaalde, gesloten versie zit. Voor een team van een paar ontwikkelaars is het vaak meer dan nodig.
Werkt CI/CD zoals bij GitHub?
Forgejo Actions lijkt op GitHub Actions: workflows in YAML, in een map in je repository, uitgevoerd door een runner. Het Forgejo-project zegt er zelf eerlijk bij dat het herkenbaar is ontworpen, maar niet om compatibel te zijn. In de praktijk werken eenvoudige workflows vaak na kleine aanpassingen. Workflows die leunen op acties uit de GitHub Marketplace of op functies die alleen GitHub heeft, moet je nalopen.
Wat neem je mee bij een overstap?
Meer dan alleen de code. De migratiefunctie van Forgejo haalt bij een overstap van GitHub ook de wiki, labels, mijlpalen, issues, pull requests en releases op. Draai je nu Gitea tot en met versie 1.22, dan kun je de hele installatie upgraden naar Forgejo.
Plan de verhuizing per repository of per team, niet alles tegelijk. Zo kan een team blijven werken terwijl het volgende overgaat, en zie je bij de eerste repository al wat er in de rest moet gebeuren.
Wat je zelf moet regelen: de CI-workflows nalopen, de webhooks en koppelingen opnieuw instellen, en iedereen een nieuw adres voor de remote geven. Dat is werk, maar het is één keer werk.
Hoe doen wij het?
Wij hosten Forgejo per klant op een eigen adres, op hardware die van ons is, met de runners voor Forgejo Actions erbij. We verhuizen je repositories van GitHub, GitLab of Gitea, en lopen de workflows met je na. Hoe zo’n verhuizing verder verloopt, staat bij overstappen.
Wil je eerst weten waarom de plek van je data ertoe doet, lees dan waar staat je data.