La gestion du code source à travers différentes plateformes et appareils peut s'avérer complexe et fastidieuse sans un système de contrôle de version centralisé. Cet article détaille les étapes pour transformer un routeur ASUS, équipé du firmware Merlin, en un serveur Git personnel. Cette solution légère et à faible consommation est idéale pour un environnement domestique, éliminant le besoin d'un serveur dédié.
Prérequis Matériels et Logiciels
- Un routeur ASUS compatible avec le firmware Merlin (par exemple, un RT-AC86U). D'autres modèles prenant en charge Merlin devraient également fonctionner.
- Le firmware Merlin (version 386 ou ultérieure, officielle ou modifiée).
- Une clé USB formatée en
ext4, dédiée au stockage des dépôts Git. - Un client SSH (comme PuTTY, OpenSSH via terminla Linux/macOS, ou Xshell) pour accéder au routeur.
Configuration Initiale du Routeur
Mise à Jour du Firmware
Commencez par flasher votre routeur avec le firmware Merlin. Naviguez vers la section d'administration système du panneau de configuration web de votre routeur et utilisez l'option de mise à jour du firmware. Assurez-vous d'utiliser une version 386 ou supérieure.
Activation de l'Accès SSH
Pour interagir avec le routeur via la ligne de commande, l'accès SSH doit être activé. Rendez-vous dans les paramètres système de l'administration et activez le serveur SSH. Notez que sur certaines versions de firmware, modifier ces paramètres peut nécessiter de changer temporairement le nom d'utilisateur administrateur ou de résoudre d'autres invites.
Vérification du Centre Logiciel (Software Center)
Le Centre Logiciel est crucial pour l'installation d'Entware. Vérifiez qu'il fonctionne correctement. Si vous rencontrez des problèmes, comme une mise à jour bloquée, des ressources en ligne fournissent des étapes pour initiailser manuellement le centre.
Préparation de la Clé USB
- Formatage : Formatez votre clé USB au système de fichiers
ext4. C'est essentiel pour la compatibilité avec Linux et pour une gestion correcte des permissions de fichiers. - Insertion et Vérification : Insérez la clé USB dans le port approprié de votre routeur. Vous pouvez vérifier qu'elle est correctement montée et formatée en installant une application comme "Mémoire virtuelle" (Virtual Swap) via le Centre Logiciel, qui affiche souvent l'état des périphériques de stockage. Le chemin de montage est généralement sous
/tmp/mnt/sda.
Installation d'Entware
Entware est un gestionnaire de paquets pour les systèmes embarqués Linux, nécessaire pour installer Git. Accédez au Centre Logiciel de votre routeur et installez Entware en suivant les invites. L'installation prend quelques minutes et des journaux de fin d'installation s'afficheront dans l'interface.
Installation de Git
Une fois Entware opérationnel, connectez-vous au routeur via SSH en utilisant vos identifiants administrateur du routeur.
Exécutez les commandes suivantes pour mettre à jour les listes de paquets et installer Git :
opkg update
opkg install git
Pour vérifier que Git a été installé avec succès, tapez :
git --version
La sortie devrait afficher la version de Git installée, par exemple :
admin_routeur@RT-AC86U-XXXX:/tmp/mnt/sda/entware # git --version
git version 2.33.0
Initialisation du Serveur Git
Nous allons maintenant créer un dépôt Git nu (bare repository) qui servira de serveur.
# Définir le répertoire de base pour tous vos dépôts Git
GIT_ROOT_DIR="/opt/srv/git_repos"
# Créer le répertoire s'il n'existe pas et s'y déplacer
mkdir -p "${GIT_ROOT_DIR}"
cd "${GIT_ROOT_DIR}"
# Initialiser un nouveau dépôt nu pour votre projet (exemple : 'mon_premier_projet')
git init --bare mon_premier_projet.git
# Ajuster les permissions pour permettre l'accès en lecture/écriture
chmod -R 755 mon_premier_projet.git
Ensuite, modifiez le fichier de configuration de votre nouveau dépôt. Accédez au répertoire du dépôt et éditez le fichier config :
cd mon_premier_projet.git
vi config
Ajoutez ou modifiez les sections suivantes dans le fichier config :
[core]
repositoryformatversion = 0
filemode = true
bare = true
sharedrepository = true
[receive]
denyNonFastForwards = true
Enregistrez et quittez l'éditeur vi (appuyez sur Esc, puis tapez :wq et Entrée).
Test du Serveur Git
À ce stade, votre serveur Git est opérationnel. Vous pouvez le tester depuis un client local (votre ordinateur).
Sur votre machine locale, ouvrez un terminal et essayez de cloner le dépôt :
git clone admin_routeur@192.168.50.1:/opt/srv/git_repos/mon_premier_projet.git
Remplacez admin_routeur par votre nom d'utilisateur SSH pour le routeur et 192.168.50.1 par l'adresse IP réelle de votre routeur. Un mot de passe vous sera demandé. Après avoir fourni le mot de passe, le dépôt devrait être cloné localement. Si le clonage réussit, les opérations push fonctionneront également. Pour plus de commodité, vous pouvez configurer l'authentification par clé SSH afin d'éviter de saisir le mot de passe à chaque opération.