Installare Gitea su Debian

gitea debian

Gitea un servizio Git self-hosted scritto in Go completamente open source, che permette di gestire in completezza repository Git privati, sia per piccoli progetti sia per grandi aziende. Di fatto si tratta di un servizio simile a GitHub, BitBucket o GitLab, ma con la peculiarità di essere completamente free ed installabile praticamente su quasi ogni architettura o sistema operativo ( amd64, i386, ARM, PowerPC e molto altro ). Gitea è una fork del progetto Gogs.

In questa guida vedremo come installare Gitea su un server Debian 9 tramite binary; la procedura può essere replicata anche su altre distribuzioni. Per le seguenti distribuzione esiste la versione tramite pacchetti:

E’ anche disponibile la versione Docker e Docker Rootless.

Partiamo subito con la configurazione del server Debian; essendo un server saremo collegati tramite SSH, ma tutto il procedimento potrà esser fatto anche da versione desktop

Debian Server

Prima di tutto dobbiamo aggiornare la nostra macchina con Debian ed installare eventuali pacchetti che ci aiuteranno nella procedura

sudo apt update -y
sudo apt install -y git nano bash-completion

Diamo INVIO ed installiamo i pacchetti richiesti. Una volta completata la procedura, digitiamo nel terminale

git --version

così da ottenere la versione installata di git

git 2.11.0

A questo punto dovremo creare un utente che il servizio Gitea andrà ad utilizzare per poter scrivere le cartelle ed altri file all’interno del nostro server

Apriamo il terminale e digitiamo

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

Sarà quindi creato l’utente ‘git’ con il suo ID unico, gruppo e relativa home.

Creazione utente git
Installiamo ora MariaDB server ( funziona anche con MySQL server )

sudo apt install -y mariadb-server

Una volta completata l’installazione lanciamo la configurazione del server MariaDB usando il comando

sudo mysql_secure_installation

Rispondiamo alle domande e assicuriamoci di rispondere “Y” alla domanda “Reload privilege tables now?”. Creiamo quindi l’utente ed il database per Gitea

sudo mysql -u root -p
CREATE DATABASE gitea;
GRANT ALL PRIVILEGES ON gitea.* TO 'gitea'@'localhost' IDENTIFIED BY "mEtTOqUiUnApAsSwOrD";
FLUSH PRIVILEGES;
QUIT;

Bene siamo arrivati al punto che abbiamo preparato la nostra macchina, con utente git e server MariaDB configurati a puntino. Passiamo quindi al momento del download di gitea! Per prima cosa rechiamoci sulla pagina di GitHub del progetto per ottenere l’ultima versione stabile ottenibile qui e scarichiamo il binario che ci interessa, in questo caso sarà quello denominato gitea-x.y.z-linux-amd64 ( in questo momento la versione ultima è la 1.16.8, quindi il pacchetto che andremo a scaricare sarà gitea-1.16.8-linux-amd64.

wget https://github.com/go-gitea/gitea/releases/download/v1.16.8/gitea-1.16.8-linux-amd64

Una volta completato il download possiamo procedere a rendere il file appena scaricato un eseguibile e quindi spostarlo nella cartella /usr/local/bin

sudo chmod +x gitea-*-linux-amd64
sudo mv gitea-*-linux-amd64 /usr/local/bin/gitea

Per vedere se tutto è andato a gonfie vele, digitiamo

gitea --version

per ottenere la versione di Gitea installata

Gitea Version 1.16.8

Visto che la nostra macchin con Debian si basa su systemd, dobbiamo dunque creare le cartelle necessarie a Gitea ed il servizio stesso.

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

Mentre per il servizio ( se siete più comodi con vim rispetto a nano basta cambiare il programma )

sudo nano /etc/systemd/system/gitea.service

E lo compiliamo nel seguente modo

[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
After=mysql.service

[Service]
LimitMEMLOCK=infinity
LimitNOFILE=65535
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea

[Install]
WantedBy=multi-user.target

Ricarichiamo il servizio ed incrociamo le dita

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

Se tutto è andato nel verso giusto e non abbiamo creato disastri, dovremmo ottenere qualcosa del genere

Gitea status service

CONGRATULAZIONI!! Hai appena installato correttamente Gitea!

Ma non è finita qui!! Ora dobbiamo passare al punto della configurazione!!

Dalla nostra macchina Debian lanciamo il comando

ip address

e prendiamo nota dell’indirizzo ip; nel mio caso si tratta di

192.168.62.141

Quindi apriamo il nostro browser preferito all’indirizzo precedente ma aggiungendo la porta :3000 che è quella su cui Gitea lavora di default

192.168.62.141:3000

Otterremo qualcosa del genere

Gitea installer page

Compiliamo i campi con i dati corretti e premiamo su “Installare Gitea” così da completare la configurazione!

Attenzione! Assicurarsi di aver impostato un account Amministratore nella sezione Impostazioni Account Amministratore, altrimenti il primo utente che si registrerà sarà in automatico l’amministratore!!

Ora possiamo creare i nostri repository privati e gestire i nostri team. Come ottima GUI per git, potremo usare tranquillamente il fantastico GitKraken.

Happy dev!