Met Gitea bouw je je eigen GitHub

Dankzij Gitea kun je relatief eenvoudig je eigen GitHub-alternatief bouwen, waar je je programmacode een plek kunt geven. Dat is erg praktisch, ook voor het bijhouden van problemen en documentatie. Bovendien dient het als back-up.

Op GitHub kun je eenvoudig je projecten een plekje geven en delen met de wereld. Maar je kunt zoiets ook zelf bouwen, bijvoorbeeld met Gitea. Deze lichtgewicht software kun je eenvoudig zelf hosten. Waarom zou je dat doen? Ten eerste is het een veilig idee om je ontwikkelbestanden in eigen beheer te hebben. Weliswaar kun je deze op GitHub ook wel privé houden, maar een foutje is snel gemaakt. Sommigen zijn ook niet blij met het feit dat GitHub is overgenomen door Microsoft. Het werkt bovendien – zeker lokaal – ook een stukje sneller. Ten slotte zijn er geen beperkingen meer, zoals je die met een gratis account wel op GitHub hebt.

Met Gitea kun je een lichtgewicht GitHub bouwen voor persoonlijk gebruik.

Licht en flexibel

Gitea is gratis, opensource en uitgegeven onder MIT-licentie, wat erop neerkomt dat vrijwel alles wordt toegestaan. Het pakket biedt uiteraard versiebeheer met Git en een grafische webinterface voor het beheer. Je kunt problemen bijhouden, op basis van meldingen van gebruikers. Dit ken je wellicht van GitHub. Ook kun je uitgebreidere documentatie maken in de vorm van een wiki. Toegang tot de repository is mogelijk via http(s) en ssh. Het is geschreven in de programmeertaal Go en hierdoor platformonafhankelijk. Je kunt het draaien via het uitvoerbare bestand dat onder meer voor Linux, Windows en macOS verkrijgbaar is. Hier installeren we het onder Ubuntu 20.04 LTS met de hulp van Snap. Kleinere systemen als een Raspberry Pi of een NAS kunnen ook als basis dienen. Voor niet al te grote projectgroepen is eenvoudige hardware meer dan toereikend. Ook in vergelijking met GitLab, een van de bekendere alternatieven, liggen de systeemeisen voor Gitea een stuk lager.

Installatie

Op https://docs.gitea.io/en-us staat uitgebreide documentatie voor Gitea. Ook vind je hier verschillende installatiemethoden. Wij kiezen hier voor een installatie onder Ubuntu middels Snap. Zorg dat Snap is geïnstalleerd:

sudo apt install snapd

Daarna installeer je Gitea met:

sudo snap install gitea

Open hierna een browser met het ip-adres van het bewuste systeem en poortnummer 3000. In ons voorbeeld is dat http://10.0.10.53:3000. We kiezen als database voor SQLite3 dat geen verdere configuratie vereist. Bij Gitea base URL en SSH server domein veranderen we localhost naar het ip-adres van de bewuste server. Het maken van een administrator-account onder het kopje Instellingen beheerdersaccount is optioneel, maar wel raadzaam. De eerste geregistreerde gebruiker wordt anders automatisch de beheerder.

Via de browser kun je de configuratie voor Gitea afhandelen.
De mogelijkheden van Gitea zijn overwegend vergelijkbaar met GitHub

Repository maken

Je kunt binnen de webinterface van Gitea een nieuwe repository maken, door op de overzichtspagina achter Repositories op het plusteken te klikken. Vul de gevraagde details in, met minimaal een naam voor de repository en een vinkje achter Zichtbaarheid als deze repository privé moet zijn (achter de checkbox staat namelijk Maak repository privé). Klik dan op Nieuwe repository. Je kunt deze nu klonen, maar ook gebruiken voor een bestaand project, zoals we hierna zullen doen.

Vanuit de webinterface van Gitea maak je een nieuwe repository.

Remote repository toevoegen

We nemen een bestaand project als uitgangspunt. We gaan Gitea als remote repository toevoegen onder de naam origin met:

git remote add origin http://10.0.10.53:3000/gertjan/demo.git

Vervolgens synchroniseren we de masterbranch met de remote server:

git push -u origin master

Eventuele andere branches kun je op vergelijkbare wijze synchroniseren. Verdere wijzigingen kun je met een nieuwe push synchroniseren. Je zult merken dat om je gebruikersnaam en wachtwoord worden gevraagd. Dit kun je oplossen door op je systeem de juiste ssh-sleutels aan te maken en deze toe te voegen in Gitea.

Beschrijving toevoegen

Het is nuttig om een beschrijving te hebben van een project. In je werkdirectory maak je daarvoor een tekstbestand met de naam README.md. Gebruik bijvoorbeeld de editor nano:

nano README.md

Hier zet je in Markdown-formaat een beschrijving in. Je kunt de tekst op verschillende manieren opmaken. Gebruik bijvoorbeeld een of meerdere hekjes voor een header en twee sterretjes voor en na een tekst om die vet te maken. Voeg het bestand hierna toe aan je staging area, om het met de tweede opdracht naar je lokale repository te zetten:

git add README.md

git commit -m "Beschrijving toegevoegd"

Werk vervolgens je remote repository op Gitea bij:

git push -u origin master

Als je je projectpagina op Gitea bezoekt, zie je dat de beschrijving direct getoond wordt.

De beschrijving voor het project hebben we toegevoegd aan Gitea.

Extra mogelijkheden

Gitea geeft je veel extra features. De mogelijkheden zijn overwegend vergelijkbaar met GitHub en ook de interface lijkt erop. Je kunt om te beginnen op het tabblad Code alle programmabestanden bekijken, evenals de verschillende vertakkingen (branches). Als je binnen dit tabblad naar Commits gaat, zie je alle veranderingen die je hebt gedaan met de korte beschrijving. Als je er op klikt, zie je wat er precies was veranderd.

Het tabblad Kwesties geeft jou en anderen de mogelijkheid om problemen met je code te melden. Je kunt zo’n kwestie vervolgens tot in detail configureren. Je kunt bijvoorbeeld een timer starten zodat je weet hoelang je aan de oplossing werkt, een vervaldatum toevoegen om jezelf een deadline te stellen en afhankelijkheden toevoegen, als je voor het oplossen afhankelijk bent van een andere kwestie. Als het probleem is opgelost, kun je de kwestie sluiten.

Op het tabblad Pull-aanvragen geef je als medeontwikkelaar aan dat je een bepaalde feature hebt afgerond en dat die mag worden toegevoegd aan de master. Ook zulke aanvragen geven weer de mogelijkheid voor verdere discussie. Verder kun je onder andere uitgebreidere documentatie schrijven op het tabblad Wiki.

Geschreven door: Gertjan Groen op

Category: Workshop, Algemeen

Tags: tips, bouwen, alternatief, github, gitea