
Indice dei contenuti
GitHub è comodo, GitLab è ricco di funzionalità, ma a volte per i propri progetti serve semplicemente un posto privato dove conservare repository, documentazione e codice. Per questo ho scelto di sperimentare con Gitea, un servizio Git leggero e self-hosted, installato su un Raspberry Pi.
Il risultato è un piccolo server personale sempre disponibile sulla rete di casa, accessibile dai miei ambienti di sviluppo e sotto il mio controllo. Non sostituisce necessariamente un servizio cloud per ogni scenario, ma offre un modo pratico per ospitare repository privati senza affidare tutto a una piattaforma esterna.
Perché ospitare Git in casa? 🏠
Un server Git personale può essere utile per progetti personali, prototipi, configurazioni, piccoli siti e codice che si preferisce mantenere all’interno della propria rete. Gitea offre un’interfaccia web per gestire repository, utenti, issue e attività, pur restando abbastanza leggero da poter essere eseguito anche su hardware contenuto.
Nel mio caso, il Raspberry Pi 2 fa da nodo dedicato: il computer di sviluppo clona il repository, lavora localmente e invia le modifiche al server con git push. Così il codice non rimane soltanto sul PC e posso consultare la cronologia delle modifiche tramite l’interfaccia web di Gitea.
È importante chiarire una cosa: un repository Git su un Raspberry Pi è una copia utile del progetto, ma non è da solo una strategia di backup completa. Se il dispositivo o il disco si guastano, anche il repository potrebbe andare perso. Conviene quindi prevedere una seconda copia, su un disco esterno o su un’altra destinazione separata.
Preparare il Raspberry Pi ⚙️
Per un servizio Git leggero, un Raspberry Pi può essere sufficiente, soprattutto se il numero di utenti e repository è contenuto. Prima di installare Gitea, è bene preparare il sistema:
- scegliere un sistema operativo supportato dal modello di Raspberry Pi;
- aggiornare pacchetti e firmware;
- assegnare al dispositivo un indirizzo IP stabile o una prenotazione DHCP;
- abilitare SSH solo se necessario e proteggerlo con chiavi;
- usare, se possibile, un supporto di archiviazione affidabile invece di affidarsi a una microSD molto sollecitata;
- configurare backup e monitoraggio dello spazio disponibile.
Un Raspberry Pi 2 ha risorse limitate rispetto ai modelli più recenti: è quindi meglio mantenere l’installazione essenziale, evitare servizi superflui e non aspettarsi prestazioni da server enterprise. Per uso personale e repository di dimensioni ragionevoli può comunque essere un laboratorio self-hosted interessante.
Installare Gitea con Docker 🐳
Se Docker è già disponibile sul sistema, Gitea può essere avviato come container. Prima di eseguire il servizio, crea una cartella persistente per i dati: in questo modo repository e configurazione non dipenderanno dal ciclo di vita del container.
sudo mkdir -p /srv/gitea
sudo chown -R 1000:1000 /srv/giteaUn esempio essenziale con Docker Compose può essere simile a questo. Le porte e i percorsi vanno adattati alla propria rete e alla configurazione scelta:
services:
gitea:
image: gitea/gitea:latest
container_name: gitea
restart: unless-stopped
ports:
- "3000:3000"
- "2222:22"
volumes:
- /srv/gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:roSalva la configurazione in un file compose.yaml e avvia il servizio:
docker compose up -dAl primo avvio, apri Gitea dal browser usando l’indirizzo del Raspberry Pi e la porta configurata, ad esempio http://IP-DEL-RASPBERRY:3000. Completa la configurazione iniziale e crea un account amministratore con una password robusta.
Le versioni e le immagini container cambiano nel tempo: prima di aggiornare, controlla la documentazione ufficiale di Gitea e pianifica un backup dei dati persistenti.
Collegare il computer di sviluppo 🔗
Dal computer o dalla macchina virtuale di sviluppo puoi clonare un repository tramite SSH o HTTPS. Con SSH, la porta configurata in Gitea deve essere raggiungibile sulla rete locale.
git clone ssh://git@IP-DEL-RASPBERRY:2222/utente/progetto.gitPer associare al repository la propria identità Git:
git config --global user.name "Nome Cognome"
git config --global user.email "[email protected]"Il flusso quotidiano rimane quello di Git: modifica i file, controlla le differenze con git status, crea un commit e invialo al server con git push.
git status
git add .
git commit -m "Descrizione delle modifiche"
git pushIl vantaggio non è soltanto avere un’interfaccia web: la cronologia Git permette di capire che cosa è cambiato, quando e con quale commit. È una piccola abitudine che aiuta molto quando si sperimenta o si lavora su più progetti.
Sicurezza: privato non significa automaticamente protetto 🔐
Un servizio raggiungibile solo dalla rete domestica ha un’esposizione inferiore rispetto a uno pubblicato apertamente su Internet, ma non è immune da rischi. Mantieni aggiornati sistema operativo e container, usa credenziali robuste e limita le porte esposte ai dispositivi che ne hanno davvero bisogno.
Se vuoi accedere a Gitea dall’esterno, evita di aprire porte a caso sul router. Una VPN è spesso una scelta più prudente per raggiungere i servizi domestici. In ogni caso, abilita HTTPS quando previsto dalla configurazione e verifica con attenzione utenti, chiavi SSH e permessi dei repository.
Ricorda anche che l’agente di sviluppo o il computer che usa il repository può contenere token e chiavi. Usa credenziali dedicate e con privilegi minimi, e non inserire mai segreti nei file versionati.
Backup: Git aiuta, ma non basta 💾
Git conserva la cronologia delle modifiche, ma non protegge da ogni tipo di perdita. Un errore umano, un guasto del supporto o un problema sul Raspberry Pi possono compromettere sia i file sia il repository.
Una strategia semplice può prevedere:
- backup periodico della directory persistente di Gitea;
- copia su un disco esterno o su un secondo dispositivo;
- una copia conservata separatamente dal Raspberry Pi;
- verifiche occasionali che assicurino di poter ripristinare davvero i dati.
Il test di ripristino è la parte che spesso viene dimenticata: un backup non verificato è soltanto una speranza con un nome rassicurante 😅
Un piccolo server, molto controllo ✨
Gitea su Raspberry Pi non è la soluzione universale per ospitare qualsiasi progetto o gestire team numerosi. È però un modo concreto per imparare, sperimentare e costruire un flusso Git personale con una buona dose di autonomia.
Il bello del self-hosting è proprio questo: partire da un’esigenza semplice, capire ogni componente e migliorare il sistema un passo alla volta. Il mio Raspberry Pi non è un datacenter, ma per conservare e seguire i miei progetti è diventato un compagno di lavoro sorprendentemente utile 🍓
