yunohost

La distribution YunoHost vous facilitera grandement l'administration du serveur de votre CHATONS. Cette page présente les fonctionnalités principales de YunoHost (YNH) et suggère certains outils pour vous permettre d'exploiter pleinement son potentiel.

Présentation de YunoHost

YunoHost est une distribution basée sur Debian GNU/Linux composée, essentiellement, de logiciels libres. Plusieurs fonctionnalités la rendent adaptées à un projet CHATONS :

  • Multi-domaines (SSL Letsencrypt), multi-utilisateurs (LDAP)
  • Chaque utilisateur peut disposer d'une boite mail (Postfix, Dovecot…) et d'une adresse de messagerie instantanée (XMPP Metronome)
  • Installation d'applications en quelques clics (liste ci-dessous)
  • Identification unique (Single Sign-On) de vos utilisateurs via un portail sur toutes les applications de niveau 8
  • Groupes d'utilisateurs
  • Mise à disposition d'applications privées (uniquement pour vos utilisateurs) ou publiques (NGINX)
  • Création simplifié de nouvelles applications (voir documentation)
  • Support d'une multitude de matériel (x64, x86, raspberry, ARM)
  • Scripts de sauvegarde/restauration pour toutes les applications de niveau 4
  • Système d'API permettant d'administrer et de monitorer YunoHost intégralement à distance
  • Distribution également utilisée par le projet La Brique Internet qui promeut un internet libre, neutre et décentralisé et qui s'appuie sur des FAI associatifs (synergies potentielles).
  • Communauté de développement dynamique (forum, packaging d'applications, labriqueinter.net, …)

YunoHost propose beaucoup d'applications différentes, et vous pouvez même installer les vôtres sans qu'elles aient étés testées (à vos risques et périls). L'équipe en maintient une dizaine, et les autres sont maintenues par d'autres contributeurs. Certaines proposent des services WEB ou autres, d'autres offrent des options en plus pour gérer votre serveur. Elles sont triées selon des niveaux attribués grâce à des validations de test afin de vous proposer la meilleure expérience possible et de diminuer les risques.

Voici une liste exhaustive des applications existantes :

  • Applications de « haute qualité » (niveau 8) : DokuWiki, Etherpad Mypads, Gitlab, Hextris, Leed, OpenSondage, Piwigo, Strut, Synapse, Wallabag et Wordpress
  • Applications de niveau 7 : Bitwarden, Discourse, Drupal, Firefox Sync Server, FreshRSS, Funkwhale, Gogs, Lufi, Mastodon, Nextcloud, PeerTube, Pi-hole, PluXml, PrettyNoemie CMS, Rainloop, Searx, Transmission, Zerobin et d'autres…
  • Applications de niveau 4 : I hate money, RSS-bridge, EmailPoubelle

La plupart des services Framasoft sont installables via YunoHost (environ 60% en haute qualité) et souvent, avec une identification utilisateur unique (SSO). Voir la liste.

YunoHost étant un logiciel libre, ces contraintes sont toutefois corrigeables si vous le souhaitez, et la plupart sont d'ailleurs à l'étude dans le roadmap : https://dev.yunohost.org/

La documentation administrateur de YunoHost couvrira la plupart de vos questions : https://yunohost.org/#/admindoc_fr Plusieurs détails d'importance pour un projet CHATONS sont toutefois présentés ci-dessous.

L'administration se fait simplement depuis l'interface d'administration web

YunoHost est entièrement administrable en ligne de commande si vous le souhaitez.

La liste de commande est accessible ici : https://yunohost.org/#/commandline

Quelques exemples :

  • Ajouter un utilisateur avec 500M d'espace mail : yunohost user create -f <prénom> -m MAIL -l <nom> -p <mot-de-passe> -q 500M
  • Installer NextCloud : yunohost app install nextcloud_ynh
  • Faire une sauvegarde : yunohost backup create
  • Créer un nom de domaine : yunohost domain create <nom-de-domaine>
  • Installer un certificat Let's Encrypt sur un nom de domaine : yunohost domain cert-install <nom-de-domaine>

Toutes les actions exécutables en ligne de commande le sont également via une API.

L'API utilise l'adresse https://VOTRESERVEUR/yunohost/api et toutes les actions sont détaillées sur cette page.

Il faut d'abord récupérer un cookie de login pour ensuite réaliser les actions. Voici un exemple via curl :

Pour simplifier l'administration à distance d'une instance YunoHost dans le cadre d'un projet CHATONS, des classes API ont été développées par des utilisateurs.

Par exemple, cette classe PHP vous permettra d'administrer votre instance YunoHost depuis une application PHP (site web, outil de provisioning, …).

Voici un exemple de code PHP permettant d'ajouter un utilisateur dans votre instance YunoHost :

 
require("ynh_api.class.php");
$ynh = new YNH_API("YunoHost server IP or hostname", "admin password");

if ($ynh->login()) {
    $domains = $ynh->get("/domains");
    $first_domain = $domains['domains'][0];

    $arguments = array(
        'username' => 'test',
        'password' => 'yunohost', 
        'firstname' => 'Firstname',
        'lastname' => 'Lastname',
        'mail' => 'test@'.$first_domain,
        'mailbox_quota' => '500M'
    );

    $user_add = $ynh->post("/users", $arguments);
    print_r($user_add);

} else {
    print("Login to YunoHost failed.\n");
    exit;
}

Un CHATONS pourra donc très simplement développer des modules de provisioning permettant par exemple de :

  • Provisionner des utilisateurs (ajouter/modifier/supprimer) sur une instance YunoHost mutualisée
  • Provisionner des instances YunoHost sur une machine virtuelle (configuration, ajout de domaines et d'utilisateurs, installation d'apps, …)

Il est à noter également que des modules de provisioning pour le panel open source BoxBilling sont en cours de développement chez un CHATONS en création. Ce projet permettra du provisioning d'utilisateurs (sur instance YunoHost mutualisée) ou d'instances YunoHost (via Proxmox) dans BoxBilling (documentation à venir) avec facturation des utilisateurs (si vous le souhaitez), gestion des tickets, etc …

Les utilisateurs disposent d'un portail qui leur permet de s'authentifier une seule fois pour les applications qui le permettent, mais aussi de gérer leur compte (adresse mails, mot de passe…). Ce portail est graphiquement personnalisable (quelques contributeurs ont partagés leurs thèmes) et donne sous forme de tuiles les accès aux différentes applications qu'ils ont.

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
  • 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

Quelques contraintes seraient toutefois à noter pour l'utilisation de YunoHost par un projet CHATONS :

  • YunoHost est avant tout un projet dédié à l'auto-hébergement personnel ou de petit groupe. Ceci dit, plus le temps passe, plus il y a des options qui permettent d'envisager des instances accueillant de plus en plus de monde. Par exemple, la gestion des permissions et des groupes avec YunoHost 3.7. Certaines options comme l’accès des utilisateurs en SSH sont déconseillées pour les grosses instances.
  • Pas de haute-disponibilité pour le moment (mais il y a une discussions en cours) et une application permet de créer un serveur de fallback
  • Impossible pour le moment de faire des sauvegarde indépendamment pour chaque utilisateur
  • Impossible pour le moment de déplacer les utilisateurs individuellement vers un autre serveur YunoHost
  • L'installation d'applications non empaquetées nécessite de savoir ouvrir le SSO (SSOwat) et de connaître nginx (YunoHost est incompatible avec apache)
  • yunohost.txt
  • Dernière modification: 2020/07/08 00:05
  • de ljf