Introduzione

Gitea è un server git open source self-hosted scritto in Go. È un fork di Gogs. Gitea include un editor di file di repository, il monitoraggio dei problemi di progetto, la gestione degli utenti, le notifiche, il wiki integrato e molto altro.

Gitea è un'applicazione leggera e può essere installata su sistemi a bassa potenza. Se stai cercando un'alternativa a Gitlab con un footprint di memoria molto più piccolo e non hai bisogno di tutte le campane e fischietti che offre Gitlab, allora dovresti assolutamente provare Gitea.

Questo tutorial spiega come installare e configurare Gitea su Ubuntu 18.04.

Se desideri installare Gitea su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh [email protected]_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh [email protected]_DEL_SERVER -p PORTA

Prerequisiti

Gitea supporta SQLite, PostgreSQL e MySQL / MariaDB come backend del database.

Useremo SQLite come database per Gitea. Se SQLite non è installato sul tuo sistema Ubuntu puoi installarlo immettendo i seguenti comandi come utente sudo:

sudo apt update
sudo apt install sqlite3

Installare Gitea

Gitea fornisce immagini Docker e può essere installato da sorgente, binario e come pacchetto.

Installeremo Gitea dal binario. Completa i seguenti passi per installare Gitea su Ubuntu.

Installare Git

Il primo passo è installare Git sul tuo server, se non è ancora installato dare i seguenti comandi:

sudo apt update
sudo apt install git

Verifica l'installazione visualizzando la versione Git:

git --version
git version 2.17.1

Creare un utente Git

Crea un nuovo utente di sistema che eseguirà l'applicazione Gitea digitando:

sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git Version Control' git

Il comando creerà un nuovo utente e un nuovo gruppo git e imposterà la home directory su /home/git. L'output sarà simile al seguente:

