Slik kjører du din egen Git Server


Denne måneden vi feirer årsdagen for Git, et versjons system utviklet av Linus Torvalds. Git blir brukt av millioner av brukere over hele verden; krysse grenser.

Det er selskaper som GitHub som nå tilbyr kode hosting-tjenester basert på Git. Ifølge rapporter, GitHub, en kode fiendtlig sted, er verdens største kode hosting service. Selskapet hevder at det er 9.2M mennesker som samarbeider akkurat nå over 21,8 depoter på GitHub. Store selskaper er nå flyttet til GitHub. Selv Google, søkemotoren giganten, er å stenge sin egen Google Code og flytting til GitHub.

Kjør ditt eget Git server

GitHub er en stor tjeneste, men det er noen begrensninger og restriksjoner, spesielt hvis du er en person eller en liten aktør. En av begrensningene i GitHub er at gratis tjeneste ikke tillater private hosting av koden. Du må betale en månedlig avgift på $ 7 for å være vert for 5 private depoter, og utgiftene går opp med flere repos.

I tilfeller som dette, eller når du vil ha mer kontroll, er den beste veien å kjøre Git på egen server. Ikke bare sparer du kostnader, har du også mer kontroll over din server. I de fleste tilfeller et flertall av avanserte Linux-brukere allerede har sine egne servere og presser Git på disse serverne er som "fri som i øl '.

I denne opplæringen skal vi snakke om to metoder for å håndtere koden på din egen server. En kjører en naken, grunnleggende Git server og og den andre er via et GUI verktøy kalt GitLab. For denne opplæringen brukte jeg en fullt patchet Ubuntu 14.04 LTS server som kjører på en VPS.

Installer Git på serveren din

I denne opplæringen skal vi vurderer en bruk-sak der vi har en ekstern server og en lokal server, og vi vil arbeide mellom disse maskinene. For enkelthets skyld vil vi kalle dem remote-server og lokal-server.

Først installerer Git på begge maskinene. Du kan installere Git fra pakkene som allerede er tilgjengelige via repos eller dine distroer, eller du kan gjøre det manuelt. I denne artikkelen vil vi bruke enklere metode:

 sudo apt-get install git-core 

Deretter legge til en bruker for Git

 sudo useradd gitpasswd git 

For å kunne. lette tilgang til serveren la oss sette opp et passord-mindre ssh innlogging. Først opprette ssh tastene på din lokale maskin:

 ssh-keygen -t rsa 

Det vil be deg om å gi plassering for lagring av nøkkelen, trykker du bare Enter for å bruke standardplassering. Det andre spørsmålet vil være å gi den med et passord som vil være nødvendig for å få tilgang til den eksterne serveren. Det genererer to nøkler - en offentlig nøkkel og en privat nøkkel. Noter plasseringen av den offentlige nøkkelen som du trenger i neste trinn.

Nå må du kopiere disse tastene til serveren, slik at de to maskinene kan snakke med hverandre. Kjør følgende kommando på din lokale maskin:

 cat ~ /.ssh /id_rsa.pub | ssh git @ remote-server "mkdir -p ~ /.ssh & & cat > > ~ /.ssh /authorized_keys" 

Nå ssh inn på serveren og opprette et prosjekt katalog for Git. Du kan bruke den ønskede banen for repo

 git @ server:. ~ $ Mkdir -p /home/swapnil/project-1.git

Then endring i denne katalogen:

 cd /home/swapnil/project-1.git

Then opprette en tom repo:

 git init --bareInitialized tom Git repository i /home/swapnil/project-1.git

We nå trenger for å lage en Git repo på den lokale maskinen

 mkdir -p /home /Swapnil /git /prosjekt 

Og endring i denne katalogen.

 cd /home /Swapnil /git /prosjekt 

Nå oppretter de filene du trenger for prosjektet i denne katalogen. Bo i denne katalogen og initiere git:

 git init Startet tom Git repository i /home /Swapnil /git /prosjekt 

Nå kan du legge til filer i repo.

 git legge 

Nå hver gang du legger til en fil eller gjøre endringer du må kjøre kommandoen ADD ovenfor. Du må også skrive et begå melding med hver endring i en fil. Innsendingsmelding utgangspunktet forteller hvilke endringer som ble gjort.

 git commit -m "melding" -en [master (root-commit) 57331ee] beskjed 2 filer endret, 2 innsett (+) skape modus 100644 GoT.txt skape modus 100644 writing.txt 

I dette tilfellet hadde jeg en fil som heter fikk (Game of Thrones anmeldelse) og jeg har gjort noen endringer, så når jeg kjørte kommandoen det presisert at endringer ble gjort i filen. I ovennevnte kommandoen betyr '-a' alternativ inger for alle filene i repo. Hvis du har gjort endringer i bare en du kan oppgi navnet på denne filen i stedet for å bruke "-A"

Et eksempel:.

 git commit -m "melding" GoT.txt [mester e517b10] melding en fil endres, en innsetting (+) 

Til nå har vi jobbet på den lokale serveren. Nå må vi presse disse endringene til serveren slik at arbeidet er tilgjengelig over Internett, og du kan samarbeide med andre gruppemedlemmer

 git fjern legge opprinnelse ssh. //Git @ remote-server /repo- < WBR < a = "" > > path-on-server..git 

Nå kan du skyve eller trekke endringer mellom serveren og lokale maskinen ved hjelp av "push" eller "pull" alternativ:

 git presse opprinnelse mester 

