Anonim

Waarom Gitlab

Snelle links

  • Waarom Gitlab
  • Opstelling
  • Afhankelijkheden installeren
  • Installeer Gitlab
  • Voer de Setup uit
  • Initiële setup
  • SSH instellen
    • Voor normale SSH
  • UFW configureren
  • Gedachten sluiten

Er zijn tal van geweldige opties voor het hosten van uw projecten en het delen van uw code. Je kunt nu meteen een Github-account instellen. Dus waarom zou je de moeite nemen om Gitlab zelf op te zetten?

Er zijn een paar goede argumenten voor, eigenlijk, niet in de laatste plaats privacy. Gitlab is van jou. Je host het en je bezit het. U kunt dus bepalen wie toegang heeft tot uw opslagplaatsen. Dat betekent ook dat je controle hebt over het platform zelf. U bent niet onderworpen aan bedrijfsbeleid, willekeurige prijswijzigingen of gegevensverzameling.

Zelfgehost versiebeheer betekent ook dat u niet afhankelijk bent van een service om toegang te krijgen tot uw code. Natuurlijk, de kansen dat Github of een andere soortgelijke dienst volledig onbeschikbaar is vanwege een storing, zijn klein, maar zou je niet liever hebben dat dit helemaal geen mogelijkheid is?

Gitlab is ook zeer eenvoudig in te stellen en vereist alleen dat je een Linux-server hebt waarop de open source Gitlab-software draait, waarvan de meeste vooraf geconfigureerd en klaar voor gebruik zijn.

Opstelling

Voordat je aan de slag gaat, moet je een VPS hebben die is ingesteld om Gitlab te hosten, tenzij je van plan bent om het lokaal te hosten. Hostingbedrijven zoals DigitalOcean en Linode bieden kosteneffectieve opties waarmee uw server aan de slag kan.

Het is ook een goed idee om ook een domeinnaam voor uw server te kopen. Of u kunt een subdomein van een bestaande domeinnaam naar uw Gitlab-server wijzen. In beide gevallen wordt de toegang tot de webinterface eenvoudiger.

Deze gids volgt Ubuntu 16.04 LTS. Het is de nieuwste ondersteuningsrelease op lange termijn van Ubuntu, en het is heel gemakkelijk om mee te werken. Debian Stretch (Stable) zou ook een geweldige optie zijn, en het grootste deel van deze gids zal er ook mee werken. Zowel DigitalOcean als Linode zullen uw server instellen met het besturingssysteem van uw keuze, dus het is niet nodig om Ubuntu te installeren.

Afhankelijkheden installeren

Wanneer u Ubuntu voor het eerst opstart, is het een goed idee om het systeem bij te werken om te controleren of er geen beveiligingsoplossingen beschikbaar zijn. Ga je gang en doe dat eerst.

$ sudo apt update $ sudo apt upgrade

Nadat de update is uitgevoerd, zijn er een aantal dingen die u moet installeren om Gitlab te kunnen starten. Gebruik apt om die ook te installeren.

$ sudo apt install curl openssh-server ca-certificaten postfix

Dat is het. U bent klaar om het Gitlab-installatiescript uit te voeren.

Installeer Gitlab

Gitlab onderhoudt zijn eigen Debian / Ubuntu-repository. Download en voer het handige installatiescript van het Gitlab-team uit om de repository op uw server in te schakelen.

$ curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

Dat lijkt misschien veel, maar het downloadt gewoon het script en vertelt de opdrachtregel om het uit te voeren. Het script heeft een paar seconden nodig om door te gaan en de repository in te stellen. Zodra dit het geval is, bent u klaar om het Gitlab-pakket te installeren.

$ sudo apt install gitlab-ce

Die installatie duurt enkele minuten. Gitlab wordt geleverd in één groot pakket, het "Omnibus-pakket". Het wordt geleverd met alles wat Gitlab nodig heeft, allemaal samen.

Voer de Setup uit

Er is een installatiescript dat u moet uitvoeren om Gitlab te configureren. Het kwam in het pakket dat u zojuist hebt geïnstalleerd, dus dat kunt u nu uitvoeren.

$ sudo gitlab-ctl opnieuw configureren

Het script duurt een paar minuten om alles door te nemen. Het is meestal het opzetten van de database-backend voor Gitlab. Je ziet veel Ruby on Rails-migraties langs het scherm lopen. Het kan even duren, maar als het klaar is, is Gitlab klaar voor gebruik.

Initiële setup

Open uw webbrowser en navigeer naar uw Gitlab-server. U wordt begroet door een pagina die u vraagt ​​om een ​​beheerderswachtwoord in te stellen. Dit is duidelijk het wachtwoord voor uw beheerdersaccount. Standaard is die accountnaam 'root'.

Nadat dat account is ingesteld, kunt u zich daarmee aanmelden of een regulier gebruikersaccount registreren en inloggen. Hoe dan ook, zodra u zich aanmeldt, hebt u toegang tot het gehele Gitlab-dashboard voor het maken en beheren van repositories.

SSH instellen

U wilt wijzigingen in uw projecten niet met wachtwoorden doorvoeren. Het is lastig en het is niet erg veilig. Het beste wat u kunt doen, is een SSH maken om automatisch in te loggen vanaf elke computer met de sleutel geïnstalleerd.

SSH-sleutels zijn zeer eenvoudig te maken op Linux en Mac. Op Windows 10 moet het proces hetzelfde zijn via de beschikbare OpenSSH-app.

Open een terminal en voer de volgende opdracht uit om uw sleutel te maken. U kunt het gedeelte 'C' weglaten als u alleen de aanmeldingsgegevens van uw computer wilt gebruiken. Anders is een e-mailadres meestal de juiste oproep.

