Come configurare un server Git privato sul tuo Web Hosting

Gestire il codice e collaborare con i membri del team è fondamentale per qualsiasi progetto di sviluppo. Sebbene piattaforme come GitHub e GitLab siano popolari, impostare il tuo server Git privato sul tuo web hosting può darti più controllo sui tuoi progetti, garantire la privacy e potenzialmente risparmiare sui costi. Questo tutorial ti guiderà attraverso i passaggi per impostare un server Git privato sul tuo web hosting.

1. Perché configurare un server Git privato?

Prima di immergerci nella configurazione, è importante comprendere i vantaggi di avere un proprio server Git:

  • Privacy: Il tuo codice rimane completamente privato e sotto il tuo controllo.
  • Personalizzazione: Adatta il server alle tue esigenze e ai tuoi flussi di lavoro specifici.
  • Nessun limite utente: evita limitazioni sul numero di repository privati ​​o collaboratori.
  • Conveniente: per i team con più utenti, l'auto-hosting può essere più conveniente rispetto ai piani a pagamento sulle piattaforme più diffuse.

2. Prerequisiti

Prima di iniziare, assicurati di avere quanto segue:

  • Un VPS o server dedicato: L'hosting condiviso in genere non fornisce l'accesso e le risorse necessarie per configurare un server Git.
  • Accesso SSH: Per installare e configurare il server Git, avrai bisogno dell'accesso SSH al tuo server.
  • Conoscenze di base di Linux: È essenziale avere familiarità con la riga di comando e con Linux.

3. Installazione di Git sul tuo server

Per prima cosa, dovrai installare Git sul tuo server. Segui questi passaggi:

  1. Aggiorna il server: Run the following command to ensure your server’s package list is up to date:
    sudo apt-get aggiornamento
  2. Installa Git: Install Git by running:
    sudo apt-get installa git
  3. Verifica installazione: Check that Git has been installed correctly by typing:
    git --versione

4. Creazione di un utente Git

È una buona norma creare un utente separato per la gestione dei repository Git:

  1. Crea un nuovo utente: Run the following command to create a user named ‘git’:
    sudo aggiungi utente git
  2. Imposta l'accesso SSH: Add your SSH key to the new user’s authorized keys to enable secure access:
    sudo mkdir /home/git/.ssh
    sudo touch /home/git/.ssh/authorized_keys
    sudo nano /home/git/.ssh/authorized_keys

    Incolla la tua chiave SSH pubblica nel file authorized_keys, quindi salva e esci.

  3. Imposta permessi: Adjust permissions for the SSH directory:
    sudo chown -R git:git /home/git/.ssh
    sudo chmod 700 /home/git/.ssh
    sudo chmod 600 /home/git/.ssh/authorized_keys

5. Creazione di un repository

Ora puoi creare il tuo primo repository Git:

  1. Crea una directory per i repository: Log in as the ‘git’ user and create a directory for your repositories:
    sudo su - git
    mkdir repos
    cd repos
  2. Inizializzare un repository: Create a new Git repository by running:
    git init --bare il-tuo-progetto.git

    In questo modo viene creato un repository semplice, ideale per i repository remoti in cui il codice viene trasferito e prelevato.

6. Clonazione e invio al repository

Una volta configurato il repository, puoi clonarlo sul computer locale e caricarvi il codice:

  1. Clona il repository: On your local machine, run:
    git clone git@ip-del-tuo-server:/home/git/repos/il-tuo-progetto.git
  2. Aggiungi file ed esegui il commit: Add your files to the repository, commit them, and push the changes:
    cd your-project
    echo "# Your Project" >> README.md
    git add .
    git commit -m "Initial commit"
    git push origin master

7. Gestione di più repository

Se intendi ospitare più repository, puoi semplicemente ripetere i passaggi di creazione del repository per ogni progetto:

  • Crea una nuova directory per ogni repository in /home/git/repos/.
  • Inizializzare ogni nuovo repository con git init --bare your-new-project.git.
  • Accedi e gestisci ogni repository in modo indipendente tramite SSH.

8. Proteggere il tuo server Git

La sicurezza è un aspetto critico dell'hosting di un server Git privato. Ecco alcuni passaggi per migliorare la sicurezza:

  • Disabilita l'autenticazione tramite password: Configura SSH per consentire solo l'autenticazione basata su chiave modificando /etc/ssh/sshd_config e impostando PasswordAuthentication no.
  • Configurazione del firewall: Utilizzare strumenti come UFW per consentire solo le porte necessarie (ad esempio SSH) e bloccarne altre.
  • Backup regolari: Implementa backup regolari dei tuoi repository per prevenire la perdita di dati.

9. Impostazione delle interfacce Web (facoltativo)

Se preferisci un'interfaccia web per gestire i tuoi repository, puoi installare software come GitWeb o Gitea:

  • GitWeb: Una semplice interfaccia web per visualizzare i repository Git.
  • Gitea: Un servizio Git auto-ospitato che fornisce un'interfaccia intuitiva simile a GitHub.

Entrambe le opzioni richiedono impostazioni e configurazioni aggiuntive, ma possono migliorare notevolmente l'usabilità del tuo server Git.

Conclusione

L'impostazione di un server Git privato sul tuo web hosting fornisce il controllo completo sul tuo codice, offre privacy e consente la personalizzazione per adattarsi al tuo flusso di lavoro. Seguendo questa guida, puoi creare e gestire i tuoi repository Git, assicurandoti che il tuo processo di sviluppo rimanga sicuro ed efficiente.