Articles

Come eseguire il proprio server Git

Gestisci il tuo codice sul tuo server eseguendo un server Git di base o tramite lo strumento GitLab GUI.

Impara come impostare il tuo server Git in questo tutorial dai nostri archivi.

Git è un sistema di versioning sviluppato da Linus Torvalds, che è usato da milioni di utenti in tutto il mondo. Aziende come GitHub offrono servizi di hosting di codice basati su Git. Secondo i rapporti, GitHub, un sito di hosting di codice, è il più grande servizio di hosting di codice al mondo. L’azienda sostiene che ci sono 9,2 milioni di persone che collaborano in questo momento attraverso 21,8 milioni di repository su GitHub. Le grandi aziende stanno passando a GitHub. Anche Google, il gigante dei motori di ricerca, sta chiudendo il proprio Google Code e si sta spostando su GitHub.

Fai funzionare il tuo server Git

GitHub è un grande servizio, tuttavia ci sono alcune limitazioni e restrizioni, soprattutto se sei un individuo o un piccolo giocatore. Una delle limitazioni di GitHub è che il servizio gratuito non permette l’hosting privato del codice. Devi pagare una quota mensile di 7 dollari per ospitare 5 repository privati, e le spese salgono con più repository.

In casi come questi o quando vuoi più controllo, la strada migliore è quella di eseguire Git sul tuo server. Non solo si risparmiano i costi, ma si ha anche più controllo sul proprio server. Nella maggior parte dei casi la maggioranza degli utenti Linux avanzati hanno già i loro server e spingere Git su quei server è come ‘gratis come la birra’.

In questo tutorial parleremo di due metodi per gestire il tuo codice sul tuo server. Uno è l’esecuzione di un server Git nudo e crudo e il secondo è tramite uno strumento GUI chiamato GitLab. Per questo tutorial ho usato un server Ubuntu 14.04 LTS completamente patchato che gira su un VPS.

Installa Git sul tuo server

In questo tutorial stiamo considerando un caso d’uso in cui abbiamo un server remoto e un server locale e lavoreremo tra queste macchine. Per semplicità le chiameremo remote-server e local-server.

Prima di tutto, installa Git su entrambe le macchine. Potete installare Git dai pacchetti già disponibili tramite i repo o le vostre distro, oppure potete farlo manualmente. In questo articolo useremo il metodo più semplice:

sudo apt-get install git-core

Poi aggiungete un utente per Git.

sudo useradd gitpasswd git

Per facilitare l’accesso al server impostiamo un login ssh senza password. Per prima cosa create le chiavi ssh sulla vostra macchina locale:

ssh-keygen -t rsa

Vi chiederà di fornire la posizione per memorizzare la chiave, basta premere Invio per utilizzare la posizione predefinita. La seconda domanda sarà quella di fornire una frase d’accesso che sarà necessaria per accedere al server remoto. Genera due chiavi – una chiave pubblica e una privata. Annota la posizione della chiave pubblica che ti servirà nel prossimo passo.

Ora devi copiare queste chiavi sul server in modo che le due macchine possano parlare tra loro. Eseguite il seguente comando sulla vostra macchina locale:

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

Ora ssh nel server e create una directory di progetto per Git. Potete usare il percorso desiderato per il repo.

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

Poi passate a questa directory:

cd /home/swapnil/project-1.git

Poi create un repo vuoto:

git init --bareInitialized empty Git repository in /home/swapnil/project-1.git

Ora dobbiamo creare un repo Git sulla macchina locale.

mkdir -p /home/swapnil/git/project

E passare a questa directory:

cd /home/swapnil/git/project

Ora create i file che vi servono per il progetto in questa directory. Rimanete in questa directory e avviate git:

git init Initialized empty Git repository in /home/swapnil/git/project

Ora aggiungete i file al repo:

git add .

Ora ogni volta che aggiungete un file o fate delle modifiche dovete eseguire il comando add di cui sopra. Devi anche scrivere un messaggio di commit con ogni cambiamento in un file. Il messaggio di commit dice fondamentalmente quali modifiche sono state fatte.

git commit -m "message" -a message 2 files changed, 2 insertions(+) create mode 100644 GoT.txt create mode 100644 writing.txt

In questo caso avevo un file chiamato GoT (recensione di Game of Thrones) e ho fatto alcune modifiche, così quando ho eseguito il comando ha specificato che sono state fatte modifiche al file. Nel comando precedente l’opzione ‘-a’ significa commit per tutti i file nel repo. Se hai fatto delle modifiche ad uno solo puoi specificare il nome di quel file invece di usare ‘-a’.

Un esempio:

git commit -m "message" GoT.txt message 1 file changed, 1 insertion(+)

Fino ad ora abbiamo lavorato sul server locale. Ora dobbiamo spingere queste modifiche sul server in modo che il lavoro sia accessibile su Internet e si possa collaborare con altri membri del team.

git remote add origin ssh://git@remote-server/repo-<wbr< a="">>path-on-server..git

