yunohost

Créer son chaton avec YunoHost

Ce document a pour but de permettre à des personnes, avec ou sans grandes connaissances techniques, de réussir à héberger des services et à créer un chaton avec la distribution YunoHost et via une configuration serveur relativement simple. La seule limitation étant que ce chaton ne pourra pas aller au delà de 500 (peut être 1000) usagers.

YunoHost est une distribution dérivée de debian initialement destinée à l'auto-hébergement de particulier. Son objectif premier est de démocratiser la pratique de l'auto-hébergement en simplifiant la gestion d'un serveur le plus possible, de sorte que des personnes, à l'aise avec leur ordinateur personnel mais sans grandes connaissances, puissent réussir à déployer et maintenir des services.

Plus le temps passe et plus le projet s'élargit à des instances plus grosses, dans le but de viser les petites et moyennes communautés (famille large, chatons, associations, écoles, entreprises, etc.). Il s'agit là d'une volonté affirmée de la communauté et des contributeurices YunoHost qui sont pour beaucoup actifs et actives dans des chatons, des FAI associatifs ou qui l'installent pour des communautés plus ou moins grandes. Pour donner un ordre d'idée, l'instance la plus grosse connue fin 2020 est une instance avec 500 comptes YunoHost.

Pour en savoir plus: https://yunohost.org https://yunohost.org/#/apps et https://forum.yunohost.org

Didactique

De nombreuses personnes découvrent les notions nécessaire à l'auto-hébergement de façon progressive et didactique grâce à ce projet. Il y aune vraie volonté d'expliquer, documenter et de fluidifier le parcours (autant que possible.

Gain de temps

YunoHost est un énorme gain de temps, comparé à des déploiements manuels. La philosophie du projet et de pré-configurer les apps tels que les personnes souhaitent en général qu'elles soient configurées (avec quelques options simples de configuration). De nombreuses personnes ayant pratiquées l'auto-hébergement puis abandonnées, y sont revenus en constatant le gain de temps que permet le projet.

La plupart des applications visées par les chatons (hors BBB et jitsi) sont empaqueter avec un haut niveau d'intégration (backup/restauration/sso/mise à jour automatisées…).

YunoHost permet en plus de monter de version majeur en quelques clics via l'administration web (ou en cli si on préfère).

Mail out of the box

YunoHost déploie un serveur mail avec une configuration prête à l'emploi et accompagne l'administrateur ou l'administratrice avec un système de diagnostique puissant permettant de détecter les blacklistage, les problèmes de configuration DNS, de qualité d'IP… Ceci dans le but de maximiser les chances de réceptions des mails envoyés.

Même si vous ne prévoyez pas de proposer des boites mail, il vous faudra probablement envoyer des mails (certains services le demandes, gestion interne de votre chaton, etc.).

Expérience utilisateur/utilisatrice

Le portail utilisateur permet de s'authentifier avec un compte unique sur la plupart des apps et eprmet de changer son mot de passe et ses alias/redirection mail.

Un mécanisme d'auto configuration pour les clients mails est implémenté.

Gestion des accès

Un système de groupe et de permission permet de gérer massivement les droits d'accès et de paramétrer les applications en accès libres ou non.

Il est par ailleurs possible d'héberger plusieurs communautés distinctes via des noms de domaines différents (multi-tenant) avec certaines limitations tout de même.

Fiabilité

YunoHost est muni d'un système de sauvegarde/restauration puissant capable de déterminer automatiquement ce qu'il faut sauvegarder et en mesure de redéployer le serveur en l'état à partir d'une installation neuve et de l'archive de sauvegarde. Le retour à la normale est donc facilité en cas de pépin et on peut ainsi faire le choix écologique de réduire la redondance car on sait pouvoir remonter le service plus rapidement.

Un système de diagnostique et de monitoring intégré permet d'être prévenu en amont de tout un tas de risque ou de problème lié à l'instance déployée.

Le projet YunoHost pratique couramment les code review, et utilisent de multiple serveur pour l'intégration continue du projet (app&core).

Sécurité

Le projet YunoHost Distribution linux dont l'objet est de faciliter la mise en place d'un serveur étant de plus en plus connus de nombreuses questions de sécurité sont discutées sur les tickets. Les configurations sont débattues et des personnes implémentent régulièrement des correctifs de sécurité.

Bien que les services ne soient pas isolés dans des containers, les configurations systemd sont renforcées et de nombreux outils sont pré-configurés en fonction de ce que l'admin installe (filtre fail2ban, parefeu).

Portabilité matériel

YunoHost peut tourner sur des gros serveurs comme sur des cartes arm de 500Mo, dans des contextes verrouillés ou non, chez soi ou dans un datacenter. Ceci étant, pas de miracles, les ressources nécessaires seront dépendantes du nombre et du type d'apps déployées ainsi que de leur charge.

Un panneau de configuration permet d'optimiser les apps PHP pour une charge plus importantes.

Une machine de récup peut permettre de commencer il est aussi possible de migrer d'une architecture à l'autre sans difficulté.

Extensible

Il est possible d'écrire des hook pour étendre les actions de la webadmin et de la cli. YunoHost est également dotée d'une API qui peut être utilisée pour par exemple créer automatiquement des comptes depuis des outils externes.

Il est possible d'installer des applications non empaquetées comme si on le faisait sur une debian classique. Toutefois, il faut connaître nginx (apache est incompatible avec YunoHost) et manier ssowat (le sso qui gére les accès aux apps). Le résolveur dns interne qui permet d'éviter certains problèmes avec le hairpining peut aussi étonner parfois.

Il est également de personnaliser son serveur, toutefois plus on bidouille plus on prend des risques de créer un comportement imprévu. Un mécanisme de “regen-conf” permet de détecter les changements sur les fichiers gérés par YunoHost.

Il y a un mécanisme de thème pour le portail utilisateur, on peut aussi le bypass via une customwebapp et il est assez facile d'ajouter un menu sur toutes les apps en remplaçant l'overlay par un autre script js (comme le fait sans-nuage.fr).

Support

La communauté YunoHost est plutôt réactive et à un forum et des chats très vivants accessibles en français et en anglais majoritairement.

Passage à l'échelle

YunoHost est dans une logique mono-serveur. Ceci implique des limites en termes de charge (nombre d'usagers). Il reste toutefois possible d'installer YunoHost sur une VM proxmox portée par deux serveurs si on souhaite plus de redondance, mais ça ne règle pas la question de la charge.

Pour exemple, Nextcloud conseille des architectures multi serveurs au delà de 500 usagers.

Portabilité des données

Il n'existe pas pour l'heure de mécanisme permettant de migrer facilement les données d'un ou d'une utilisatrice précise vers un autre serveur, sauf à le faire manuellement. Ce challenge semble vraiment complexe pour de nombreuses apps (forum, etc.).

Les mises à jours dépendent des paquets YunoHost

La mise à jour se faisant via les paquets YunoHost, vos numéro de version seront dépendant de la version empaquetée. Il reste toutefois possible de contribuer aux paquets que l'on utilise.

Si vous êtes convaincu, la suite est là pour vous aider à déployer un chaton Membre du collectif CHATONS à l'image du chaton sans-nuage.fr qui mixe accès en libre service et accès réservé aux inscrits.

Il vous faudra choisir entre une ordinateur physique chez vous OU un serveur (vps/dédié) dans un datacenter.

L'hébergement “à la maison” présente des avantages et des inconvénient en terme de confidentialité et de sécurité des données. Pensez surtout si vous êtes un groupe à ce qu'il se passe si le membre qui héberge le serveur “disparaît”, est en vacances, perquisitionné, etc.

A la maison les vieux laptop sont pas mal (batterie, x8664, processeur, pile pour garder l'heure…), une carte ARM un peu pêchu peut faire l'affaire aussi.

Vous pouvez aussi décider de placer votre machine physique ou opter pour un serveur privé virtuel (VPS) dans un datacenter ou une baie associative de la Fédération FDN (Alsace Réseau Neutre, tetaneutral, Aquilenet, FAImaison…).

Enfin, il y a de nombreuses offres commerciales de VPS et de serveur dédié qui existent.

Peu importe le choix, il faut creuser un peu pour savoir si la connexion internet est neutre ou non et également sa performance.

* Pouvez-vous faire des redirections de port ? ouvrir le port 25 ? * Le reverse DNS peut-il être redéfinis (utile pour l'envoi de mail) ? * Performance en envoie ? en réception ? (attention à l'ADSL)

En cas de soucis sur les 2 premiers points, vous pouvez toujours souscrire un VPN respectant la neutralité du net et compatible avec l'app yunohost vpnclient format .cube (par exemple chez ARN).

Si votre connexion électrique n'est pas très stable et a des micro coupures, optez pour une batterie (les laptop sont bien pour ça) ou un onduleur.

YunoHost vous permet d'obtenir un sous domaine gratuit automatiquement configuré. Toutefois dans le cadre d'un chaton, vous devriez être totalement maitre de votre domaine (et choisir un domaine plus court).

Un conseil: évitez les accents, les caractères utf8 bizarres et les extensions trop peu courantes.

https://www.gandi.net/fr

Si vous n'avez pas la maîtrise totale du nom (DSI) vérifiez que vous pouvez générer des certificats Let's Encrypt avec `dig CAA VOTREDOMAINE.TLD` .

Maintenant que vous savez ce que vous voulez installer et où, il est temps de passer aux choses sérieuses:

Le plus simple est de flécher sur la documentation d'installation de YunoHost qui est plutôt claire.

Résumé des étapes proposées par la documentation:

  • Installer YunoHost (Note: Le chaton Alsace Réseau Neutre fournit des VPS pré-installés avec YunoHost vous permettant de sauter cette étape)
  • Accéder à la webadmin
  • Post-installation (ajout du nom de domaine, mot de passe administrateur)
  • Création du premier compte utilisateur (qui doit être le compte d'un admin)
  • Lancement du diagnostique qui demandera de:
    • Configurer les DNS
    • Définir le Reverse DNS
    • Si besoin ouvrir des ports sur la box ou le pare-feu du fournisseur de vps

Note: Il est également conseillé d'ajouter une redirection des mails du premier utilisateur créé vers une boite mail qui est consultée régulièrement.

Le déploiement d'apps se fait via la webadmin. Quelques conseils de déploiement ci-dessous:

  • Déployer les apps sur des sous-domaines distincts par exemple: nuage.VOTREDOMAINE.TLD/ (il faut donc ajouter le sous domaine dans yunohost avant d'installer l'app)
  • Vérifier les mails du compte du premier utilisateur (certaines apps envoient des infos par ce biais)
  • Liste d'apps fréquemment installées par les chatons : https://yunohost.org/#/apps_framasoft
  • Ne pas installer trop d'apps (seuls celles qui serviront vraiment doivent être installée pour éviter d'agrandir la surface d'attaque)
  • Aller dans l'interface d'administration de chaque app installée pour améliorer la configuration et bien comprendre son fonctionnement
  • Dans la partie permission et groupes de la web admin il est possible de déterminer si l'app est accessibles aux visiteurs (ceux qui n'ont pas de comptes sur le YunoHost)

Pour le siteweb de votre chaton, soit vous installer un CMS comme wordpress, ghost, grav ou prettynoemy, soit vous créer votre page HTML à la main et vous l'héberger avec l'app Custom Web App.

Type d'info que votre site devrait contenir:

  • Nom du chaton
  • Présentation du projet
  • Liste, description des services et type d'accès (ouvert à tou⋅te⋅s, sur inscription, prix…)
  • Lieu des données
  • Un moyen pour vous contacter
  • Procédure pour obtenir un compte (le cas échéant)
  • Lien vers la page de statuts, par exemple : https://stats.chatons.org/NOM_CHATON.xhtml
  • Lien vers les Conditions Générales de Services, mentions légales et les statuts de votre association le cas échéant

Si vous connaissez HTML, vous pouvez piquer le site de sans-nuage.fr (modifié de celui de ReflexLibre) en changeant le nom tout de même o_O' : https://code.ffdn.org/arn/sans-nuage.fr . Pour l'installer sur votre serveur, déployer la customwebapp sur https://VOTREDOMAINE.TLD/ et utiliser filezilla pour envoyer les fichiers.

Une sauvegarde basique permet de télécharger une archive depuis la webadmin mais elle n'est pas adaptées au delà de quelques Giga et il faut une certaine rigueur pour la faire manuellement à fréquence régulière.

Il est conseillé d'utiliser l'application borg ou restic pour procéder à la sauvegarde. Le seul soucis est qu'il faut un espace de stockage (idéalement distant). Quelques solutions:

Le Collectif CHATONS propose un site de statistique qui peut servir de page de statuts des services. Le seul hic c'est qu'il faut déjà être chaton! Mais il est fort probable que si vous fournissez déjà les .properties nécessaires que ça ne pose pas de soucis pour la candidature chaton.

Ces fichiers peuvent être hébergés sur un simple nextcloud ou une customwebapp avec un partage par lien.

voir https://stats.chatons.org

TODO: améliorer les doc sur cette partie

  • Répondre aux demandes de supports
  • Mettre à jour de temps à autres
  • Vérifier les sauvegardes
  • Utiliser vous même les services pour vous rendre comptes des soucis d'ergonomie
  • En cas de panne ou de maintenance: ajouter une note à l'historique sur le site et réparer
  • Anticiper la question des vacances, coupures de courant, déménagement, panne d'internet (il vous faut un plan B)

Pour que votre chaton tienne dans le temps, il est conseillé d'être plusieurs. Quelques idées pour animer votre groupe:

  • Trouver un lieu pour vous réunir régulièrement
  • Utilisez tmux ou screen lors des opérations d'administrations en ligne de commande OU le partage d'écrans si vous passez via la webadmin
  • Mettez en place de l'accès SSH par clé publique
  • Si vous êtes nombreux définissez le process pour obtenir des accès admins (suffisamment souple pour permettre l'intégration des nouvelles têtes, mais suffisament cadrés pour éviter que A demande àC si B lui a refusé…)

Pour inspiration ci-dessous un doc sur le fonctionnement d'Alsace Réseau Neutre

Si vous le souhaitez vous pouvez installer l'app “unattended upgrade” pour installer les mises à jour automatiquement ou être alerté par mail.

J'espère que ce tutoriel vous a aidé. La partie technique est maintenant à peu prés calée, faites vos tests et vos essais pour être confiant.

A ce stade vous devriez être en mesure de candidater au collectif. Vérifiez si vous respectez tous les points de la charte CHATONS et go !

Puis, il faudra maintenir l'existant, mais aussi se concentrer sur la communication, la pérennité, l'accueil, l'animation, l'amélioration (etc.) pour faire grandir votre chaton.

Triés par ordre alphabétique

  • 1815 (Page du CHATONS) - instance et applications auto-hébergées sur un RaspberryPI en mode Brique Internet et connecté au VPN de FAImaison.
  • Animatools (Page du CHATONS) - instance et applications hébergés sur un VPS OVH.
  • Le Samarien (Page du CHATONS) - instance et applications auto-hébergées dans une machine virtuelle sur un serveur local de type ordinateur. Description de la configuration ici
  • Numéricloud (Page du CHATONS) - CRM et Dolibarr pour la gestion interne
  • Sans-nuage (Page du CHATONS) - instance et applications gérées et hébergées par Alsace Réseau Neutre sur un serveur virtuel redondé sur 2 machines physiques, appartenant à l'association également.
  • Syntax Informatique (Page du CHATONS) - instance et applications auto-hébergées sur un serveur dans leur local de type ordinateur. Description de la configuration ici.
  • WEBLIB.RE ( Page du CHATONS)- instance et applications auto-hébergés sur un RaspberryPI en mode Brique Internet. Description de la configuration ici.
  • ReflexLibre Plusieurs YunoHost déployés pour différent clients
  • yunohost.txt
  • Dernière modification: 2021/01/07 17:25
  • de saimyx