Installez Gitea sur un Raspberry Pi pour créer votre propre référentiel de code

Installez Gitea sur un Raspberry Pi pour créer votre propre référentiel de code

Git est un système de contrôle de version utilisé par les développeurs de logiciels, les codeurs et les bricoleurs pour collaborer et distribuer des projets open source. En utilisant Git, vous pouvez gérer des projets de toute taille, extraire des modifications et des fusions de code et permettre aux utilisateurs de cloner vos référentiels sur leurs propres machines. L’écosystème open source fonctionne sur Git, et de nombreux projets présentés sur MakeUseOf.com impliquent l’utilisation de ressources de GitHub. Avec Gitea, vous pouvez héberger vos propres référentiels Git entièrement fonctionnels sur un Raspberry Pi chez vous.

Pourquoi héberger votre propre service Git sur Raspberry Pi au lieu d’utiliser GitHub ?

Une page de référentiel GitHub affichant une liste de fichiers du code source de React

Avec 55 millions d’utilisateurs, GitHub est le plus grand référentiel de logiciels libres et open source sur Terre, mais son propriétaire actuel, Microsoft, n’est pas un candidat naturel pour le rôle de dépositaire. Les anciens PDG de la société ont décrit Linux et la licence publique générale comme « un cancer », et la plupart des produits de Microsoft sont propriétaires et fermés.

La propriété de Microsoft a également vu GitHub explorer certaines technologies éthiquement douteuses, notamment avec GitHub Copilot, un outil d’IA pour aider les programmeurs à générer du code. Copilot a été formé sur les données de GitHub, en violation possible des termes des licences Creative Commons employées par les codeurs.

En utilisant GitHub, les développeurs créent un autre point d’étranglement où l’innovation peut être étouffée, sapée et soumise à des interférences frivoles.

Gitea vous permet de configurer votre propre serveur Git sur Raspberry Pi

Gitea est un fork de Gogs, et est une solution d’hébergement de code léger gérée par la communauté écrite en Go et publiée sous la licence MIT. Il vise à avoir un modèle de développement plus ouvert et plus rapide que son prédécesseur, et fonctionnera sur des machines aux ressources même modestes, comme un Raspberry Pi. Vous pourrez travailler sur vos fichiers de points, vos ISO Ubuntu personnalisés, vos scripts Bash et vos utilitaires Java et Python sans craindre qu’ils ne soient soumis à un retrait DMCA, qu’ils ne soient utilisés pour former des logiciels malveillants ou qu’ils ne soient hors de votre contrôle. .

Comment installer Gitea sur votre Raspberry Pi

Gitea est livré avec plusieurs méthodes d’installation, mais la plus simple est via Docker. Si vous ne les avez pas déjà en cours d’exécution sur votre Raspberry Pi, installez Docker et Docker Compose maintenant.

Les fichiers que vous stockez sur votre serveur Gitea prendront potentiellement beaucoup d’espace, nous vous suggérons donc d’utiliser un stockage externe avec votre Raspberry Pi et de l’utiliser comme emplacement pour votre installation Gitea.

Connectez-vous à votre Pi via SSH, puis accédez à l’emplacement où vous souhaitez installer Gitea, créez un nouveau répertoire, puis déplacez-vous dedans :

mkdir gitea
cd gitea

Créez un nouveau fichier avec nano :

nano docker-compose.yml

… et collez-y le code suivant :

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

Modifiez les fuseaux horaires selon vos propres paramètres régionaux et choisissez un mot de passe fort pour votre base de données, puis enregistrez et quittez nano avec Ctrl + O , puis Ctrl + X.

Entrer:

docker-compose up -d

… pour afficher docker-compose en mode détaché. Docker-compose extraira plusieurs images pour Gitea et Maria DB et configurera des conteneurs. Selon votre vitesse de connexion, cela peut prendre un certain temps.

docker-compose ps montrant gitea et gitea_db_1 comme up

Lorsque vous revenez à l’invite de commande :

docker-compose ps

… devrait afficher « gitea » et « gitea_db_1 » comme « up ». Vous pouvez désormais visiter la page de configuration initiale de votre site Gitea à votre.pi.local.ip.address:3000 .

Ne modifiez rien pour le moment. Si vous envisagez d’accéder à votre instance Gitea via Internet, vous devez d’abord faire un peu plus de préparation.

Accédez à votre instance Gitea sur Internet

Vous voulez pouvoir saisir une URL standard pour pouvoir accéder à votre instance Gitea, vous aurez donc besoin d’Apache pour gérer le proxy. Installez Apache avec :

sudo apt install apache2

Maintenant, démarrez et activez Apache avec les commandes suivantes :

sudo systemctl start apache2
sudo systemctl enable apache2

Activez les modules proxy d’Apache avec :

sudo a2enmod proxy
sudo a2enmod proxy_http

Choisissez un nom de domaine ou un nom de sous-domaine auprès d’un bureau d’enregistrement réputé. Ensuite, depuis la page des paramètres de votre registrar, recherchez les options « DNS avancé » et ajoutez un nouvel enregistrement A. Définissez le champ Hôte sur « @ » et le champ de valeur sur votre adresse IP statique. Définissez la valeur TTL (Time to Lease) aussi basse que possible, puis enregistrez.

