Anonim

Perché Gitlab

Link veloci

  • Perché Gitlab
  • Impostare
  • Installa dipendenze
  • Installa Gitlab
  • Esegui il programma di installazione
  • Configurazione iniziale
  • Imposta SSH
    • Per SSH normale
  • Configura UFW
  • Pensieri di chiusura

Ci sono molte grandi opzioni per ospitare i tuoi progetti e condividere il tuo codice. Puoi configurare subito un account Github gratuitamente. Quindi, perché dovresti voler affrontare il problema di configurare tu stesso Gitlab?

Ci sono un paio di buoni argomenti per questo, in realtà, non ultimo dei quali è la privacy. Gitlab è tuo. Lo ospiti e lo possiedi. Quindi, puoi controllare chi ha accesso ai tuoi repository. Ciò significa anche che hai il controllo della piattaforma stessa. Non sei soggetto a politiche aziendali, modifiche arbitrarie dei prezzi o raccolta di dati.

Il controllo della versione ospitata autonomamente significa anche che non si dipende da un servizio per accedere al proprio codice. Certo, le possibilità che Github o un altro servizio simile siano del tutto non disponibili a causa di un'interruzione sono scarse, ma non preferiresti che non fosse affatto possibile?

Gitlab è anche molto facile da configurare e richiede solo che tu abbia un server Linux che esegue il software Gitlab open source, la maggior parte dei quali viene preconfigurato e pronto per l'esecuzione.

Impostare

Prima di iniziare, è necessario configurare un VPS per ospitare Gitlab, a meno che non si preveda di ospitarlo localmente. Le società di hosting come DigitalOcean e Linode offrono opzioni convenienti che possono far funzionare il tuo server.

È anche una buona idea acquistare un nome di dominio anche per il tuo server. Oppure, puoi puntare un sottodominio di un nome di dominio esistente sul tuo server Gitlab. In entrambi i casi sarà più facile accedere all'interfaccia web.

Questa guida seguirà Ubuntu 16.04 LTS. È l'ultima versione di supporto a lungo termine di Ubuntu ed è molto facile da lavorare. Anche Debian Stretch (Stable) sarebbe un'ottima opzione, e la maggior parte di questa guida funzionerà anche con essa. Sia DigitalOcean che Linode configureranno il tuo server con il sistema operativo di tua scelta, quindi non è necessario installare Ubuntu.

Installa dipendenze

Al primo avvio di Ubuntu, è consigliabile aggiornare il sistema per assicurarsi che non siano disponibili correzioni di sicurezza. Vai avanti e fallo prima.

$ sudo apt update $ sudo apt upgrade

Al termine dell'esecuzione dell'aggiornamento, ci sono un paio di cose che dovrai installare per iniziare Gitlab. Usa apt per installare anche quelli.

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

Questo è tutto. Sei pronto per eseguire lo script di installazione di Gitlab.

Installa Gitlab

Gitlab mantiene il proprio repository Debian / Ubuntu. Per abilitare il repository sul tuo server, scarica ed esegui il comodo script di installazione fornito dal team di Gitlab.

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

Potrebbe sembrare molto, ma scarica semplicemente lo script e dice alla shell della riga di comando di eseguirlo. Lo script impiegherà alcuni secondi per scorrere e configurare il repository. Una volta fatto, sarai pronto per installare il pacchetto Gitlab.

$ sudo apt installa gitlab-ce

L'installazione richiederà alcuni minuti. Gitlab è disponibile in un unico grande pacchetto chiamato "pacchetto Omnibus". Viene fornito con tutto ciò di cui Gitlab ha bisogno tutti insieme.

Esegui il programma di installazione

C'è uno script di installazione che devi eseguire per configurare Gitlab. È arrivato nel pacchetto che hai appena installato, quindi puoi eseguirlo ora.

$ sudo gitlab-ctl riconfigurare

Lo script richiederà alcuni minuti per eseguire tutto. Principalmente sta configurando il backend del database per Gitlab. Vedrai molte migrazioni di Ruby on Rails in esecuzione sullo schermo. Potrebbe volerci un po 'di tempo, ma una volta terminato, Gitlab sarà pronto per l'uso.

Configurazione iniziale

Apri il tuo browser web e vai al tuo server Gitlab. Sarai accolto da una pagina che ti chiede di impostare una password amministrativa. Questa è ovviamente la password per il tuo account amministratore. Per impostazione predefinita, il nome dell'account è "root".

Dopo aver configurato tale account, puoi accedere con esso o registrare un account utente normale e accedere. In entrambi i casi, una volta effettuato l'accesso, avrai accesso all'intera dashboard di Gitlab per la creazione e la gestione dei repository.

Imposta SSH

Non devi inviare modifiche ai tuoi progetti utilizzando le password. È un dolore e non è molto sicuro. La cosa migliore che puoi fare è creare un SSH per accedere automaticamente da qualsiasi computer con la chiave installata.

Le chiavi SSH sono molto facili da creare su Linux e Mac. Su Windows 10, il processo dovrebbe essere lo stesso tramite l'app OpenSSH disponibile.

