Sur WSL
Cette configuration est principalement destinée aux tests locaux par des utilisateurs avancés. En raison des limitations de WSL (notamment le changement d'adresse IP), l'auto-hébergement à partir de celui-ci peut s'avérer délicat et ne sera pas décrit ici.
Pré-requis
- Windows 10 et versions ultérieures
- Droits d'administration
- Sous-système Windows pour Linux, installé à partir du menu Fonctionnalités facultatives de Windows
- Recommandé : application Windows Terminal (Preview), installée à partir du Microsoft Store. Bien meilleure que le terminal standard, car elle offre des raccourcis vers les distributions WSL.
Introduction
WSL est une fonctionnalité intéressante de Windows 10 qui permet d'utiliser des pseudo-distributions Linux via la ligne de commande. Nous parlons ici de pseudo-distributions, car même si elles ne sont pas vraiment comparables à des machines virtuelles, elles s'appuient sur des capacités de virtualisation qui rendent leur intégration à Windows presque transparente. Docker pour Windows peut désormais s'appuyer sur WSL plutôt que sur Hyper-V, par exemple.
Gardez à l'esprit que cette configuration n'est en aucun cas un conteneur de quelque sorte que ce soit. Si quelque chose ne fonctionne plus, il n'y a aucune possibilité de restauration.
Vous devrez peut-être supprimer complètement la distribution Debian et la restaurer dans son intégralité.
Installer Debian
Installons YunoHost dans sa version telle qu'elle est distribuée, sans la modifier et en gardant celle par défaut. Et cela dans un terminal PowerShell :
# Let's go in your home directory and prepare the working directories
cd ~
mkdir -p WSL\YunoHost
# Download the Debian appx package and unzip it
curl.exe -L -o debian.zip https://aka.ms/wsl-debian-gnulinux
Expand-Archive .\debian.zip -DestinationPath .\debian
# Import the Debian base into a new distro
wsl --import YunoHost ~\WSL\YunoHost ~\debian\install.tar.gz --version 2
# Cleanup
rmdir .\debian -R
Vous pouvez désormais y accéder en exécutant : wsl.exe -d YunoHost
Il s'agit de Debian 9 Stretch, donc mettons-la à jour :
# In WSL
sudo sed -i 's/stretch/bookworm/g' /etc/apt/sources.list`
sudo apt update
sudo apt upgrade
# optional
sudo apt full-upgrade
# wget needed for later setup
sudo apt install wget -y
Empêcher WSL de modifier les fichiers de configuration
Modifiez le fichier /etc/wsl.conf et ajoutez-y le code suivant :
[network]
generateHosts = false
generateResolvConf = false
Forcer l'utilisation d'iptables-legacy
YunoHost utilise désormais nftables, ces instructions sont peut-être obsolètes.
Pour une raison quelconque, la post-installation de YunoHost n'apprécie pas nf_tables, le nouveau logiciel qui remplace iptables.
Nous pouvons toutefois continuer à utiliser explicitement le bon vieux iptables :
# In WSL
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
Installer Systemd
Debian sur WSL ne dispose pas de systemd, un gestionnaire de configuration de services.
Il s'agit d'un élément clé pour YunoHost, et pour toute distribution Debian digne de ce nom (sérieusement MS, c'est quoi ce caillon). Installons-le :
- Installez le runtime dotNET :
# In WSL
wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt update
sudo apt install -y apt-transport-https
sudo apt update
sudo apt install -y dotnet-sdk-3.1
- Installez Genie :
# In WSL
# Add their repository
echo "deb [trusted=yes] https://wsl-translinux.arkane-systems.net/apt/ /" > /etc/apt/sources.list.d/wsl-translinux.list
# Install Genie
sudo apt update
sudo apt install -y systemd-genie
Installer YunoHost
# In WSL
# Let's switch to the root user, if you were not already
sudo su
# Initialize the Genie bottle to have systemd running
genie -s
# Your hostname should have been appended with "-wsl"
Lancez le script d'installation
- Ouvrez un terminal sur votre serveur (soit directement, soit via SSH)
- Assurez-vous d'être
root(ou tapezsudo -ipour devenirroot) - Puis lancez la commande suivante :
curl https://install.yunohost.org | bash
Assurez-vous toujours qu'il y ait un s à https.
Il vous faudra peut-être installer curl at ca-certificates avec la commande suivante:
apt install curl ca-certificates
Pour les personnes avancées qui ne sont pas convaincues par l'approchecurl | bash vous pouvez lire cet article "Is curl|bash insecure?" du bloq de Standstorm, et possiblement cette discussions sur Hacker News.
Accéder à la ligne de commande
Appelez toujours genie -s lors du démarrage de votre distribution.
wsl -d YunoHost -e genie -s
Sauvegarder et restaurer la distribution
Effectuez votre première sauvegarde de la distribution
Comme indiqué précédemment, il n'existe aucune fonctionnalité de restauration. Exportons donc votre nouvelle distribution. Dans PowerShell :
cd ~
wsl --export YunoHost .\WSL\YunoHost.tar.gz
En cas de panne, supprimez et restaurez l'intégralité de la distribution
cd ~
wsl --unregister YunoHost
wsl --import YunoHost .\WSL\YunoHost .\WSL\YunoHost.tar.gz --version 2
Lancer la configuration initiale
Si vous êtes en train de restaurer une sauvegarde YunoHost, vous devez sauter cette étape et vous référer à la section Restaurer durant la post-installation à la place de cette étape de configuration initiale.
Cette documentation suppose que vous êtes sur le même réseau local que votre YunoHost.
Pour un VPS, utilisez l'adresse IP publique au lieu du domaine ou adresse locale.
- Depuis la webadmin
- Depuis la ligne de commande
Depuis un ordinateur, ouvrez un navigateur et tenter d'accéder à la webadmin:
- si vous installez sur un VPS, vous avez probablement utilisé la méthode d'installation basée sur
curl | bash, et le script aurait du vous pointer vers l'adresse, typiquementhttps://xx.xx.xx.xx(avec l'IPv4 publique du serveur) - si vous installez à la maison, et en supposant que vous êtes sur le même réseau local que le serveur
- vous pouvez tenter d'ouvrir https://yunohost.local (ceci peut ou peut ne pas fonctionner en fonction de si votre machine et réseau supporte le protocole Bonjour)
- si vous connaissez déjà l'IP locale du serveur, allez sur
https://xx.xx.xx.xx(avec l'IP locale, typiquement qui commence par192.168.) - autrement, il vous faut trouver l'IP locale du serveur pour continuer.
Lors de la première visite, vous rencontrerez très probablement un avertissement de sécurité lié au certificat utilisé. Pour le moment, votre serveur utilise un certificat auto-signé. Vous pourrez plus tard ajouter un certificat automatiquement reconnu par les navigateurs comme décrit dans la page sur les certificats. En attendant, ajoutez une exception de sécurité pour accepter le certificat actuel. (Toutefois, s'il vous plaît, ne prenez pas l'habitude d'accepter ce genre d'alerte de sécurité !)
Vous devriez arriver sur cette page:

Vous pouvez aussi lancer la post-installation avec la commande yunohost tools postinstall directement sur le serveur ou via SSH.

Domaine principal
Configuration spécifique WSL
Vous devrez choisir un faux nom de domaine, car il ne sera pas accessible de l'extérieur.
Par exemple, ynh.wsl. L'étape compliqué est d'exposer ce nom de domaine à votre hôte.
Éditez le fichier C:\Windows\System32\drivers\etc\hosts. Vous devriez avoir une ligne commençant par ::1, créez la si elle n'existe pas, et rajoutez votre domaine à la fin:
::1 ynh.wsl localhost
Si vous voulez des sous-domaines, n'oubliez pas de les y rajouter auss dans le fichier hosts:
::1 ynh.wsl subdomain.ynh.wsl localhost
C’est le nom de domaine qui permettra l’accès à votre serveur ainsi qu’au portail d’authentification des utilisateurs. Vous pourrez ensuite ajouter d'autres domaines, et changer celui qui sera le domaine principal si besoin.
- Si l'auto-hébergement est tout nouveau pour vous, et que vous n'avez pas encore de nom de domaine, nous recommandons d'utiliser un domaine en .nohost.me / .noho.st / .ynh.fr (exemple :
homersimpson.nohost.me). S'il n'est pas déjà utilisé, le domaine sera automatiquement rattaché à votre serveur, et vous n’aurez pas d’étape de configuration supplémentaire. Toutefois, notez que l'utilisation d'un de ces noms de domaines implique que vous n'aurez pas le contrôle complet sur votre configuration DNS. - Si vous disposez déjà d'un nom de domaine, alors vous voulez probablement l'utiliser ici. Il vous faudra plus tard configurer les enregistrements DNS comme expliqué ici.
Oui, vous devez configurer un nom de domaine. Si vous n'avez pas de nom de domaine et que vous n'en voulez pas en .nohost.me, .noho.st ou .ynh.fr, vous pouvez utilisez un « faux » domaine comme par exemple yolo.test et modifier votre fichier /etc/hosts sur votre ordinateur local pour que ce domaine pointe vers l'IP de votre serveur, comme expliqué ici.
Premier compte utilisateur⋅ice
Le premier compte utilisateur est créé à cette étape. Il vous faudra choisir un nom d'utilisateur et un mot de passe raisonablement complexe. (Nous ne pouvons que souligner l'importance du choix d'un mot de passe robuste !) Ce compte utilisateur sera ajouté au groupe Admins, et pourra se connecter au portail utilisateur, à la webadmin, et se connecter via SSH ou SFTP. Les admins recevront aussi les mails envoyés à root@votredomaine.tld et admin@votredomaine.tld : ces emails peuvent être utilisés pour envoyer des informations ou des alertes techniques. Vous pourrez plus tard ajouter d'autres comptes supplémentaires, qu'il est aussi possible d'ajouter au groupe Admins.
Ce compte remplace l'ancien compte admin, qui est peut être toujours mentionné dans certaines pages de documentation. Dans ce cas, remplacez simplement admin par votre identifiant.
Lancer le diagnostic
Une fois la postinstall terminée, vous devriez pouvoir vous connecter à la webadmin en utilisant les identiants du premier compte que vous venez de créer.
Le système de diagnostic est conçu comme un moyen facile de valider que tous les aspects critiques de votre serveur sont proprement configurés et pour vous guider dans la résolution des problèmes soulevés. Le diagnostic se lance deux fois par jour et envoie une alerte par email si un dysfonctionnement est détecté.
Ne partez pas en courant ! La première fois que vous lancerez le diagnostic, il est assez normal d'avoir plusieurs alertes rouges ou jaunes car vous devez généralement configurer les enregistrements DNS (si vous n'utilisez pas un domaine .nohost.me, .noho.st ou .ynh.fr), ajouter un fichier de swap ainsi que configurer la redirection des ports sur votre box.
Si une alerte n'est pas pertinente (par exemple parce que vous ne pensez pas utiliser une fonctionnalité spécifique), il est tout à fait convenable d'indiquer le dysfonctionnement comme « À ignorer » en allant dans l'administration web > Diagnostic, et en cliquant sur le bouton « Ignorer » pour ce dysfonctionnement spécifique.
Notamment, les installations WSL ou sur machines virtuelles ne seront généralement pas accessibles de l'extérieur sans une configuration réseau avancée sur Virtualbox et son hôte.
- (Recommandé) Depuis l'interface web
- Depuis la ligne de commande
Pour lancer le diagnostic, allez dans la webadmin, dans la partie Diagnostic. Vous devriez obtenir un écran comme celui-ci :

yunohost diagnosis run
yunohost diagnosis show --issues --human-readable
Obtenir un certificat Let's Encrypt
Une fois que vous avez configuré, si nécessaire, les enregistrements DNS et la redirection de ports, vous devriez être en mesure d'installer un certificat Let's Encrypt. Ceci permettra de supprimer l'effrayante alerte de sécurité vue plus tôt.
Pour plus d'instructions détaillées, ou pour en savoir plus à propos des certificats SSL/TLS, voir la page correspondante ici.
- Depuis la webadmin
- Depuis la ligne de commande
Allez dans Domaines > le domaine concerné > Certificat

yunohost domain cert install
🎉 Félicitations !
Vous avez maintenant un serveur plutôt bien configuré. Si vous découvrez YunoHost, nous vous recommandons de jeter un œil à la visite guidée. Vous devriez aussi être en mesure d'installer vos applications favorites. N'oubliez pas de prévoir des sauvegardes !