Coding en softwareontwikkeling zijn de afgelopen jaren enorm gegroeid. Daarmee is ook de vraag naar de bijbehorende tools sterk toegenomen, wat heeft geleid tot een competitieve markt waarin verschillende coding- en DevOps-tools strijden om de positie van standaardkeuze in hun vakgebied. Git is daar een van. Gecombineerd met de opkomst van thuiswerken voor beroepen die voornamelijk achter een beeldscherm worden uitgeoefend, kiezen steeds meer mensen ervoor om hun tools, waaronder Git, op externe servers te draaien. Wil jij ook een eigen Git-server opzetten? Dan ben je hier aan het juiste adres.
In dit artikel leg ik uit wat Git precies is en bespreek ik de voor- en nadelen, waarna ik je laat zien wat je nodig hebt om je eigen Git-server te hosten. Laten we beginnen!
Wat is Git?
Git is een DevOps-programma waarmee ontwikkelaars hun projecten efficiënt kunnen beheren en uitvoeren. De belangrijkste functie van Git is het bijhouden van wijzigingen in de broncode door de tijd heen. Git is gratis en open-source en ontvangt regelmatig updates. Dit maakt Git tot een van de meest toegankelijke en betrouwbare DevOps-tools voor versiebeheer. Elke computer waarop Git is geïnstalleerd, fungeert als een volledige repository met een eigen geschiedenis van alle bestandswijzigingen. Na bijna 20 jaar actieve ontwikkeling en meer dan 30 uitgebrachte updates draait Git momenteel op versie 2.40.0, met verdere updates in de planning. Laten we nu een aantal toepassingen van Git bekijken, zodat duidelijk wordt waarom je überhaupt een Git-server zou willen installeren.
Git-toepassingen
Voordat we meteen beginnen met het opzetten van een eigen Git-server, is het goed om eerst te kijken waarvoor Git precies wordt gebruikt. Dat maakt duidelijk waarom je überhaupt een eigen Git-server zou willen draaien.
Repository klonen
Veel ontwikkelaars geven de voorkeur aan een Git-repository op de server om hun code en bestanden bij te houden. Met een paar eenvoudige commando's kun je een bestaande Linux kernel-repository kopiëren en gebruiken als basis voor een overzichtelijk en gestructureerd wijzigingslogboek van precies de bestanden die je nodig hebt. Het proces is eenvoudig uit te voeren en werkt goed voor zowel kleine als grote projecten. Dit proces staat ook bekend als ""vertakking, omdat je in feite een nieuwe branch aanmaakt vanuit je bestaande repository.
Git Werkstroom
Git Workflow is een andere veelgebruikte toepassing zodra je je eigen Git-server hebt geconfigureerd. Met een lokale Git-server kun je via het kloonproces twee sets branches aanmaken: één die je project vertegenwoordigt, bijvoorbeeld een website, en één productietak op een aparte Git-server waar alle wijzigingen van elk teamlid worden bijgehouden en getest voordat ze worden doorgevoerd. Deze gelaagde aanpak maakt je ontwikkelproces niet alleen efficiënter, maar ook een stuk transparanter: je kunt precies zien wie wat heeft gewijzigd en wanneer.
Samenvoegen
Weet je nog dat je een branch aanmaakte en een wijzigingslog bijhield? Merging is precies het omgekeerde. Het is ook het onderdeel van Git dat de meeste mensen het lastigst vinden: je neemt de wijzigingen van een branch en voegt die terug samen met de masterrepository waarvan die branch oorspronkelijk was afgesplitst. Dit doe je om één overzichtelijke repository te krijgen met een volledige projectgeschiedenis, inclusief alle wijzigingen uit de verschillende branches. Tijdens het project gebruik je branches om conflicten te vermijden. Aan het einde draait merging dat terug, zodat je bij het oplossen van problemen een helder totaalbeeld hebt.
Host je eigen Git-server: voor- en nadelen
Elk programma heeft voor- en nadelen die je moet kennen voordat je ermee aan de slag gaat. In dit gedeelte bespreek ik de voor- en nadelen van Git. Let wel: deze gelden specifiek voor een zelf-gehoste Git-omgeving, wat precies het onderwerp is van deze handleiding.
Zelfgehoste Git: voordelen
Geen Tussenkomst van Derden
Met een zelf-gehoste Git-omgeving hebben alleen jij en je teamleden toegang tot je bestanden. Zo houd je ongewenste derden buiten de deur en kun je je volledig op je project richten. Je gegevens zijn beter beschermd, en de middelen die je anders aan beveiliging zou besteden, kun je ergens anders voor inzetten.
Beveiliging
Als het om beveiliging gaat: Git is zo veilig als je het maakt, mits je best practices volgt en de juiste tools inzet. Self-hosting geeft je iets minder beveiliging out of the box vergeleken met beheerde oplossingen, maar daar staat tegenover dat je vrijwel volledige controle hebt over hoe je je eigen omgeving beveiligt.
Onbeperkte Repositories
Klonen en branchen zijn krachtige functies van Git, en er zit geen limiet op het aantal repositories dat je kunt aanmaken. Dat maakt Git bijzonder geschikt voor grotere projecten waarbij elke ontwikkelingstak zijn eigen repository nodig heeft. Het is ook een uitstekende keuze voor projecten met grote bestanden, zoals 3D-assets, en voor workflows met Unity.
Zelfgehoste Git: Nadelen
Veel beheerwerk
Git-repositories kunnen snel onoverzichtelijk worden. Als je zelf een Git-server configureert op een zelfgehost platform, wordt het beheren van alle branches en metadata al gauw een last. Je moet of extreem nauwkeurig te werk gaan, of iemand inschakelen die het voor je doet.
Steile leercurve
Git hosten is één ding, maar het echt beheersen en je eigen lokale Git-server draaien is een ander verhaal. Git heeft een van de hoogste leercurves van alle repository-gebaseerde DevOps-tools. Je zult er flink wat tijd in moeten steken, of het uitbesteden.
Geen GUI- en Windows-ondersteuning
Wil je een Git-server opzetten op Windows? Of de Git-server configureren met een GUI? Dat gaat helaas niet. Je bent beperkt tot besturingssystemen met een Linux-kernel als basis, en er is geen GUI die het je makkelijker maakt. Wil je een Git-server installeren en zelf hosten? Dan is het verstandig om eerst de basisprincipes van programmeren onder de knie te krijgen.
Verouderde Methode
Op vrijwel elk vlak is het draaien van Git op een zelfgehoste server inmiddels achterhaald en overtroffen door efficiëntere alternatieven. De meest voor de hand liggende voorbeelden van een efficiëntere aanpak zijn GitLab. Lees dus eerst verder voordat je beslist om je eigen Git-server te draaien. Bekijk GitLab ook!
Vereisten voor het installeren van een Git-server
Laten we snel de vereisten doornemen voor het opzetten en zelfhosten van een Git-server. Om Git te hosten heb je slechts twee dingen nodig: een server en een instantie van Git, plus basiskennis van de commandoregel om de configuratie uit te voeren.
Git Server
Voor de server kun je een eigen pc gebruiken, kiezen voor dedicated servers van traditionele providers, of als je meer controle wilt, een cloud VPS (virtual private server) nemen. Met een VPS kun je de server direct beheren en tegelijkertijd de Git-instantie bedienen. Let op: je server moet een Linux-distro draaien om een Git-server op te kunnen zetten. Cloudzy biedt een ruim aanbod aan Linux VPS diensten met meer dan 10 bekende Linux-distros, zoals Ubuntu, Debian, CentOS, Kali en OpenSUSE. Vanaf slechts $ 4,95 per maand krijg je een betrouwbare Linux-server dicht bij jouw locatie, wat zorgt voor een goede verbindingskwaliteit. Gebruik hem om zelf een Git-server te hosten en draaien.
Kies een economy of premium Linux VPS voor het hosten van je website of remote desktop, tegen de scherpste prijs. VPS draait op Linux KVM voor hogere efficiëntie en maakt gebruik van krachtige hardware met NVMe SSD-opslag voor maximale snelheid.
Meer lezenGit-instantie
Het opzetten van een Git-server is eenvoudig en verloopt grotendeels automatisch via het installatieproces. Zoals gezegd is Git open-source en gratis, wat het aantrekkelijker maakt dan veel andere repository-gebaseerde tools voor development. Nu we de vereisten hebben besproken, gaan we direct aan de slag met onze stapsgewijze handleiding voor het installeren van een Git-server op je Linux-server.
Git-server installeren op Linux (stapsgewijze handleiding)
Stap 1: Git downloaden en installeren
Dit is de eerste stap bij het installeren van een Git-server. Voer in de terminal van je gekozen Linux-distro het volgende commando in om de download van Git te starten:
Op Ubuntu/Debian gebaseerde distros:
sudo apt install git
Op Arch gebaseerde distros:
sudo pacman -S git
Op RHEL gebaseerde distros:
sudo dnf install git
Dit commando downloadt en installeert Git op je Linux-server. Wacht totdat het proces is voltooid.
Stap 2: De Git-server registreren en configureren
Als je een lokale server op een andere desktop hebt, start die dan op. Heb je een VPS, gebruik dan SSH of RDP om op afstand verbinding te maken met je Linux-server. We gaan de Git-server nu configureren voor gebruik op afstand. Dat doen we door een Git-account aan te maken met het volgende commando:
ssh username@address
sudo useradd git
Voer vervolgens dit commando in om naar je nieuw aangemaakte account te schakelen:
su git
Deze stap is voornamelijk bedoeld om de beveiliging van je lokale Git-server te waarborgen. Met dit account ben je de beheerder van de server. Je kunt toekomstige gebruikers eenvoudig indelen in gebruikersgroepen met vooraf ingestelde beperkingen en toegangsniveaus.
Stap 3: Maak SSH-mappen aan en Maak een Git-repository aan op de server
De volgende stap bij het installeren van een Git-server is het aanmaken van een aparte SSH-map om onze publieke sleutels op te slaan en een Git-repository op de server aan te maken met extra beveiligingslagen en gedefinieerde toegangsniveaus. Begin met het invoeren van het volgende commando:
ssh git@address
mkdir .ssh
chmod 700 .ssh/
touch .ssh/authorized_keys
Zodra je de toegang voor anderen hebt beperkt met deze opdrachtregel, voer je de volgende regel in om ervoor te zorgen dat je SSH-sleutels veilig worden opgeslagen in een authorized_keys map, waar alleen jij toegang toe hebt (voer dit commando alleen uit als je GEEN id_rsa.pub bestand):
cd .ssh
ssh-keygen -t rsa
cat id_rsa.pub
Kopieer ten slotte de SSH publieke sleutel die je hebt aangemaakt om een nieuwe SSH-verbinding met extra beveiliging in te stellen voor je lokale Git-server:
cd .ssh
vi authorized_keys
Stap 4: Maak een hoofdmap aan
Op je Linux-server moet je een nieuwe map aanmaken om alle repositories op te slaan die Git gebruikt in je toekomstige projecten. Je kunt alles leren over het beheren van je Git-repositories. Voer dit commando in:
mkdir directory_name
Stap 5: Voeg je project toe!
Je hebt een Git-server aangemaakt. Het installatieproces is succesvol afgerond en de Git-server is correct geconfigureerd. Het enige dat nog rest is het toevoegen van extra projecten met het volgende commando:
cd parent_directory
mkdir new_project.git
Voer vervolgens dit commando in om een externe origin aan je lokale computer toe te voegen:
git init --bare
git remote add origin name git@address:new_project.git
Voer tot slot een Git push uit om te controleren of alles werkt zoals verwacht:
touch testfile
git add testfile
git commit -m "test file"
git push name master
git clone git@address:new_project.git
Gefeliciteerd, je hebt Git succesvol gehost en een Git-repository aangemaakt op de server.
Veelgestelde vragen
Kan ik Git hosten zonder een server?
Nee. Ongeacht de aard van je server heb je hardware nodig die als server fungeert. Je kunt GitHub gebruiken als cloudserver voor je repositories, of gebruik maken van onze VPS aanbiedingen, of een andere externe hostingdienst als server inzetten.
Is er een manier om een Git-server met GUI te installeren?
Ja. Hoewel Git zelf geen GUI ondersteunt, is er een zelfstandige versie met GUI beschikbaar - bekend als "Git GUI" - voor wie niet zonder een grafische interface kan.
Is er een betaald abonnement voor Git?
Nee. Git is en blijft altijd gratis en open-source, zoals vastgelegd door de oorspronkelijke ontwikkelaars en uitgevers. Je kunt het programma vrijelijk gebruiken als basis voor je eigen ontwikkelwerk.
Waarom zou je je eigen Git-server hosten?
Als je een klein project met een beperkt aantal repositories wilt draaien, biedt zelf-hosten meer privacy en betere beveiliging. Dat is de belangrijkste reden. Maar naarmate je grotere projecten met meer repositories oppakt, neemt de efficiëntie van zelf-hosten af.