Adding system user `git' (UID 111) ...
Adding new group `git' (GID 116) ...
Adding new user `git' (UID 111) with group `git' ...
Creating home directory `/home/git' ...

Scaricare il binario di Gitea

Visita la pagina di download di Gitea e scarica l'ultimo binario per la tua architettura. Al momento in cui scrivo, l'ultima versione è la 1.10.2. Se è disponibile una nuova versione, modificare la variabile VERSION nel comando seguente.

Scarica il binario Gitea nella directory /tmp usando il seguente comando wget:

VERSION=1.10.2
sudo wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64

Il binario gitea può essere eseguito da qualsiasi posizione. Seguiremo la convenzione e sposteremo il binario nella directory /usr/local/bin:

sudo mv /tmp/gitea /usr/local/bin

Rendere eseguibile binario:

sudo chmod +x /usr/local/bin/gitea

Esegui i comandi seguenti per creare le directory e impostare le autorizzazioni e la proprietà richieste:

sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
sudo chown git: /var/lib/gitea/{data,indexers,log}
sudo chmod 750 /var/lib/gitea/{data,indexers,log}
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea

La struttura di directory sopra è raccomandata dalla documentazione ufficiale di Gitea.

Le autorizzazioni della directory /etc/gitea sono impostate su 770 in modo che la procedura guidata di installazione possa creare il file di configurazione. Una volta completata l'installazione, imposteremo autorizzazioni più restrittive.

Crearere un file di unità Systemd

Gitea fornisce un file di unità Systemd che è già configurato per corrispondere alla nostra configurazione.

Scarica il file nella directory /etc/systemd/system/ digitando:

sudo wget https://raw.githubusercontent.com/go-gitea/gitea/master/contrib/systemd/gitea.service -P /etc/systemd/system/

Una volta fatto, abilitare e avviare il servizio Gitea:

sudo systemctl daemon-reload
sudo systemctl enable --now gitea

Verificare che il servizio sia avviato correttamente:

 sudo systemctl status gitea

Dovresti vedere un messaggio di output simile al seguente:

● gitea.service - Gitea (Git with a cup of tea)
   Loaded: loaded (/etc/systemd/system/gitea.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2020-01-18 16:06:34 CET; 20s ago
 Main PID: 2408 (gitea)
    Tasks: 7 (limit: 2298)
   CGroup: /system.slice/gitea.service
           └─2408 /usr/local/bin/gitea web --config /etc/gitea/app.ini

Configurare Gitea

Ora che Gitea è scaricato e in esecuzione, è tempo di finalizzare l'installazione tramite l'interfaccia web.

Per impostazione predefinita, Gitea ascolta le connessioni sulla porta 3000 su tutte le interfacce di rete.

Se hai un firewall UFW in esecuzione sul tuo server, dovrai aprire la porta Gitea:

Per consentire il traffico sulla porta 3000, immettere il comando seguente:

sudo ufw allow 3000/tcp

Apri il browser, digita http://TUO_DOMINIO_O_IP:3000 e verrà visualizzata la schermata iniziale di gitea.

Impostazioni del database:

  • Tipo di database: SQLite3
  • Percorso: usa un percorso assoluto: /var/lib/gitea/data/gitea.db

Impostazioni generali dell'applicazione:

  • Titolo del sito: inserisci il nome della tua organizzazione.
  • Percorso root repository: lasciare l'impostazione predefinita /home/git/gitea-repositories.
  • Git LFS Root Path: lascia il valore predefinito /var/lib/gitea/data/lfs.
  • Esegui come nome utente: git
  • Dominio server SSH: immettere il dominio o l'indirizzo IP del server.
  • Porta SSH: 22, modificala se SSH è in ascolto su un'altra porta.
  • Porta di ascolto HTTP Gitea: 3000
  • Gitea Base URL: utilizza http e l'indirizzo IP del tuo dominio o server.
  • Percorso registro: lascia il valore predefinito /var/lib/gitea/log

Puoi modificare le impostazioni in qualsiasi momento modificando il file di configurazione di Gitea.

Una volta fatto, premi il pulsante Install Gitea. L'installazione è istantanea. Al termine, verrai reindirizzato alla pagina di accesso.

Fai clic sul link Sign up now. Il primo utente registrato viene automaticamente aggiunto al gruppo Admin.

Cambia le autorizzazioni del file di configurazione di Gitea in sola lettura usando:

sudo chmod 750 /etc/gitea
sudo chmod 640 /etc/gitea/app.ini

Questo è tutto. Gitea è stato installato sul tuo computer Ubuntu.

Configurare Nginx come proxy di terminazione SSL

Questo passaggio è facoltativo, ma è altamente raccomandato. Per utilizzare Nginx come proxy inverso è necessario disporre di un dominio o sottodominio che punti all'IP pubblico del server. In questo tutorial, useremo git.example.com.

Innanzitutto, installa Nginx e genera un certificato SSL Let's Encrypt gratuito usando le guide seguenti:

Una volta fatto, apri il tuo editor di testo e modifica il file di blocco del server di dominio:

sudo nano /etc/nginx/sites-enabled/git.example.com
server {
    listen 80;
    server_name git.example.com;

    include snippets/letsencrypt.conf;
    return 301 https://git.example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name git.example.com;

    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;

    client_max_body_size 50m;

    # Proxy headers
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;

    # SSL parameters
    ssl_certificate /etc/letsencrypt/live/git.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/git.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/git.example.com/chain.pem;
    include snippets/letsencrypt.conf;
    include snippets/ssl.conf;

    # log files
    access_log /var/log/nginx/git.example.com.access.log;
    error_log /var/log/nginx/git.example.com.error.log;

    # Handle / requests
    location / {
       proxy_redirect off;
       proxy_pass http://127.0.0.1:3000;
    }
}

Non dimenticare di sostituire git.example.com con il tuo dominio Gitea e impostare il percorso corretto per i file del certificato SSL. Il traffico HTTP viene reindirizzato a HTTPS.

Riavvia il servizio Nginx per rendere effettive le modifiche:

sudo systemctl restart nginx

Successivamente, modifica il dominio Gitea e l'URL radice. Per fare ciò, apri il file di configurazione e modifica le seguenti righe:

sudo nano /etc/gitea/app.ini
[server]
DOMAIN           = git.example.com
ROOT_URL         = https://git.example.com/

Riavvia il servizio Gitea digitando:

sudo systemctl restart gitea

A questo punto, il proxy Gitea è configurato e puoi accedervi da: https://git.example.com.

Configurare le notifiche e-mail

Per consentire a Gitea di inviare e-mail di notifica, è possibile installare Postfix o utilizzare alcuni servizi di posta transazionale come SendGrid, MailChimp, MailGun o SES.

Per abilitare le notifiche e-mail, aprire il file di configurazione e modificare le seguenti righe:

sudo nano /etc/gitea/app.ini
[mailer]
ENABLED = true
HOST    = SMTP_SERVER:SMTP_PORT
FROM    = SENDER_EMAIL
USER    = SMTP_USER
PASSWD  = YOUR_SMTP_PASSWORD

Assicurati di inserire le informazioni corrette sul server SMTP.

Riavvia il servizio Gitea per rendere effettive le modifiche:

sudo systemctl restart gitea

Per verificare le impostazioni e inviare un'e-mail di prova, accedere a Gitea e andare su: Site Administration > Configuration > SMTP Mailer Configuration.

Gitea ti consente anche di connetterti a Slack creando un webhook web e inviando notifiche ai tuoi canali Slack.

Aggiornare Gitea

Per aggiornare all'ultima versione di Gitea, è sufficiente scaricare e sostituire il file binario.

Interrompere il servizio Gitea:

sudo systemctl stop gitea

Scarica l'ultima versione di Gitea e spostala nella directory /home/git:

VERSION=<THE_LATEST_GITEA_VERSION>
wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64
sudo mv /tmp/gitea /usr/local/bin

Rendere eseguibile binario:

sudo chmod +x /usr/local/bin/gitea

Avvia il servizio Gitea:

sudo systemctl restart gitea

Questo è tutto.

Conclusione

Questo tutorial ti ha guidato attraverso l'installazione di Gitea su Ubuntu 18.04.

Ora dovresti visitare la pagina della documentazione di Gitea e imparare come configurare la tua istanza di Gitea e creare il tuo primo progetto.