Réseau local de Yunohosts?

J’aimerai partager avec vous amélioration que j’aimerais bien voir arriver sur Yunohost.

Je n’ai aucune idée de sa faisabilité ni des difficultés qu’elle représente. Je préfère donc en parler avec vous ici plutôt que d’ouvrir un ticket sur github.

C’est une idée que j’ai depuis longtemps mais qui prend encore plus son sens ce matin avec l’arrivée du RasPi 4 et de son option de RAM (1,2 voir 4 Go).

Souvent, nous ne possédons qu’une seule IPv4 à la maison. Nous ne pouvons donc ouvrir les ports 80, 443 etc de son routeur que vers une seule machine, un seul serveur Yunohost.

Ainsi, si la machine avec laquelle on démarre son projet d’auto-hébergement devient trop faible pour ses besoins, il est nécessaire d’en changer le jour où de plus gros besoin se font sentir (on jette l’ancien Raspi?).

Typiquement, quelqu’un qui commence sur un Raspi 2 ou 3 voudrait aujourd’hui changer pour un Raspi 4. Son ancien Raspi devient alors inutile et c’est bien dommage…

Ou alors simplement, quelqu’un qui a un raspi qui fonctionne bien avec plusieurs services et qui voudrait en ajouter un autre qui demande beaucoup de ressources (synapse par exemple). Il n’aurait besoin que d’acheter un second Raspi dédié à cette application, mais se poserait alors la question de l’IPv4, des ports, du certificat SSL…

Ainsi je vous soumets l’idée d’un réseau local de Yunohosts.

Imaginons qu’on puisse installer un Yunohost principal (maître) qui puisse reconnaître, identifier sur le réseau local des yunohosts secondaires (esclaves) qu’il pourrait gérer [depuis sa propre interface d’admin].

Je vous donne un exemple.

Quelqu’un décide de s’auto-hérberger. Il achète un Raspi et installe Yunohost. A l’installation, on lui dit que si c’est son premier yunohost à la maison (option par défaut), il doit installer la version yunohost maître. Ça installe le yunohost qu’on connaît bien. Il installe les services qui lui vont bien pour le moment.

Un an passe et il aimerait alors installer un cloud ou bien synapse mais son Raspi est trop limité. Il en achète un autre qu’il va dédier à ce service.

Lors de l’installation de ce yunohost, il installe la version esclave de yunohost cette fois. A la fin de cette installation, il a un identifiant et mot de passe qu’il est invité à enregistrer, avec l’ip local de ce yunohost esclave, dans l’interface admin de son yunohost maître.

Et c’est ensuite à partir de son yunohost maître qu’il va pouvoir installer son cloud (ou synapse…) sur son yunohost esclave. C’est le yunohost maître qui gère le yunohost secondaire, ses noms de domaines (Nginx c’est ça?), ses utilisateurs (LDAP, donc les mêmes que sur le maître), ses applications… Le yunohost esclave est donc plus léger et peut donc être dédié pleinement à l’application qu’il héberge.

Le yunohost maître indiquerait aussi les DNS qu’il faut renseigner chez son registar pour ses propres applications mais aussi toutes celles de son réseau de yunohost esclave. Les ports à ouvrir dans son routeur seraient tous vers le yunohost maître qui lui s’occuperait de renvoyer vers le bon yunohost du réseau (lui même ou un esclave).

Le yunohost maître aussi gérerait les sauvegardes de tous son réseau local (en local sur HDD externe ou bien par internet chez un ami…).

Ce système offrirait une vraie modularité des petits serveurs du type RasPi pour l’auto-hébergement et permettrait ainsi de résoudre le problème environnemental des serveurs auto-hébergés sur-dimensionnés, sous-utilisés puisque ainsi, au lieu de prendre trop gros pour prévenir des besoins futurs, il suffirait de commencer petit (pour ses besoins du moment) et de rajouter d’autres petits serveurs en cas de besoin seulement.

Vous en pensez quoi? C’est une bonne idée? Est-ce que ça vous semble réalisable? Difficile? Devrais-je ouvrir un ticket sur Github?

2 Likes

Bonjour,
En utilisateur, je dirai que c’est une excellente idée qui rejoint une proposition : pouvoir “débrancher” un serveur Archive pour l’économie d’énergie.

Amicalement José

Bonjour,

En tant qu’utilisateur, je trouve ça une super idée !
Dans le prolongement, j’imagine aussi qu’on pourrait avoir un yunohost esclave de test (je ne suis pas sûr d’aimer la terminologie maitre-esclave :wink:) pour tester des apps avant des les mettre en production ! Soit des version beta, soit juste pour voir, soit pour en packager.

Je n’ai pas mentionné le serveur test mais c’est un peu comme ça que mon idée a germé.
Je comprends la difficulté à utiliser les mots maître-esclave mais il faut bien comprendre qu’on parle de machine, même pas d’animaux… et puis c’est la traduction directe de l’anglais alors je me dis qu’en faisant un peu d’effort comme nous le faisons nous dans l’autre sens, les anglophones pourraient saisir l’idée plus facilement.

Tu essayes de chercher une solution de contournement ce à quoi le protocole IPv6 réponds amplement. Sa mise en pratique, c’est une autre histoire.

En attendant, ce contournement est intéressant, mais semble demander beaucoup trop d’efforts pour que ça soit une priorité à la vue des moyens humains que le projet YunoHost possède aujourd’hui.

Il est aussi possible de passer à un serveur plus puissant, type NUC.

2 Likes

Yunohost avec certificat Let’s encrypt en IPv6 uniquement, c’est possible?
Par exemple pour un serveur synapse (matrix) tout seul sur un Raspi4?

L’autre élément important de mon idée, c’était la mutualisation du LDAP. Avec des yunohosts indépendants [par IPv6], il faudrait que les utilisateurs s’inscrivent sur chacun des yunohosts, n’est-ce pas?

L’idée est justement d’éviter de changer de serveur pour un plus puissant, plus gourmand en gaspillant l’existant, mais d’ajuster petit à petit par ajout successif de petites briques afin de coller au mieux aux besoins et de consommer le moins d’électricité possible.

Non, c’est à faire.

Dans YunoHost v1.0, le SSO utilisé était LemonLDAP::NG et permettait de gérer l’authentification sur deux serveurs utilisant la même base LDAP. Seul le développeur initial utilisait cette fonctionnalité. Donc, à faire pour SSOwat.

Un serveur avec de grandes performances peu toujours faire moins et consommer la même quantité d’énergie qu’une petite machine pour le même usage.
Une carte ARM c’est bien pour démarrer et faire joujou et ça passe toujours avec des petits services. Mais, dès qu’on commence à héberger des services qui demandes de plus grandes ressources, c’est plus possible. Sinon, faut passer par des implémentations légères, comme utiliser XMPP + Movim au lieu de Mastodon ou de Matrix par exemple.

1 Like