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
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
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.
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
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
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
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!