$ ssh-keygen -b 4096 -t rsa -C ''

Het proces leidt u door een paar stappen. De standaardwaarden zijn meestal goed en alles spreekt voor zich. Als u ervoor kiest een wachtwoord aan uw sleutel te koppelen, hebt u dat wachtwoord elke keer dat u zich aanmeldt of op een wijziging drukt, nodig. U kunt het wachtwoord leeg laten om er geen te gebruiken.

Voer de onderstaande opdracht uit om uw sleutel te bekijken. Het ziet eruit als een hoop onzin, en dat is het in wezen, maar dat is jouw sleutel. Je moet het uit de terminal kopiëren en in Gitlab plakken.

$ cat ~ / .ssh / id_rsa.pub

Ga terug naar Gitlab en klik op het profielpictogram rechtsboven in het scherm. Klik vervolgens op "Instellingen" in het vervolgmenu. Klik in het menu links op de pagina op "SSH Keys".

Kopieer de sleutel van uw terminal. Begin na "ssh-rsa" en stop voor uw e-mailadres. Kopieer dus gewoon het onzingedeelte. Plak deze in het grote vak met het label 'Sleutel'. Geef uw sleutel een naam en sla deze op. Vanaf dat moment kunt u uw code naar uw opslagplaatsen pushen zonder u aan te melden.

Voor normale SSH

U hebt al een SSH-sleutel. Je kunt het net zo goed gebruiken voor SSH. OpenSSH heeft een ingebouwd hulpprogramma om de sleutel naar uw server te duwen.

$ ssh-copy-id -i ~ / .ssh / id_rsa.pub _IP

Vervang server_gebruikersnaam en SERVER_IP door uw gebruikersnaam op de server en het IP-adres van de server.

Probeer u opnieuw aan te melden bij uw server met de nieuwe sleutel.

$ ssh _IP

U moet onmiddellijk verbinding maken zonder dat u een wachtwoord hoeft in te voeren.

Het is beter om de rest van SSH ook te vergrendelen. Het is waarschijnlijk een van de zwakste punten in een openbare server. Open / etc / ssh / sshd_confg in de teksteditor van uw keuze op de server.

Er zijn een aantal dingen die u moet veranderen. Zoek eerst PermitRootLogin en stel deze in op nee.

PermitRootLogin nee

Zoek vervolgens PasswordAuthentication, uncomment het en stel het in op nee.

Wachtwoord Verificatie nr

Zorg er vervolgens voor dat de volgende twee regels op nee zijn ingesteld. Ze moeten standaard op Ubuntu staan, maar het is beter om dit te controleren.

PermitEmptyPasswords no HostbasedAuthentication no

Zoek tot slot UsePAM onderaan de configuratie en stel het ook in op nee.

GebruikPAM nr

Sla op en verlaat uw configuratie. Start vervolgens de SSH-service opnieuw.

$ sudo systemctl herstart sshd

UFW configureren

De laatste beveiligingsmaatregel die u waarschijnlijk wilt nemen, is het installeren en instellen van een firewall. Ubuntu werkt erg goed met de toepasselijk genaamde ongecompliceerde firewall (UFW). Het is gewoon een wrapper rond de iptables-kernelfirewall, maar het maakt het werken met de firewall veel eenvoudiger. Ga je gang en installeer het.

$ sudo apt install ufw

Nadat ufw is geïnstalleerd, begint u met het instellen van de standaardregels om alles te weigeren.

$ sudo ufw standaard weigert inkomende $ sudo ufw standaard weigert uitgaande $ sudo ufw standaard weigert vooruit

Stel vervolgens uw regels in om de basisservices toe te staan, waaronder Git. De opmerkingen zijn er alleen ter informatie. Probeer ze niet uit te voeren.

# SSH $ sudo ufw toestaan ​​in ssh $ sudo ufw toestaan ​​ssh # HTTP en HTTPS voor web $ sudo ufw toestaan ​​in http $ sudo ufw toestaan ​​http $ sudo ufw toestaan ​​in https $ sudo ufw toestaan ​​https # NTP voor het bijhouden van de tijd correct $ sudo ufw toestaan ​​in ntp $ sudo ufw toestaan ​​ntp # Poort 53 voor DNS-domeinresolutie $ sudo ufw toestaan ​​in 53 $ sudo ufw toestaan ​​53 # U heeft dit waarschijnlijk niet nodig # Als uw server DHCP gebruikt, deblokkeer 67 $ sudo ufw toestaan ​​in 67 $ sudo ufw toestaan ​​67 # Eindelijk, Git $ sudo ufw toestaan ​​in 9418 $ sudo ufw allo uit 9418

Zorg ervoor dat alles goed is en schakel de firewall in

$ sudo ufw inschakelen

U kunt de status van uw firewall als volgt controleren:

$ sudo ufw status

Dat is het! Uw Gitlab-server bevindt zich achter een firewall.

Gedachten sluiten

U hebt nu een werkende Gitlab-server. U kunt beginnen met het instellen van gebruikersaccounts en projecten via de Gitlab-interface. Gitlab is nu een normaal Ubuntu-pakket, dus het wordt regelmatig bijgewerkt met apt terwijl u uw systeem up-to-date houdt.

Gitlab biedt u alle flexibiliteit die u nodig hebt om uw eigen projecten en grotere projecten te beheren waaraan u mogelijk met een team werkt. Het is een volledig capabel en robuust platform waarop steeds meer teams beginnen te vertrouwen.

Host je eigen softwareprojecten met gitlab