Bonjour,
Je me suis récemment lancé dans l’installation de YunoHost sur WSL2 pour monter un petit serveur de test local.
J’ai un peu ramé avec le conflit sur le port 53 (lié au service sharedaccess le service de partage de connexion Internet de Windows).
Ça bloque la config de dnsmasq et l’empêche de démarrer correctement.
Je ne sais pas si c’est un problème courant ou si c’est une particularité de ma config.
Après pas mal de tâtonnements, j’ai réussi à trouver une méthode qui a fonctionnée pour moi.
Je ne sais pas si c’est une bonne approche, mais ça fait le job pour des tests en local.
Si ça peut servir…
Les retours, commentaires et corrections sont évidemment bienvenus !
Guide d’Installation de YunoHost sur WSL2
Phase 1 : Préparation de l’environnement WSL
1.1 Création de l’instance Debian
Installer Debian sur WSL2.
wsl --install -d Debian --name <NomDeVotreInstance>
1.2 Configuration de base
Connectez-vous à votre nouvelle instance,
wsl -d <NomDeVotreInstance>
Mettre à jour le système et installation de curl.
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl
1.3 Configuration de l’instance WSL
Fichier wsl.conf
Systemd est maintenant prise en charge dans WSL2 (2022) (cf. tuto Yunohost sur WSL).
Il est activé par défaut dans wsl.conf.
cat /etc/wsl.conf pour vérifier.
[boot]
systemd=true
Empêcher WSL de modifier les fichiers de configuration et ajouter le nom d’hôte.
sudo tee /etc/wsl.conf > /dev/null <<'EOF'
[boot]
systemd=true
[network]
hostname = <NomDeVotreInstance>
generateHosts = false
generateResolvConf = false
EOF
Configuration du fichier hosts
Associer le nom d’hôte à l’adresse de loopback locale.
sudo sed -i '/^127\.0\.1\.1/d' /etc/hosts
echo "127.0.1.1 <nomdevotreinstance>.local <nomdevotreinstance>" | sudo tee -a /etc/hosts
Configuration et verrouillage de resolv.conf
Après avoir désactivé la génération automatique du /etc/resolv.conf par WSL, il faut définir manuellement les serveurs DNS.
Note :
Ici ce sont les adresses IP des résolveurs DNS mis à disposition par DNS0.EU plutôt que ceux de Google (8.8.8.8) ou Cloudflare (1.1.1.1).
sudo rm /etc/resolv.conf
sudo tee /etc/resolv.conf > /dev/null <<'EOF'
nameserver 193.110.81.0
nameserver 185.253.5.0
EOF
sudo chattr +i /etc/resolv.conf
Note :
À confirmer si le verrouillage du fichierresolv.confest réellement nécessaire
1.4 Redémarrage de l’instance WSL (depuis PowerShell)
Fermez votre session WSL.
Dans PowerShell :
wsl --shutdown
Puis, redémarrez votre instance :
wsl -d <NomDeVotreInstance>
Phase 2 : Correction et Finalisation de YunoHost (dans WSL)
2.1 Installation YunoHost initiale (dans WSL)
Assurez-vous que vous êtes root (ou tapez sudo -i pour devenir root).
Info :
Cette installation initiale échoue et se termine avec des erreurs.
Elles sont liées à l’utilisation du port 53 par sharedaccess (le service de partage de connexion internet de Windows) et empêchent dnsmasq de démarrer.
Exécuter la commande pour installer Yunohost.
curl https://install.yunohost.org | sudo bash
2.2 Correction du template dnsmasq.conf.tpl
Modifier le template par défaut de dnsmasq fourni par YunoHost.
sudo tee /usr/share/yunohost/conf/dnsmasq/dnsmasq.conf.tpl > /dev/null <<'EOF'
domain-needed
expand-hosts
localise-queries
bind-interfaces
listen-address=127.0.0.1
resolv-file=/etc/resolv.dnsmasq.conf
cache-size=256
conf-dir=/etc/dnsmasq.d
EOF
2.3 Réparation des paquets et installation des paquets manquants
La modification du template pour dnsmasq va permettre de corriger les erreurs de la première tentative.
Il faut également relancer l’installation des paquets manquants yunohost-admin et yunohost-portal qui n’ont pas pu être installés à la première tentative en raison de l’arrêt prématuré du script d’installation.
sudo apt --fix-broken install -y
sudo apt install -y yunohost-admin yunohost-portal
2.3. Post-installation YunoHost
On peut enfin passer à la post-installation de Yunohost.
sudo yunohost tools postinstall
Pour le domaine, vous pouvez utiliser <nomdevotreinstance>.local que vous avez configuré lors de la phase 1.
2.4. Diagnostic
Une fois la post-installation terminée, vous pouvez lancer un diagnostic pour vérifier l’état du système :
sudo yunohost diagnosis run
sudo yunohost diagnosis show --issues --human-readable
Remarque :
Le diagnostic YunoHost va signaler un certain nombre de problèmes attendus (Fail2ban, ports, IPv6, mail, backports).Mais comme annoncé dans la documentation WSL de Yunohost, cette configuration est “principalement destinée aux tests locaux par des utilisateurs avancés. En raison des limitations du côté de WSL, l’auto-hébergement à partir de celui-ci n’est pas recommandé”.
Votre instance YunoHost devrait maintenant être accessible via https://<nomdevotreinstance>.local depuis un navigateur.