Anonim

Hvorfor Gitlab

hurtige links

  • Hvorfor Gitlab
  • Opsætning
  • Installer afhængigheder
  • Installer Gitlab
  • Kør installationsprogrammet
  • Første opsætning
  • Konfigurer SSH
    • Til almindelig SSH
  • Konfigurer UFW
  • Lukende tanker

Der er masser af gode muligheder for at være vært for dine projekter og dele din kode. Du kan oprette en Github-konto lige nu gratis. Så hvorfor skulle du ønske at gå gennem besværet med at oprette Gitlab selv?

Der er a er et par gode argumenter for det, faktisk, ikke mindst som privatlivets fred. Gitlab er din. Du er vært for det, og du ejer det. Så du kan kontrollere, hvem der har adgang til dine lagre. Det betyder også, at du har kontrol over selve platformen. Du er ikke underlagt virksomhedspolitikker, vilkårlige ændringer i prisfastsættelse eller dataindsamling.

Selvhost-versionskontrol betyder også, at du ikke er afhængig af en service for at få adgang til din kode. Sikker på, chancerne for, at Github eller en anden lignende tjeneste er helt utilgængelige på grund af et strømafbrydelse, er ringe, men vil du ikke hellere at det overhovedet ikke er en mulighed?

Gitlab er også meget let at konfigurere, og kræver kun, at du har en Linux-server, der kører open source Gitlab-softwaren, hvoraf de fleste er forudkonfigureret og klar til at køre.

Opsætning

Inden du kommer i gang, skal du få en VPS opsat til at være vært for Gitlab, medmindre du planlægger at være vært for det lokalt. Hostingfirmaer som DigitalOcean og Linode tilbyder omkostningseffektive indstillinger, der kan få din server i gang.

Det er også en god ide at købe et domænenavn til din server også. Eller du kan pege et underdomæne til et eksisterende domænenavn på din Gitlab-server. Begge måder gør det lettere at få adgang til webgrænsefladen.

Denne guide følger Ubuntu 16.04 LTS. Det er den seneste langsigtede supportudgivelse af Ubuntu, og det er meget let at arbejde med. Debian Stretch (Stable) ville også være en god mulighed, og det meste af denne guide fungerer også med det. Både DigitalOcean og Linode konfigurerer din server med det operativsystem, du vælger, så der er ingen grund til at installere Ubuntu.

Installer afhængigheder

Når du først starter Ubuntu op, er det en god ide at opdatere systemet for at sikre dig, at der ikke findes nogen sikkerhedsrettelser. Gå videre og gør det først.

$ sudo apt-opdatering $ sudo apt-opgradering

Når opdateringen er færdig med at køre, er der et par ting, du skal installere for at Gitlab kan komme i gang. Brug apt til også at installere dem.

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

Det er det. Du er klar til at køre Gitlab-installationsskriptet.

Installer Gitlab

Gitlab vedligeholder sit eget Debian / Ubuntu-lager. For at aktivere depotet på din server skal du downloade og køre det behagelige installationsskript, der leveres af Gitlab-teamet.

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

Det kan se meget ud, men det downloader bare scriptet og fortæller kommandolinjens skal at køre det. Scriptet vil tage et par sekunder at køre igennem og konfigurere depotet. Når det først er gjort, er du klar til at installere Gitlab-pakken.

$ sudo apt installer gitlab-ce

Installationen vil tage et par minutter. Gitlab kommer i en stor pakke kaldet “Omnibus-pakken.” Den leveres med alt, hvad Gitlab har brug for, alt sammen samlet.

Kør installationsprogrammet

Der er et installationsskript, som du skal bruge for at Gitlab skal konfigureres. Den kom i den pakke, du lige har installeret, så du kan køre den nu.

$ sudo gitlab-ctl rekonfigurering

Scriptet vil tage et par minutter at køre gennem alt. Det er for det meste at oprette database backend til Gitlab. Du vil se en masse Ruby on Rails-migrationer, der kører ved skærmen. Det kan tage et stykke tid, men når det er gjort, er Gitlab klar til brug.

Første opsætning

Åbn din webbrowser og naviger til din Gitlab-server. Du bliver mødt af en side, der beder dig om at oprette en administrativ adgangskode. Dette er tydeligvis adgangskoden til din admin-konto. Som standard er dette kontonavn "root."

Når denne konto er konfigureret, kan du enten logge ind med den eller registrere en almindelig brugerkonto og logge på. Uanset hvad, når du først har logget ind, har du adgang til hele Gitlab-kontrolpanelet til oprettelse og styring af depoter.

Konfigurer SSH

Du ønsker ikke at skulle skubbe ændringer til dine projekter ved hjælp af adgangskoder. Det er en smerte, og det er ikke særlig sikkert. Det bedste du kan gøre er at oprette en SSH til automatisk at logge ind fra enhver computer med nøglen installeret.

SSH-nøgler er meget nemme at oprette på Linux og Mac. På Windows 10 skal processen være den samme gennem den tilgængelige OpenSSH-app.

