320.06.70.037 [email protected]
Seleziona una pagina

Installazione e configurazione di base di Gitea su container LXC con Debian 12

da | Dic 4, 2023 | Debian, Gitea, LXC Container | 0 commenti

Gitea permette di gestire on premise un ambiente molto simile a Github.
Tramite Gitea è possibile effettuare il versioning del codice e gestire alcune attività collaborative come il tracciamento dei bug e la code review.
L’installazione di Gitea verrà effettuata su un container LXC con Debian 12.

ARCHITETTURA

I tre server sono stati installati su container LXC con Debian 12.

PREREQUISITI

Un server MySQL che verrà utilizzato come DB per Gitea ed un server HAProxy su cui verrà configurato l’SSL offloading (opzionale).

PORTE UTILIZZATE

Server Gitea: TCP/3000 HTTP

Server HAProxy: TCP/443 HTTPS

Server MySQL: TCP/3306 MySQL

FLUSSI DA ABILITARE

Server Gitea -> Server MySQL TCP/3306
Server HAProxy -> Server Gitea TCP/3000
Client -> Server HAProxy TCP/443 HTTPS

PREPARAZIONE DEL SISTEMA OPERATIVO

Aggiornare il sistema operativo con i seguenti comandi:


Modificare l’entry relativa al localhost nel file hosts e inserire:

INSTALLAZIONE DI GITEA

Scaricare il binario di Gitea con i seguenti comandi:


Installare git con il comando:

PREPARAZIONE DI GITEA

Aggiungere l’utente di gitea con il comando:


Creare la struttura di directory con i seguenti comandi in sequenza:


Per permettere la configurazione di Gitea tramite web UI, abilitare momentaneamente la modifica su /etc/gitea per il gruppo git con il comando:


Aggiungere il file per l’autocompletion con il comando:


Aggiungere il file gitea.service per gestire Gitea tramite systemd con il comando:

INSTALLAZIONE DEL SERVER REDIS

Installare il Redis server con il comando:


Aggiungere o modificare le seguenti righe nel file /etc/redis/redis.conf:


Riavviare redis-server con il comando:


Aggiungere le seguenti righe in /etc/systemd/system/gitea.service

CONFIGURARE GITEA PER SALVARE IL PROPRIO PID IN UN FILE

ATTENZIONE: Questo step non è necessario se non si necessita di leggere il PID del processo di Gitea tramite una lettura sul filesystem.

Aggiungere nel file /etc/systemd/system/gitea.service:


Specificando la RuntimeDirectory, all’avvio di Gitea, viene creata la directory /var/run/gitea/ con i permessi corretti.

Modificare nel file /etc/systemd/system/gitea.service:

ABILITARE ED AVVIARE IL SERVIZIO GITEA

Ricaricare il file gitea.service con il comando:


Abilitare e far partire il servizio di Gitea con i seguenti comandi:


È probabile che quando si cerca di avviare il servizio, systemctl rimanga in attesa e che dopo qualche decina di secondi, esso vada in errore.
In questo caso, è necessario ignorare l’errore e verificare che il servizio sia in ascolto con ss (o software analoghi)


ATTENZIONE: Se il servizio è in ascolto, è possibile proseguire con la configurazione tramite web UIt. Al termine dell’installazione iniziale, systemd dovrebbe iniziare a funzionare correttamente.
Questo bug è dato dal fatto che il binario di Gitea non notifica correttamente con sd_notify() l’avvio del servizio prima che la fase di installazione sia stata completata.

CONFIGURAZIONE DEL DATABASE MYSQL

È possibile utilizzare un MySQL locale (la cui installazione e configurazione non verrà discussa in questa guida), oppure utilizzare un server dedicato.

Connettersi alla shell del MySQL con il comando:


Creare l’utenza di Gitea con il comando:


oppure con il comando:


Creare il database di Gitea con il comando:


Aggiungere le grants all’utenza di Gitea con il comando:


oppure con il comando:


Quindi fare il flush con il comando:


Collegarsi al server di Gitea ed installare il client MariaDB con il comando:


Verificare che l’utente gitea possa  accedere al DB digitando il seguente comando:

CONFIGURARE L’SSL OFFLOADING SU HAPROXY (OPZIONALE)

Collegarsi al server HAProxy ed aggiungere a /etc/haproxy/haproxy.cfg il seguente output:


Verificare la configurazione di HAProxy con il comando:


Eseguire il Reload di HAProxy con il comando:

CONFIGURAZIONE PRELIMINARE DALLA WEB UI

ATTENZIONE: È necessario inserire un record DNS o una riga sul file hosts, affiché il client possa risolvere correttamente gitea.pizza.local
Nel caso in cui si abbia configurato l’SSL offloading, sarà necessario che il record punti all’IP di HAProxy, invece nel caso in cui non lo si abbia fatto, il record dovrà puntare all’IP del server di Gitea.

Navigare su https://gitea.pizza.local/ oppure http://gitea.pizza.local:3000/ (se non si è configurato l’SSL offloading)

È possibile specificare l’FQDN al posto dell’IP come host del DB.
Il campo “Server Domain” può essere completato con il dominio (pizza.local) o l’FQDN usato nel base url (gitea.pizza.local).

In questa guida verrà omessa la funzionalità SSH di Gitea, perciò il relativo campo verrà lasciato vuoto

Se si necessitasse di utilizzare git tramite SSH, sarà necessario modificare la porta utilizzata dal servizio di sistema sshd oppure configurare Gitea per utilizzare una porta diversa dalla 22/TCP.

Configurare il base URL ed eventualmente attivare le notifiche quando sono disponibili degli aggiornamenti

Se non si ha configurato l’SSL offloading, utilizzare come base url: http://gitea.pizza.local:3000/

Abilitare o disabilitare le funzionalità di Gitea ed impostare il dominio email come mostrato nell’imamgine sottostante

Creare un’utenza amministrativa come mostrato nell’imamgine sottostante

CONFIGURAZIONE TRAMITE TERMINALE

Aggiungere o modificare in /etc/gitea/app.ini:


Se si ha configurato l’SSL offloading, modificare in /etc/gitea/app.ini:


Riavviare Gitea con il comando:

CONCLUSIONE DELL’INSTALLAZIONE

Aggiungere un soft link (opzionale)


Rimuovere i permessi di scrittura su /etc/gitea all’utente git

Marco Valle

Scritto da Marco Valle

Mi chiamo Marco Valle e da sempre sono appassionato di Cybersicurezza e Linux.
Per lavoro implemento soluzioni open source.

Link – Friends

Infrastrutture IT

English School

Act for Change

Graphic and Web solution

Abilitare Two-Factor Authentication di Google su Webmin (The Perl module Authen: : 0ATH needed for two-factor authentication is not installed)

PREMESSA Un'autenticazione a due fattori (o autenticazione a più fattori o strong authentication) è un metodo di autenticazione che si basa sull'utilizzo congiunto di due metodi di autenticazione individuale. L'identità di un utente remoto è generalmente verificata...

leggi tutto

0 commenti

Invia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Translate »