Ora puoi spingere o tirare le modifiche tra il server e la macchina locale usando l’opzione ‘push’ o ‘pull’:

git push origin master

Se ci sono altri membri del team che vogliono lavorare con il progetto devono clonare il repo sul server sulla loro macchina locale:

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

Qui /home/swapnil/project.git è il percorso del progetto sul server remoto, scambiate i valori per il vostro server.

Poi cambiate directory sulla macchina locale (scambiate project con il nome del progetto sul vostro server):

cd /project

Ora possono modificare i file, scrivere i messaggi di modifica commit e poi spingerli sul server:

git commit -m 'corrections in GoT.txt story' -aAnd then push changes:
git push origin master

Presumo che questo sia sufficiente per un nuovo utente per iniziare con Git sui propri server. Se state cercando degli strumenti GUI per gestire le modifiche sulle macchine locali, potete usare strumenti GUI come QGit o GitK per Linux.

QGit

Utilizzare GitLab

Questa era una pura soluzione a riga di comando per il proprietario e il collaboratore del progetto. Non è certamente facile come usare GitHub. Sfortunatamente, mentre GitHub è il più grande servizio di hosting di codice al mondo, il suo software non è disponibile per altri da usare. Non è open source, quindi non puoi prendere il codice sorgente e compilare il tuo GitHub. A differenza di WordPress o Drupal non puoi scaricare GitHub ed eseguirlo sui tuoi server.

Come al solito nel mondo open source non c’è fine alle opzioni. GitLab è un progetto ingegnoso che fa esattamente questo. È un progetto open source che permette agli utenti di eseguire un sistema di gestione dei progetti simile a GitHub sui propri server.

Puoi usare GitLab per eseguire un servizio simile a GitHub per i membri del tuo team o la tua azienda. Puoi usare GitLab per lavorare su progetti privati prima di rilasciarli per contributi pubblici.

GitLab impiega il tradizionale modello di business Open Source. Hanno due prodotti: un software open source gratuito, che gli utenti possono installare sui propri server, e un servizio ospitato simile a GitHub.

La versione scaricabile ha due edizioni – l’edizione comunitaria gratuita e l’edizione enterprise a pagamento. L’edizione enterprise è basata sull’edizione comunitaria, ma è dotata di caratteristiche aggiuntive mirate ai clienti aziendali. È più o meno simile a quello che offrono WordPress.org o WordPress.com.

L’edizione comunitaria è altamente scalabile e può supportare 25.000 utenti su un singolo server o cluster. Alcune delle caratteristiche di GitLab includono: Gestione dei repository Git, revisione del codice, monitoraggio dei problemi, feed delle attività e wiki. Viene fornito con GitLab CI per l’integrazione e la consegna continua.

Molti provider VPS come Digital Ocean offrono droplet GitLab per gli utenti. Se volete eseguirlo sul vostro server, potete installarlo manualmente. GitLab offre un pacchetto Omnibus per diversi sistemi operativi. Prima di installare GitLab, potresti voler configurare un server di posta elettronica SMTP in modo che GitLab possa inviare le email come e quando necessario. Loro raccomandano Postfix. Quindi, installa Postfix sul tuo server:

sudo apt-get install postfix

Durante l’installazione di Postfix ti farà alcune domande; non saltarle. Se le hai saltate puoi sempre riconfigurarle usando questo comando:

sudo dpkg-reconfigure postfix

Quando lanci questo comando scegli “Internet Site” e fornisci l’ID email del dominio che sarà usato da Gitlab.

Nel mio caso l’ho fornito con:

This e-mail address is being protected from spambots. You need JavaScript enabled to view it 

Usa Tab e crea un nome utente per postfix. La pagina successiva vi chiederà di fornire una destinazione per la posta.

Nel resto dei passi, usate le opzioni predefinite. Una volta che Postfix è installato e configurato, passiamo all’installazione di GitLab.

Scaricate i pacchetti usando wget (sostituite il link di download con gli ultimi pacchetti da qui) :

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

Quindi installate il pacchetto:

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

Ora è il momento di configurare e avviare GitLabs.

sudo gitlab-ctl reconfigure

È ora necessario configurare il nome del dominio nel file di configurazione in modo da poter accedere a GitLab. Aprite il file.

nano /etc/gitlab/gitlab.rb

In questo file modificate la ‘external_url’ e date il dominio del server. Salva il file e poi apri il sito GitLab appena creato da un browser web.

GitLab 1

Di default crea ‘root’ come amministratore di sistema e usa ‘5iveL!fe’ come password. Entra nel sito di GitLab e poi cambia la password.

GitLab 2

Una volta cambiata la password, entra nel sito e inizia a gestire il tuo progetto.

GitLab manage project page

GitLab è pieno di funzioni e opzioni. Prenderò in prestito delle battute popolari dal film “Matrix”: “Sfortunatamente, non si può dire a nessuno cosa può fare GitLab. Dovete provarlo voi stessi.”

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *