[Tutoriel] Installer YunoHost sur WSL2 (pour les test en local)

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 fichier resolv.conf est 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.

3 Likes