Installa Gitea su un Raspberry Pi per creare il tuo repository di codice

Installa Gitea su un Raspberry Pi per creare il tuo repository di codice

Git è un sistema di controllo della versione utilizzato da sviluppatori di software, programmatori e armeggiatori per collaborare e distribuire progetti open source. Utilizzando Git, puoi gestire progetti di qualsiasi dimensione, inserire modifiche e unioni di codice e consentire agli utenti di clonare i tuoi repository sulle proprie macchine. L’ecosistema open source funziona su Git e molti dei progetti presenti su MakeUseOf.com prevedono l’utilizzo di risorse da GitHub. Con Gitea, puoi ospitare i tuoi repository Git completamente funzionali su un Raspberry Pi a casa tua.

Perché ospitare il proprio servizio Git su Raspberry Pi invece di utilizzare GitHub?

Una pagina del repository GitHub che mostra un elenco di file dal codice sorgente di React

Con 55 milioni di utenti, GitHub è il più grande repository di software libero e open source sulla Terra, ma il suo attuale proprietario, Microsoft, non è una scelta naturale per il ruolo di custode. I precedenti amministratori delegati dell’azienda hanno descritto Linux e la General Public License come “un cancro” e la maggior parte dei prodotti Microsoft sono proprietari e closed source.

La proprietà di Microsoft ha anche visto GitHub esplorare alcune tecnologie eticamente dubbie, in particolare con GitHub Copilot, uno strumento di intelligenza artificiale per aiutare i programmatori a generare codice. Copilot è stato addestrato sui dati di GitHub, in possibile violazione dei termini delle licenze Creative Commons utilizzate dai programmatori.

Utilizzando GitHub, gli sviluppatori stanno creando un altro punto di strozzatura in cui l’innovazione può essere soffocata, indebolita e soggetta a frivole interferenze.

Gitea ti consente di configurare il tuo server Git su Raspberry Pi

Gitea è un fork di Gogs ed è una soluzione di hosting di codice leggera gestita dalla comunità scritta in Go e pubblicata con licenza MIT. Mira ad avere un modello di sviluppo più aperto e veloce rispetto al suo predecessore e funzionerà su macchine con risorse anche modeste, come un Raspberry Pi. Sarai in grado di lavorare sui tuoi dotfile, ISO personalizzati di Ubuntu, script Bash e utilità Java e Python senza temere che saranno soggetti a rimozione DMCA, utilizzati per addestrare software nefasto o altrimenti fuori dal tuo controllo .

Come installare Gitea sul tuo Raspberry Pi

Gitea viene fornito con diversi metodi di installazione, ma il più semplice è tramite Docker. Se non li hai già in esecuzione sul tuo Raspberry Pi, installa subito Docker e Docker Compose.

I file che memorizzi nel tuo server Gitea occuperanno potenzialmente molto spazio, quindi ti suggeriamo di utilizzare l’archiviazione esterna con il tuo Raspberry Pi e di utilizzarla come posizione per l’installazione di Gitea.

Connettiti al tuo Pi tramite SSH, quindi vai alla posizione in cui desideri installare Gitea e crea una nuova directory, quindi spostati in essa:

mkdir gitea
cd gitea

Crea un nuovo file con nano:

nano docker-compose.yml

…e incollare il seguente codice al suo interno:

version: "3"

networks:
gitea:
external: false

services:
server:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=mysql
- GITEA__database__HOST=db:3306
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea
restart: always
networks:
- gitea
volumes:
-. /gitea:/data
- /etc/timezone:/etc/timezone:gb
- /etc/localtime:/etc/localtime:gb
ports:
- "3000:3000"
- "222:22"
depends_on:
- db

db:
image: mysql:8
restart: always
environment:
- MYSQL_ROOT_PASSWORD=gitea
- MYSQL_USER=gitea
- MYSQL_PASSWORD=gitea
- MYSQL_DATABASE=gitea
networks:
- gitea
volumes:
-. /mysql:/var/lib/mysql

Cambia i fusi orari nella tua locale e scegli una password complessa per il tuo database, quindi salva ed esci da nano con Ctrl + O , quindi Ctrl + X.

Accedere:

docker-compose up -d

…per richiamare la finestra mobile-componi in modalità separata. Docker-compose estrarrà più immagini per Gitea e Maria DB e imposterà i contenitori. A seconda della velocità della tua connessione, questo potrebbe richiedere del tempo.

docker-compose ps che mostra gitea e gitea_db_1 come up

Quando torni al prompt dei comandi:

docker-compose ps

…dovrebbe mostrare “gitea” e “gitea_db_1” come “up”. Ora puoi visitare la pagina di configurazione iniziale per il tuo sito Gitea all’indirizzo your.pi.local.ip.address:3000 .

Non modificare ancora nulla. Se hai intenzione di accedere alla tua istanza Gitea su Internet, devi prima fare un po’ più di preparazione.

Accedi alla tua istanza Gitea tramite Internet

Vuoi essere in grado di digitare un URL standard per poter raggiungere la tua istanza Gitea, quindi avrai bisogno di Apache per gestire il proxy. Installa Apache con:

sudo apt install apache2

Ora, avvia e abilita Apache con i seguenti comandi:

sudo systemctl start apache2
sudo systemctl enable apache2

Abilita i moduli proxy di Apache con:

sudo a2enmod proxy
sudo a2enmod proxy_http