Ouvrez la page d’administration de votre routeur et recherchez une section intitulée Port Forwarding , Port Mapping ou Port Management .

Créez une nouvelle entrée pour les requêtes HTTP. Définissez les ports local et public sur 80 et l’adresse IP locale sur l’adresse IP de votre Raspberry Pi.

Un deuxième port ouvert est requis pour les requêtes HTTPS. Définissez à la fois le port local et le port public sur 443 , et encore une fois, l’adresse IP locale sur l’adresse IP de votre Pi.

Enfin, vous avez besoin d’un port ouvert pour les requêtes SSH vers votre serveur Git. Définissez les ports local et public sur 222 et l’adresse IP locale sur l’adresse IP de votre Pi.

Vous utiliserez Certbot pour obtenir des certificats et des clés de sécurité. Ajoutez le référentiel Certbot, mettez à jour, puis installez Certbot :

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

Changez de répertoire et créez un nouveau fichier avec nano :

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

Dans le nouveau fichier, collez ce qui suit, en veillant à copier dans votre propre nom de domaine :

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

Enregistrez et quittez nano avec Ctrl + O , puis Ctrl + X , et activez votre nouveau fichier conf avec :

sudo a2ensite gitea.conf

Redémarrez Apache :

sudo service apache2 restart

Exécutez Certbot avec :

sudo certbot

…et sélectionnez votre nom de domaine dans une liste. Certbot récupérera et installera les certificats et les clés. Lorsque vous revenez à l’invite, redémarrez à nouveau Apache :

sudo service apache2 restart

Configuration de l’instance Gitea

Vous pouvez maintenant visiter votre instance Gitea dans un navigateur avec à l’adresse https://votre-nom-de-domaine.tld . Vous pourrez définir le type de base de données, le mot de passe et d’autres variables dans la première section. Ce seront les valeurs que vous avez spécifiées dans votre fichier docker-compose et devraient déjà être renseignées, il n’est donc pas nécessaire de les modifier.

Dans les paramètres généraux , définissez le titre du site sur un titre approprié, le domaine du serveur doit être votre nom de domaine et le port du serveur SSH doit être défini sur 222 . L’URL de base doit être votre nom de domaine, y compris « HTTPS:// ».

Lorsque vous avez terminé, appuyez sur le gros bouton bleu Installer Gitea . Vous serez accueilli par une grande tasse de thé vert, et quel que soit le nom et la limace que vous avez donnés à l’instance. Pour créer votre premier utilisateur, cliquez sur s’inscrire en haut à droite de la page, puis entrez vos coordonnées. Toutes nos félicitations!

Pour empêcher quiconque d’enregistrer et d’héberger ses propres référentiels sur votre serveur Git, vous devez modifier le fichier app.ini . Si vous avez initialement créé votre répertoire gitea dans le répertoire / (racine), saisissez :

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

Faites défiler jusqu’à la section service et définissez DISABLE_REGISTRATION sur true.

enregistrement de gitea diable défini sur true

Enregistrez et quittez nano avec Ctrl + O , puis Ctrl + X, puis redémarrez vos conteneurs :

docker-compose downdocker-compose up -d

Utiliser Gitea

Si vous avez déjà utilisé GitHub, vous serez instantanément chez vous à Gitea. Une fois connecté, vous verrez qu’aucun dépôt n’est disponible. Créez-en un en cliquant sur le signe + vers la droite de la page, et donnez-lui un nom sensé.

création initiale du référentiel gitea

Vous pouvez choisir de rendre le référentiel privé en cochant la case ou de le laisser ouvert au monde entier. Cochez la case pour initialiser avec un fichier readme, puis cliquez sur Create Repository pour créer votre premier référentiel ! Vous pouvez apporter et valider des modifications, télécharger des fichiers et modifier comme s’il s’agissait de GitHub.

Cliquez sur SSH pour copier l’adresse, et vous ne pourrez pas cloner les référentiels sur votre machine locale, recevant une erreur : « Veuillez vous assurer que vous disposez des droits d’accès corrects et que le référentiel existe » à la place. Vous devez d’abord ajouter la clé SSH de votre machine locale à Gitea. Pour ce faire, copiez la sortie de :

cat ~/.ssh/id_rsa.pub

Dans votre interface web Gitea, cliquez sur votre photo de profil, puis choisissez paramètres > Clés SSH/GPG . Cliquez sur Ajouter une clé et collez la clé que vous venez de copier.

ajouter une clé ssh à gitea

Vous pouvez désormais interagir avec votre propre référentiel Git sur votre propre serveur Git sur votre propre Raspberry Pi !

Utilisez votre instance Gitea pour créer des projets logiciels impressionnants

Git est un outil génial pour collaborer sur des projets incroyables, mais même sans équipe, il est fantastique pour organiser votre propre flux de travail et créer de fabuleux logiciels ou configurations. Utilisez-le pour vous aider à garder une trace de vos fichiers lorsque vous apprenez un nouveau langage de programmation ou personnalisez votre système de bureau pour qu’il soit le meilleur possible.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *