Du FOSS, de l'auto-hébergement et du code !
YunoHost : l’auto-hébergement pour les nuls !
YunoHost : l’auto-hébergement pour les nuls !

YunoHost : l’auto-hébergement pour les nuls !

YunoHost est le couteau suisse du non-administrateur système, un outil puissant pour les néophytes de l’auto-hébergement. Le déploiement de services devient littéralement à portée de clic.

N’étant pas admin, je passe mon temps à bidouiller et à fouiller jusqu’à ce que ça tombe en marche. C’est très intéressant et je vous invite fortement à mettre les mains dans le cambouis : il n’y a pas mieux pour apprendre les rudiments des commandes Linux, Nginx et les bases du réseau.

Plus jeune, je jouais beaucoup avec les VServer, c’était l’aube des micro-conteneurs (un Chroot avec une carte réseau en gros, l’ancêtre de Docker/LXC…). J’ai aussi beaucoup utilisé Proxmox pour créer un équivalent avec de la virtualisation.

Finalement, les distributions pour les NAS étaient souvent celles qui se rapprochaient le plus de YunoHost, OpenMediaVault et autres TrueNAS avaient un large choix de services à installer et au besoin, je pouvais y ajouter du Docker. Je m’attendais d’ailleurs à voir émerger une solution à base de Docker (ou autre ! Mais peut-être que ça existe ?). Ce n’est pas le cas ici et c’est peut-être tant mieux !

Présentation

YunoHost (de l’argot Internet anglais « Y U NO Host » signifiant approximativement « Pourquoi toi ne pas héberger ») est donc une distribution basée sur Debian qui dispose :

  • LDAP pour la gestion des utilisateurs
  • serveur DNS pour exposer vos noms de domaines
  • Nginx pour exposer les pages web
  • des interfaces (cli et web) pour interagir avec tout cela
  • du SSO pour l’authentification unifiée
  • un serveur de mail
  • un serveur XMPP pour la messagerie instantanée (Prosody)
  • des systèmes de sécurité
  • et on ajoute à ça un grand catalogue d’applications !

Installation

Je considère ici que vous avez une Debian 11 toute fraîche et à jour (vous pouvez en obtenir une gratuitement : https://picman.blog/2023/10/19/obtenez-un-bout-dinternet-gratuitement-vps-oracle-free-tier-sous-debian).

sudo -i
apt update
apt upgrade 
curl https://install.yunohost.org | bash

Ajout de swap (si besoin)

Dans les petits serveurs Oracle, il n’y a qu’1Go de RAM, ce qui n’est pas suffisant. On va donc ajouter du swap pour simuler de la mémoire (qui sera finalement stockée sur le disque dur lorsque la mémoire vive est saturée).

Source : https://wiki.archlinux.org/title/Swap_(Fran%C3%A7ais)

# 2Go
dd if=/dev/zero of=/swapfile bs=1M count=2k status=progress
# permissions
chmod 0600 /swapfile
# format
mkswap /swapfile
# activate
swapon /swapfile

Il faut éditer le fichier /etc/fstab pour le rendre persistant au redémarrage. Ajoutez en fin de fichier la ligne suivante :

/swapfile none swap defaults 0 0

Nous pouvons aussi compresser la RAM :

sudo apt install zram-tools

https://www.linuxtricks.fr/wiki/zram-compresser-la-ram-au-lieu-de-swapper-sur-linux

Post installation

Dans mon cas, j’ai dû ouvrir les ports 80 (HTTP) et 443 (HTTPS) du firewall de ma machine pour accéder à la post installation version web via cette adresse : https://{ipv4}/yunohost/admin/#/postinstall

Sinon, en ligne de commande : yunohost tools postinstall

Vous allez devoir choisir votre nom de domaine et créer un premier utilisateur. Si vous n’avez pas acheté de DNS, YunoHost propose des DNS gratuits en .nohost.me, .noho.st ou .ynh.fr. Donc l’URL picman.ynh.fr aurait marché également lors de la post installation.

Votre interface d’admin est donc https://{IPv4}/yunohost/admin ou votre URL si vos DNS sont correctement configurés.

https://yunohost.org/fr/install/hardware:vps_debian

Gestion des utilisateurs

YunoHost propose une gestion des utilisateurs basée sur un LDAP et implémente un SSO pour unifier la connexion des utilisateurs aux différentes applications. Outre la gestion d’utilisateur, il existe aussi une gestion des autorisations et des groupes pour définir finement qui a accès à quoi.

https://yunohost.org/fr/users

Gestion des DNS et Let’s Encrypt

Pour la création d’un nom de domaine, nous aurons le choix entre :

  • un domaine qui vous appartient
  • un domaine fourni par YunoHost (*.nohost.me, *.noho.st ou *.ynh.fr : 1 par instance)
  • un domaine local

Une fois le domaine créé, il faut mettre à jour la table DNS de votre registar (fournisseur de domaine). L’onglet DNS de votre domaine principal comporte les lignes que vous devez ajouter.

Si vous êtes chez Gandi (https://yunohost.org/registar_api_gandi), vous pouvez créer une clé d’API pour laisser YunoHost pousser les entrées DNS lui-même. Rendez-vous sur https://account.gandi.net, cliquez sur Authentication options :

Il faut ensuite générer une API Key :

Il faut renseigner la clé d'API dans l’onglet DNS du domaine principal, Jeton d'authentification :

Sinon, il faut éditer manuellement le Zone DNS de votre registar conformément à ce que YunoHost vous propose ci-dessus.

Pour installer un certificat Let’s Encrypt (et ainsi activer le HTTPS sur votre domaine), il faut aller dans l’onglet Certificate :

YunoHost se chargera de renouveler le certificat (ici dans 79j).

https://yunohost.org/fr/dns_subdomains

https://yunohost.org/fr/dns_config

Applications

Un grand nombre d’applications sont packagées pour YunoHost, elles sont classées par catégorie et par qualité :

Selon l’application, plusieurs options vous seront proposées, le plus souvent :

  • un nom
  • le domaine de l’application
  • le chemin d’URL (https://{domaine}/{chemin})
  • le langage
  • un admin (si prise en charge du LDAP)
  • un mot de passe d’admin (si pas de LDAP)

Une fois l’application installée, elle va apparaître dans la liste, il faut savoir qu’il peut y avoir plus de configurations post-install :

Mise à jour

YunoHost propose une page pour gérer vos mises à jours de votre système (via APT) et de vos applications. Une sauvegarde sera créée avant pour pouvoir restaurer en cas d’échec.

Outils

YunoHost propose quelques outils pour administrer votre serveur :

  • journaux : une vue pour visualiser les différentes opérations effectuées sur le serveur
  • migrations : liste les migrations internes à YunoHost, effectuées et à venir
  • services : visualise l’état des services démarrés
  • pare-feu : permet d’ouvrir ou de fermer des ports
  • paramètres de YunoHost : mot de passe admin, config SSH, config Mail…
  • paramètres de l’interface de YunoHost : langage, thème…
  • arrêter / redémarrer

Auto-diagnostic

Il est capable de détecter les problèmes de configuration, il y a plusieurs catégories de diagnostics :

  • système de base : architecture, distribution et APT.
  • connectivité internet : IPv4 / IPv6
  • enregistrement DNS : entrées DNS correctement renseignées dans le registar
  • exposition des ports : vérification de l’ouverture effective des ports
  • web : domaines accessibles depuis l’extérieur
  • email
  • état des services
  • ressources système : pour s’assurer que le serveur dispose de ressources suffisantes
  • configuration système
  • applications

Sauvegarde

YunoHost dispose d’un système de sauvegarde puissant. J’ai déjà restauré une sauvegarde complète sur un serveur YunoHost tout neuf et tout c’est merveilleusement bien passé : les utilisateurs ont leurs données, les DNS, les certificats, les courriels et les applications ont tous été restaurés correctement.

La sauvegarde peut aussi être unitaire (système, application).

Conclusion

J’espère que ça vous donnera envie de vous auto-héberger, que ce soit pour votre famille ou pour devenir un Chaton. Si vous avez besoin d’aide, YunoHost est développé par des Français et leur documentation très bien écrite. N’hésitez pas à poser vos questions sur le forum ou à les contacter.

2 commentaires

Laisser un commentaire

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