Apri un terminale ed esegui il comando seguente per creare la tua chiave. Puoi lasciare la parte -C '' se vuoi semplicemente usare le informazioni di accesso del tuo computer. Altrimenti, un indirizzo e-mail è di solito la chiamata giusta.

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

Il processo ti guiderà attraverso un paio di passaggi. Le impostazioni predefinite sono per lo più buone e tutto è abbastanza autoesplicativo. Se scegli di associare una password alla tua chiave, avrai bisogno di quella password ogni volta che accedi o premi una modifica. È possibile lasciare vuota la password per non usarne una.

Per visualizzare la chiave, esegui il comando seguente. Sembrerà un mucchio di sciocchezze, ed essenzialmente lo è, ma questa è la tua chiave. Dovrai copiarlo dal terminale e incollarlo in Gitlab.

$ cat ~ / .ssh / id_rsa.pub

Torna su Gitlab, fai clic sull'icona del profilo in alto a destra sullo schermo. Quindi fare clic su "Impostazioni" nel menu risultante. Nel menu a sinistra della pagina, fai clic su "Chiavi SSH".

Copia la chiave dal tuo terminale. Inizia dopo "ssh-rsa" e fermati prima del tuo indirizzo email. Quindi, basta copiare la parte senza senso. Incollalo nella grande scatola con l'etichetta "Chiave". Dai un nome alla tua chiave e salvala. Da quel momento in poi, sarai in grado di inviare il tuo codice ai tuoi repository senza effettuare l'accesso.

Per SSH normale

Hai già una chiave SSH. Puoi anche usarlo per SSH. OpenSSH ha un'utilità integrata per inviare la chiave al tuo server.

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

Sostituisci server_username e SERVER_IP con il tuo nome utente sul server e l'indirizzo IP del server.

Prova ad accedere nuovamente al tuo server utilizzando la nuova chiave.

$ ssh _IP

È necessario connettersi immediatamente senza la necessità di inserire una password.

È meglio bloccare anche il resto di SSH. È probabilmente uno dei punti più deboli in un server pubblico. Apri / etc / ssh / sshd_confg nell'editor di testo di tua scelta sul server.

Ci sono un paio di cose che devi cambiare. Innanzitutto, trova PermitRootLogin e impostalo su no.

PermitRootLogin no

Quindi, trova PasswordAuthentication, decommentalo e impostalo su no.

Password autenticazione n

Quindi, assicurarsi che le seguenti due righe siano impostate su no. Dovrebbero essere di default su Ubuntu, ma è meglio controllare.

PermitEmptyPasswords no HostbasedAuthentication no

Infine, trova UsePAM nella parte inferiore della configurazione e impostalo su no.

UsePAM no

Salva ed esci dalla configurazione. Quindi, riavviare il servizio SSH.

$ sudo systemctl restart sshd

Configura UFW

L'ultima misura di sicurezza che probabilmente vorresti adottare è l'installazione e la configurazione di un firewall. Ubuntu funziona molto bene con il firewall non complicato (UFW) dal nome appropriato. È solo un wrapper attorno al firewall del kernel iptables, ma rende molto più facile lavorare con il firewall. Vai avanti e installalo.

$ sudo apt installa ufw

Una volta installato, iniziare impostando le regole predefinite per negare tutto.

$ sudo ufw default nega in arrivo $ sudo ufw default nega in uscita $ sudo ufw default nega in avanti

Successivamente imposta le tue regole per consentire i servizi di base, incluso Git. I commenti sono lì solo per informazioni. Non provare a eseguirli.

# SSH $ sudo ufw consenti in ssh $ sudo ufw consenti ssh # HTTP e HTTPS per Web $ sudo ufw consenti in http $ sudo ufw consenti http $ sudo ufw consenti in https $ sudo ufw consenti https # NTP per mantenere il tempo $ sudo ufw corretto in ntp $ sudo ufw consenti ntp # Porta 53 per la risoluzione del dominio DNS $ sudo ufw consenti in 53 $ sudo ufw consenti 53 # Probabilmente non ti servirà questo # Se il tuo server utilizza DHCP, sblocca 67 $ sudo ufw allow in 67 $ sudo ufw allow out 67 # Infine, Git $ sudo ufw allow in 9418 $ sudo ufw allo out 9418

Assicurati che tutto sia a posto e abilita il firewall

$ sudo ufw enable

Puoi controllare lo stato del tuo firewall con quanto segue:

$ sudo stato ufw

Questo è tutto! Il tuo server Gitlab è protetto da un firewall.

Pensieri di chiusura

Ormai hai un server Gitlab funzionante. Puoi iniziare a configurare account utente e progetti tramite l'interfaccia di Gitlab. Gitlab è ora un normale pacchetto Ubuntu, quindi si aggiornerà regolarmente con apt man mano che manterrai il tuo sistema aggiornato.

Gitlab ti fornirà tutta la flessibilità di cui avrai bisogno per gestire i tuoi progetti e quelli più grandi su cui potresti lavorare con un team. È una piattaforma pienamente capace e robusta su cui sempre più team stanno iniziando a fare affidamento.

Ospita i tuoi progetti software con gitlab