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 backend de connexion unique (single sign-on) de YunoHost. Il est basé sur des stripts Lua interfacés directement avec NGINX et qui gère tous les aspects "techniques" de l'authentification et de la gestion des accès aux ressources.
SSOwat est configuré via /etc/ssowat/conf.json
qui est généré par YunoHost.
YunoHost-portal
Ce portail est utilisé par les utilisateurs pour se connecter et lister les applications installées.
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 :
- des templates pour les vues
- les contrôleurs JavaScript correspondants, qui interagissent avec l'API YunoHost
- et ses chaînes internationalisées