Åbn en terminal, og kør følgende kommando for at oprette din nøgle. Du kan afbryde delen -C '', hvis du bare ønsker at bruge loginoplysningerne på din computer. Ellers er en e-mail-adresse normalt det rigtige opkald.

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

Processen fører dig gennem et par trin. Standardindstillingerne er for det meste gode, og alt er ret selvforklarende. Hvis du vælger at knytte et kodeord til din nøgle, skal du bruge denne adgangskode, hver gang du logger ind eller skubber på en ændring. Du kan lade adgangskoden være tom for ikke at bruge en.

Kør kommandoen nedenfor for at se din nøgle. Det vil se ud som en masse vrøvl, og det er det i virkeligheden, men det er din nøgle. Du bliver nødt til at kopiere den ud af terminalen og forbi den i Gitlab.

$ cat ~ / .ssh / id_rsa.pub

Tilbage på Gitlab skal du klikke på profilikonet øverst til højre på skærmen. Klik derefter på "Indstillinger" i den resulterende menu. Klik på “SSH-nøgler” i menuen til venstre på siden.

Kopier nøglen fra din terminal. Start efter “ssh-rsa”, og stop inden din e-mail-adresse. Så bare kopier nonsensdelen. Indsæt den i den store kasse, der er mærket "Nøgle." Navngiv din nøgle, og gem den. Fra det tidspunkt vil du være i stand til at skubbe din kode til dine lagre uden at logge ind.

Til almindelig SSH

Du har allerede en SSH-nøgle. Du kan lige så godt bruge det til SSH. OpenSSH har et indbygget værktøj til at skubbe nøglen til din server.

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

Erstat servernavn og SERVER_IP med dit brugernavn på serveren og serverens IP-adresse.

Prøv at logge ind på din server ved hjælp af den nye nøgle.

$ ssh _IP

Du skal oprette forbindelse omgående uden at skulle indtaste en adgangskode.

Det er bedre at låse resten af ​​SSH også. Det er sandsynligvis et af de svageste punkter i en server, der vender offentligt. Åbn / etc / ssh / sshd_confg i den teksteditor, du vælger på serveren.

Der er et par ting, du skal ændre. Find først PermitRootLogin og indstil det til nr.

PermitRootLogin-nr

Find derefter PasswordAuthentication, tag det ud og sæt det til nr.

PasswordAuthentication nr

Kontroller derefter, at de følgende to linjer er indstillet til nr. De skal som standard være på Ubuntu, men det er bedre at tjekke.

PermitEmptyPasswords intet hostbaseret verifikationsnr

Til sidst finder du UsePAM i bunden af ​​konfigurationen og indstiller den også til nej.

UsePAM nr

Gem og forlad din konfiguration. Genstart derefter SSH-tjenesten.

$ sudo systemctl genstart sshd

Konfigurer UFW

Den sidste sikkerhedsforanstaltning, du sandsynligvis vil tage, er at installere og opsætte en firewall. Ubuntu fungerer meget godt med den passende navngivne ukomplicerede firewall (UFW). Det er bare en indpakning omkring iptables-kernen firewall, men det gør det meget lettere at arbejde med firewall. Gå videre og installer den.

$ sudo apt install ufw

Når du har installeret ufw, skal du starte med at indstille standardreglerne for at nægte alt.

$ sudo ufw standard nægter indgående $ sudo ufw default nægter udgående $ sudo ufw default nægter frem

Opsæt derefter dine regler for at tillade de basale tjenester, inklusive Git. Kommentarerne er bare der for information. Forsøg ikke at køre dem.

# SSH $ sudo ufw tilladelse i ssh $ sudo ufw tilladelse ssh # HTTP og HTTPS for Web $ sudo ufw tilladelse i http $ sudo ufw tilladt http $ sudo ufw tilladelse i https $ sudo ufw tilladt https # NTP for at holde tiden korrekt $ sudo ufw tilladelse i ntp $ sudo ufw tilladelse ntp # Port 53 til DNS-domæneopløsning $ sudo ufw tilladelse i 53 $ sudo ufw allow out 53 # Du har sandsynligvis ikke brug for dette # Hvis din server bruger DHCP, skal du fjerne blokering 67 $ sudo ufw tilladelse i 67 $ sudo ufw allow out 67 # Endelig giver Git $ sudo ufw tilladelse i 9418 $ sudo ufw allo out 9418

Sørg for, at alt er godt, og aktiver firewall

$ sudo ufw aktivere

Du kan kontrollere status for din firewall med følgende:

$ sudo ufw status

Det er det! Din Gitlab-server ligger bag en firewall.

Lukende tanker

På nuværende tidspunkt har du en fungerende Gitlab-server. Du kan begynde at oprette brugerkonti og projekter via Gitlab-grænsefladen. Gitlab er nu en almindelig Ubuntu-pakke, så den opdateres regelmæssigt med apt, mens du holder dit system opdateret.

Gitlab giver dig al den fleksibilitet, som du har brug for for at administrere dine egne projekter og større projekter, som du muligvis arbejder med et team om. Det er en fuldt kapabel og robust platform, som flere og flere hold begynder at stole på.

Vær vært for dine egne softwareprojekter med gitlab