Hvis det er andre gruppemedlemmer som ønsker å jobbe med prosjektet de trenger å klone repo på serveren til sin lokale maskin:

 git clone git @ remote-server: /home /Swapnil /project.git 

Her /home/swapnil/project.git
er prosjektet banen på den eksterne serveren, utveksle verdiene for din egen server.

Deretter endrer katalog på den lokale maskinen (exchange prosjekt
med navnet på prosjektet på serveren):

 cd /prosjekt 

Nå kan de redigere filer, skrive forplikte endringsmeldinger og deretter presse dem til server:

 git commit -m 'korreksjoner i GoT.txt story' -aAnd skyv endringer: 
 git push-opprinnelse mester 

Jeg antar at dette er nok for en ny bruker for å komme i gang med Git på sine egne servere. Hvis du er ute etter noen grafiske verktøy for å håndtere endringer på lokale maskiner, kan du bruke grafiske verktøy som QGit eller GitK for Linux.



Bruke GitLab

Dette var en ren kommandolinje løsning for prosjekteier og samarbeidspartner. Det er sikkert ikke så enkelt som å bruke GitHub. Dessverre, mens GitHub er verdens største kode hosting service; sin egen programvare er ikke tilgjengelig for andre å bruke. Det er ikke åpen kildekode, slik at du ikke kan ta tak i kildekoden og kompilere din egen GitHub. I motsetning til WordPress eller Drupal du ikke kan laste ned GitHub og kjøre den på egne servere.

Som vanlig i åpen kildekode verden er det ingen ende på alternativene. GitLab er en kjekk liten prosjekt som gjør nettopp det. Det er en åpen kildekode-prosjekt som lar brukerne kjøre en prosjektledelse system som ligner på GitHub på sine egne servere.

Du kan bruke GitLab å kjøre en tjeneste som ligner på GitHub for gruppemedlemmer eller din bedrift. Du kan bruke GitLab å jobbe med private prosjekter før du slipper dem for offentlige bidrag.

GitLab benytter den tradisjonelle Open Source forretningsmodell. De har to produkter: gratis kost åpen kildekode, som brukerne kan installere på sine egne servere, og en vertsbasert tjeneste som ligner på GitHub

Den nedlastbare versjonen har to utgaver - den uten kostnad samfunnet utgaven og. betalt Enterprise Edition. Bedriften utgaven er basert på samfunnet utgaven, men kommer med flere funksjoner rettet mot bedriftskunder. Det er mer eller mindre likt det WordPress.org eller Wordpress.com tilbud.

Samfunnet utgaven er svært skalerbar og kan støtte 25.000 brukere på en enkelt server eller cluster. Noen av funksjonene i GitLab inkluderer: Git repository ledelse, kode anmeldelser, sporing av problemer, aktivitet feeds, og wikier. Den leveres med GitLab CI for kontinuerlig integrasjon og levering.

Mange VPS leverandører som Digital Ocean tilbyr GitLab dråper for brukerne. Hvis du ønsker å kjøre den på din egen server, kan du installere det manuelt. GitLab tilbyr en Omnibus pakke for ulike operativsystemer. Før vi installerer GitLab, kan det være lurt å konfigurere en SMTP e-posttjener slik at GitLab kan presse eposter som, og når det er nødvendig. De anbefaler Postfix. Så, installere Postfix på serveren din:

 sudo apt-get install postfix 

Under installasjonen av Postfix det vil stille deg noen spørsmål; ikke hoppe over dem. Hvis du gikk glipp av det du kan alltid re-sette det opp med denne kommandoen:

 sudo dpkg-reconfigure postfix 

Når du kjører denne kommandoen velg "Internet Site" og angi e-ID for domenet som vil . være brukt av Gitlab

I mitt tilfelle jeg gitt den med:

 Denne e-postadressen er beskyttet mot programmer som samler. Du må aktivere Javascript for å kunne se den 

Bruk Tab og opprette et brukernavn for postfix. På neste side vil be deg om å gi en destinasjon for post.

I resten av trinnene, kan du bruke standardvalgene. . Når Postfix er installert og konfigurert, la oss gå videre til å installere GitLab

Last ned pakkene bruker wget (bytt nedlastingslenken med de siste pakkene fra her):

 wget https: //nedlastinger -packages.s3.amazonaws.com/ubuntu-14.04/gitlab_7.9.4-omnibus.1-1_amd64.deb

Then~~MD~~aux installere pakken:

 sudo dpkg -i gitlab_7.9.4-omnibus.1- 1_amd64.deb 

Nå er det tid for å konfigurere og starte GitLabs.

 sudo gitlab-ctl reconfigure 

Nå må du konfigurere domenenavnet i konfigurasjonsfilen, slik at du kan få tilgang til GitLab. Åpne filen.

 nano /etc/gitlab/gitlab.rb

In denne filen redigere den 'external_url' og gi serveren domene. Lagre filen og åpne den nyopprettede GitLab nettstedet fra en nettleser.


Som standard det skaper «root» som system admin og bruker 'fe 5iveL! "Som passord. Logg inn i GitLab området og deretter endre passordet.


Når passordet er endret, logge inn på nettstedet og begynne å administrere prosjektet.


GitLab er overfylte med funksjoner og alternativer. Jeg vil låne populære linjene fra filmen, The Matrix: ". Dessverre, ingen kan bli fortalt hva alle GitLab kan gjøre Du må prøve det selv." Anmeldelser