Anonim

Varför Gitlab

snabblänkar

  • Varför Gitlab
  • Uppstart
  • Installera beroenden
  • Installera Gitlab
  • Kör installationen
  • Första installationen
  • Ställ in SSH
    • För vanlig SSH
  • Konfigurera UFW
  • Avslutande tankar

Det finns många fantastiska alternativ för värd för dina projekt och dela din kod. Du kan ställa in ett Github-konto just nu gratis. Så varför skulle du vilja gå igenom besväret med att ställa in Gitlab själv?

Det finns ett är några bra argument för det, faktiskt, inte minst som är integritet. Gitlab är din. Du är värd för det, och du äger det. Så du kan kontrollera vem som har tillgång till dina förvar. Det betyder också att du har kontroll över själva plattformen. Du omfattas inte av företagspolicyer, godtyckliga prisändringar eller datainsamling.

Självhostad versionskontroll betyder också att du inte är beroende av en tjänst för att få åtkomst till din kod. Visst, chanserna för att Github eller en annan liknande tjänst är helt otillgängliga på grund av ett strömavbrott är smala, men skulle du inte hellre att inte vara en möjlighet alls?

Gitlab är också väldigt lätt att installera, och kräver bara att du har en Linux-server som kör Gitlab-programvaran med öppen källa, varav de flesta är förkonfigurerade och redo att köras.

Uppstart

Innan du kommer igång måste du få en VPS inställd för att vara värd för Gitlab, såvida du inte planerar att vara värd för det lokalt. Hostingföretag som DigitalOcean och Linode erbjuder kostnadseffektiva alternativ som kan få din server igång.

Det är också bra att köpa ett domännamn för din server också. Eller så kan du peka ett underdomän till ett befintligt domännamn på din Gitlab-server. I vilket fall som helst kommer åtkomst till webbgränssnittet att bli enklare.

Den här guiden kommer att följa Ubuntu 16.04 LTS. Det är den senaste långsiktiga supportversionen av Ubuntu, och den är väldigt lätt att arbeta med. Debian Stretch (Stable) skulle också vara ett bra alternativ, och de flesta av den här guiden kommer också att fungera med den. Både DigitalOcean och Linode kommer att konfigurera din server med operativsystemet du väljer, så det finns inget behov av att installera Ubuntu.

Installera beroenden

När du först startar upp Ubuntu är det en bra idé att uppdatera systemet så att det inte finns några säkerhetsfixar tillgängliga. Gå vidare och gör det först.

Uppdatering av $ sudo apt $ uppgradering av sudo apt

När uppdateringen är klar körs det några saker du måste installera för att Gitlab ska komma igång. Använd apt för att installera de också.

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

Det är allt. Du är redo att köra Gitlab-installationsskriptet.

Installera Gitlab

Gitlab har ett eget Debian / Ubuntu-arkiv. För att aktivera förvaret på din server, ladda ner och köra det praktiska installationsskriptet som tillhandahålls av Gitlab-teamet.

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

Det kan se ut som mycket, men det laddar bara ner skriptet och berättar kommandoradsskalet att köra det. Skriptet kommer att ta några sekunder att köra igenom och konfigurera förvaret. När det är gjort är du redo att installera Gitlab-paketet.

$ sudo apt installera gitlab-ce

Den installationen kommer att ta några minuter. Gitlab finns i ett stort paket som kallas “Omnibus-paketet.” Det kommer med allt som Gitlab behöver allt samlat.

Kör installationen

Det finns ett installationsskript som du måste köra för att Gitlab ska konfigureras. Den kom i paketet du just installerade, så du kan köra det nu.

$ sudo gitlab-ctl rekonfigurera

Skriptet tar några minuter att köra igenom allt. Det är mest att ställa in databasbackend för Gitlab. Du kommer att se en massa Ruby on Rails-migreringar som körs på skärmen. Det kan ta lite tid, men när det är klart är Gitlab redo att användas.

Första installationen

Öppna din webbläsare och navigera till din Gitlab-server. Du hälsas av en sida som ber dig ställa in ett administrativt lösenord. Detta är uppenbarligen lösenordet för ditt administratörskonto. Som standard är det kontonamnet "root".

Efter det att kontot har konfigurerats kan du antingen logga in med det eller registrera ett vanligt användarkonto och logga in. Hur som helst, när du har loggat in har du tillgång till hela Gitlab-instrumentpanelen för att skapa och hantera arkiv.

Ställ in SSH

Du vill inte behöva driva ändringar i dina projekt med lösenord. Det är ont och det är inte särskilt säkert. Det bästa du kan göra är att skapa en SSH för att logga in automatiskt från vilken dator som helst med nyckeln installerad.

SSH-nycklar är mycket enkla att skapa på Linux och Mac. På Windows 10 bör processen vara densamma genom den tillgängliga OpenSSH-appen.

Öppna en terminal och kör följande kommando för att skapa din nyckel. Du kan stänga av delen -C '' om du bara vill använda inloggningsinformationen för din dator. Annars är en e-postadress vanligtvis det rätta samtalet.

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

Processen leder dig genom ett par steg. Standardvärdena är mestadels bra, och allt är ganska självförklarande. Om du väljer att koppla ett lösenord till din nyckel, behöver du det lösenordet varje gång du loggar in eller trycker på en ändring. Du kan lämna lösenordet tomt för att inte använda ett.

Kör kommandot nedan för att se din nyckel. Det kommer att se ut som ett gäng nonsens, och i princip är det, men det är din nyckel. Du måste kopiera den från terminalen och förbi den i Gitlab.

$ cat ~ / .ssh / id_rsa.pub

Klicka på profilikonen längst upp till höger på skärmen. Klicka sedan på "Inställningar" på den resulterande menyn. Klicka på "SSH-nycklar" i menyn till vänster på sidan.

Kopiera nyckeln från din terminal. Börja efter “ssh-rsa” och sluta innan din e-postadress. Så, bara kopiera nonsensdelen. Klistra in den i den stora rutan med namnet “Nyckel.” Namnge din nyckel och spara den. Från den punkten kan du driva din kod till dina förvar utan att logga in.

För vanlig SSH

Du har redan en SSH-nyckel. Du kan lika gärna använda det för SSH. OpenSSH har ett inbyggt verktyg för att trycka på nyckeln till din server.

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

Byt ut servernamn och SERVER_IP med ditt användarnamn på servern och serverns IP-adress.

Försök logga in igen på din server med den nya nyckeln.

$ ssh _IP

Du bör ansluta omedelbart utan att behöva ange ett lösenord.

Det är bättre att låsa resten av SSH också. Det är förmodligen en av de svagaste punkterna på en server som är offentligt inför. Öppna / etc / ssh / sshd_confg i den textredigerare du väljer på servern.

Det är ett par saker du behöver ändra. Hitta först PermitRootLogin och ställ in det till nr.

PermitRootLoginr

Därefter hittar du PasswordAuthentication, avmarkerar det och ställ in det till nr.

PasswordAuthentication nr

Kontrollera sedan att följande två rader är inställda på nr. De borde vara som standard på Ubuntu, men det är bättre att kontrollera.

PermitEmptyPasswords inget värdbaserat verifiering nr

Slutligen hittar du UsePAM längst ner i konfigurationen och ställ in den till nej också.

UsePAM nr

Spara och avsluta din konfiguration. Starta sedan om SSH-tjänsten.

$ sudo systemctl starta om sshd

Konfigurera UFW

Den sista säkerhetsåtgärd som du förmodligen vill vidta är att installera och installera en brandvägg. Ubuntu fungerar mycket bra med den lämpligt namngivna okomplicerade brandväggen (UFW). Det är bara ett omslag runt iptables-kärnväggen, men det gör det mycket enklare att arbeta med brandväggen. Gå vidare och installera det.

$ sudo apt install ufw

När du har installerat ufw börjar du med att ställa in standardreglerna för att förneka allt.

$ sudo ufw standard förneka inkommande $ sudo ufw standard förneka utgående $ sudo ufw default förneka framåt

Skapa sedan dina regler för att tillåta de grundläggande tjänsterna, inklusive Git. Kommentarerna finns bara för information. Försök inte köra dem.

# SSH $ sudo ufw tillåta i ssh $ sudo ufw tillåt ut ssh # HTTP och HTTPS för Web $ sudo ufw tillåta i http $ sudo ufw tillåt ut http $ sudo ufw tillåt i https $ sudo ufw tillåt ut https # NTP för att hålla tiden korrigera $ sudo ufw tillåta i ntp $ sudo ufw tillåt ut ntp # Port 53 för DNS-domänupplösning $ sudo ufw tillå i 53 $ sudo ufw tillåta 53 # Du behöver förmodligen inte detta # Om din server använder DHCP, avblockera 67 $ sudo ufw tillåta 67 $ sudo ufw tillåta 67 # Slutligen, Git $ sudo ufw tillåta i 9418 $ sudo ufw allo out 9418

Se till att allt är bra och aktivera brandväggen

$ sudo ufw aktivera

Du kan kontrollera statusen för din brandvägg med följande:

$ sudo ufw status

Det är allt! Din Gitlab-server ligger bakom en brandvägg.

Avslutande tankar

Nu har du en fungerande Gitlab-server. Du kan börja ställa in användarkonton och projekt via Gitlab-gränssnittet. Gitlab är nu ett vanligt Ubuntu-paket, så det kommer att uppdateras regelbundet med apt när du håller ditt system uppdaterat.

Gitlab kommer att ge dig all flexibilitet som du behöver för att hantera dina egna projekt och större projekt som du kanske arbetar med ett team på. Det är en fullt kapabel och robust plattform som fler och fler team börjar lita på.

Var värd för egna programvaruprojekt med gitlab