Aller au contenu principal

Architecture de YunoHost

Le cœur de YunoHost est écrit en Python autour du serveur yunohost, mais il est composé de quatre composants principaux :

Moulinette

C'est un petit framework "fait maison". Son rôle principal est de permettre de construire une API Web et une API en ligne de commande à partir d'un même code Python et d'un schéma YAML que nous appelons l'actionmap.

Il prend en charge d'autres mécanismes tels que l'authentification, l'internationalisation et des petites fonctions utilitaires techniques (par ex. lecture/écriture de fichiers JSON).

Moulinette dispose de sa propre documentation ici.

YunoHost

C'est le cœur même de YunoHost. Il contient :

  • le code Python qui gère les utilisateurs, domaines, applications, services et autres
  • des helpers bash principalement utilisés par les packageurs d'applications dans les scripts de ces applications
  • des hooks et templates qui sont utilisés pour configurer les différents éléments de l'écosystème tels que NGINX, Postfix...
  • des chaînes internationalisées
  • des tests

SSOwat

C'est le système de connexion unique (single sign-on) de YunoHost. Il contient principalement :

  • du code LUA interfacé directement avec NGINX et qui gère tous les aspects "techniques" de l'authentification et de la gestion des accès aux ressources.
  • le portail web utilisateur qui est l'interface finale visible par les utilisateurs de YunoHost.

SSOwat est configuré via /etc/ssowat/conf.json qui est généré par YunoHost.

YunoHost-admin

C'est une dépendance optionnelle de YunoHost et correspond à une interface pour l'API web créée par YunoHost et Moulinette (service yunohost-api).

Il contient essentiellement :