Scegli un nome di dominio o un nome di sottodominio da un registrar affidabile. Quindi, dalla pagina delle impostazioni del tuo registrar, trova le opzioni “DNS avanzato” e aggiungi un nuovo record A. Imposta il campo Host su ” @” e il campo valore sul tuo indirizzo IP statico. Imposta il valore TTL (Time to Lease) il più basso possibile, quindi salva.

Apri la pagina di amministrazione del tuo router e trova una sezione intitolata Port Forwarding , Port Mapping o Port Management .

Crea una nuova voce per le richieste HTTP. Imposta sia la porta locale che quella pubblica su 80 e l’indirizzo IP locale sull’indirizzo IP del tuo Raspberry Pi.

Per le richieste HTTPS è necessaria una seconda porta aperta. Imposta sia la porta locale che quella pubblica su 443 e, di nuovo, l’indirizzo IP locale sull’indirizzo IP del tuo Pi.

Infine, hai bisogno di una porta aperta per le richieste SSH al tuo server Git. Imposta sia la porta locale che quella pubblica su 222 e l’indirizzo IP locale sull’indirizzo IP del tuo Pi.

Utilizzerai Certbot per ottenere certificati e chiavi di sicurezza. Aggiungi il repository Certbot, aggiorna, quindi installa Certbot:

sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt-get install python3-certbot-apache

Cambia directory e crea un nuovo file con nano:

cd /etc/apache2/sites-available/
nano gitea.conf

Nel nuovo file, incolla quanto segue, assicurandoti di copiare il tuo nome di dominio:

<VirtualHost *:80>ServerName your-domain-name.tldProxyPass / http://127.0.0.1:3000/ProxyPassReverse / http:/127.0.0.1:3000/ProxyPreserveHost On</VirtualHost>

Salva ed esci da nano con Ctrl + O , quindi Ctrl + X e abilita il tuo nuovo file conf con:

sudo a2ensite gitea.conf

Riavvia Apache:

sudo service apache2 restart

Esegui Certbot con:

sudo certbot

…e seleziona il tuo nome di dominio da un elenco. Certbot recupererà e installerà certificati e chiavi. Quando torni al prompt, riavvia nuovamente Apache:

sudo service apache2 restart

Configurazione dell’istanza Gitea

Ora puoi visitare la tua istanza Gitea in un browser all’indirizzo https://your-domain-name.tld . Sarai in grado di impostare il tipo di database, la password e altre variabili nella prima sezione. Questi saranno i valori specificati nel file docker-compose e dovrebbero essere già compilati, quindi non è necessario modificarli.

Nelle impostazioni generali , imposta il titolo del sito su uno adatto, il dominio del server dovrebbe essere il tuo nome di dominio e la porta del server SSH deve essere impostata su 222 . L’URL di base dovrebbe essere il tuo nome di dominio, incluso “HTTPS://”.

Quando hai finito, premi il grande pulsante blu Installa Gitea . Sarai accolto da una grande tazza di tè verde e qualunque nome e lumaca tu abbia dato all’istanza. Per creare il tuo primo utente, clicca su registrati in alto a destra della pagina, quindi inserisci i tuoi dati. Congratulazioni!

Per impedire a chiunque altro di registrarsi e ospitare i propri repository sul tuo server Git, devi modificare il file app.ini . Se inizialmente hai creato la tua directory gitea nella directory / (root), inserisci:

nano /gitea/gitea/gitea/conf/app.ini

Scorri verso il basso fino alla sezione del servizio e imposta DISABLE_REGISTRATION su true.

gitea diable registrazione impostata a vero

Salva ed esci da nano con Ctrl + O , quindi Ctrl + X, quindi riavvia i tuoi contenitori:

docker-compose downdocker-compose up -d

Utilizzando Gitea

Se hai mai usato GitHub, ti sentirai subito a casa in Gitea. Dopo aver effettuato l’accesso, vedrai che non ci sono repository disponibili. Creane uno facendo clic sul segno + a destra della pagina e assegnagli un nome appropriato.

gitea creazione del repository iniziale

Puoi scegliere di rendere privato il repository selezionando la casella o lasciarlo aperto affinché il mondo lo veda. Seleziona la casella per inizializzare con un file readme, quindi fai clic su Crea repository per creare il tuo primo repository! Puoi apportare e confermare modifiche, caricare file e modificare proprio come se fosse GitHub.

Fai clic su SSH per copiare l’indirizzo e non sarai in grado di clonare i repository sul tuo computer locale, ricevendo invece un errore: “Assicurati di avere i diritti di accesso corretti e che il repository esista”. Devi prima aggiungere la chiave SSH della tua macchina locale a Gitea. Per fare ciò, copia l’output da:

cat ~/.ssh/id_rsa.pub

Nell’interfaccia web di Gitea, fai clic sulla foto del tuo profilo, quindi scegli impostazioni > Chiavi SSH/GPG . Fare clic su Aggiungi chiave e incollare la chiave appena copiata.

aggiungi la chiave ssh a gitea

Ora puoi interagire con il tuo repository Git sul tuo server Git sul tuo Raspberry Pi!

Usa la tua istanza Gitea per creare fantastici progetti software

Git è uno strumento fantastico per collaborare a progetti straordinari, ma anche senza un team è fantastico per organizzare il proprio flusso di lavoro e creare software o configurazioni favolosi. Usalo per tenere traccia dei tuoi file mentre impari un nuovo linguaggio di programmazione o personalizzi il tuo sistema desktop per renderlo il migliore possibile.

Lascia un commento

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