Projet de serveur pour association

Bonjour!
Après des années d’usage fructueux de yunohost pour mon petit serveur autohébergé (déplacé depuis dans les nuages, mais fonctionnant toujours sur yunohost), je suis arrivé au projet de monter un petit serveur pour un groupe politique local auquel je participe activement depuis des années et qui cherche à se dégoogliser (mais sans utiliser yunohost cette fois-ci, je vous explique).
Son cas d’utilisation est le suivant:

  • usage assez important de google drive (aïe) pour stockage et édition collaborative de documents
  • usage modéré de tous types de messageries instantanées (ouille) pour discussions synchrones
  • usage important de mailing list sympa (en l’occurence framalistes), avec un désaccord d’une part importante du groupe quant à cet usage (mauvaise gestion des sujets, encombrement des boîtes mail, etc), et une autre part à peu près égale du groupe qui apprécie le mode de communication par mailing list.
  • Environ 70 personnes potentiellement concernées, avec des droits d’accès variés (élu·es/non-élu·es; groupes de travail, etc), et environ 30 personnes réellement actives.

L’idée, discutée mille fois mais jamais réalisée, était de remplacer tous ces services chez un ou des prestataires éthiques et basé sur du logiciel libre. Malheureusement, faire tout ça en même temps, ça revient à payer des licences par utilisateurice à plusieurs € (en l’occurence, CHF) par mois et par personne, ce qui n’est pas énorme pour une entreprise qui vend des trucs, mais est un peu plus conséquent pour un groupe politique anticapitaliste local avec peu de ressources mais plein de sympathisants·es.

D’où l’idée d’auto-héberger tout le bazar, chez deux personnes du groupe avec une connexion fibre symétrique, et de répliquer deux serveurs avec proxmox pour avoir quelque chose de redondant.

J’ai mis quelques années à faire mûrir l’idée, et ne voyant rien venir, je propose aujourd’hui de tout regrouper sur un serveur autohébergé avec nextcloud pour les fichiers, CODE ou onlyoffice pour l’édition collaborative, synapse pour les discussions synchrones, et discourse pour remplacer les mailing-list (et laisser la possibilité à celleux qui préfèrent de tout faire par mail).

J’ai donc décidé de mettre en place pour les tests l’infra sur un serveur dédié kimsufi OVH, et de rappatrier ensuite la chose. Pour des questions de sécurité, de séparation des services, et pour avoir des machines virtuelles de test en plus sans polluer le serveur principal, j’ai décidé de ne pas utiliser yunohost cette fois, mais de gérer les différents services directement (en général sur des containers debian propres).

Voici donc l’idée d’architecture, que je suis en train de mettre en place (pas vite hein). J’éditerai ce premier message pour documenter les étapes effectuées, les petits trucs qui aident et les problèmes rencontrés, parce que je pense que ça peut servir à d’autres:

J’ajouterai des réponses à ce fil pour poser des questions quant aux problèmes que je n’arrive pas à résoudre s’il y a des gens qui ont des idées sur ce forum (la première vient tout de suite :wink:).

Comme promis, voici ma première question. J’ai installé les choses comme indiqué, j’ai une configuration firewall qui fonctionne avec haproxy, un serveur nextcloud-aio (cloud.domain.tld) qui fonctionne également, qui a accès aux internets avec le serveur DNS du pfsense, et sur lequel arrive le trafic de son sous-domaine grâce à HaProxy, sur lequel j’ai utilisé l’assistant pour mettre le container CODE directement à l’installation. L’idée était de voir si ça fonctionne, avant de le déployer sur une autre VM. Malheureusement, Nextcloud n’arrive pas à accéder à Collabora, j’ai l’impression parce qu’il y a un conflit sur le port 443, peut-être avec l’interface de pfsense accessible uniquement depuis le LAN ? C’est un peu frustrant parce que je n’arrive pas à trouver ce qui coince. Je l’ai réinstallé une deuxième fois sur un container debian fraîchement installé, accessible sous un autre sous-domaine (cloud.domain.tld), mais ça ne fonctionne pas non plus. Les deux DNS sont correctement résolus depuis le terminal de la VM de nextcloud (ping ou nslookup) (192.168.9.101 sur mon schéma).
Est-ce quelqu’un voit ce qui coince de manière un peu évidente dans mon install, et, mieux, aurait une idée comment résoudre ce petit blocage?
Merci beaucoup!


Edit: la solution était très bête:

Il suffisait de mettre une règle host override pour chaque sous-domaine dans le DNS resolver de pfsense (au moins pour les paquets originaires du LAN), et de faire pointer le DNS du container LXC vers pfsense (192.168.9.254), qui gère ensuite les certificats et le reverse Proxy.
Mais ne voulant pas me compliquer trop la vie avec les mails etc, j’ai finalement opté pour revoir la conception du serveur et tout va être réinstallé avec YunoHost en frontal et les autres services sur des lxc dédiés. Je fais les tests après mes vacances et publie un petit récapitulatif.

1 Like

This is a very interesting project. However, you are not using YunoHost to install Nextcloud and Collabora. Therefore, this may not be the right forum to seek answers about installation issues. Try the Nextcloud or Collabora forums instead.

1 Like

Je rejoint Éric, ce n’est plus Yunohost.

Si tu es sous Proxmox, il y a des LXC pour te faciliter la tâche sur helpers-script.

Ensuite normalement vu que tu es sur deux VMs distincte, pas de conflit de port.

Vérifie que t’es deux VM soient bien sur le même réseau.

Tu peux aussi avoir la possibilité de faire ça en Docker avec des réseaux par fonction.

Pour Discourse, il lui faudra une VM a part, il est assez solitaire dans son installation car il inclus la total, proxy, pare-feu, etc. D’ailleurs pourquoi utiliser Discourse pour du mailing list ?

Un exemple d’utilisation avec Yunohost que j’ai mis en place pour une grosse structure utilise quelque chose de proche niveau services. Je pense faire une forme de tutoriel sur cette expérience où nous avons eu…

  • Utiliser un plugin Discourse-SSO dans Nextcloud
  • activer le forward-email dans les paramètres pour que le mails des utilisateurs dans Nextcloud soit leur mail de transfert
  • Une configuration spécifique dans Discourse et des règles sieve un peu avancées
  • ainsi qu’une configuration spéciale des fichier de conf dans Roundcube et dans Postfix.
  • Un Dollibar aussi avec avec un paramètre pour activer la gestion des adhérents, le module Adhérents permettant une fois qu’une cotisation est créée permet quand on ajoute un utilisateur (avec son mail) de créer un user yunohost avec son identifiant (son mail devient un forward_email) et de l’ajouter dans un groupe LDAP (adherents par exemple). Si on désactive l’user ou si sa cotisation n’est plus à jour il n’est plus dans ce groupe. Si on supprime l’utilisateur dans Dolibarr, l’utilisateur yunohost aussi est supprimé (on ne peut évidemment pas supprimer un utilisateur du groupe admins).

La magie des configuration sieve, ce sont des règles qui permettent quand on écrit un message à sujet+motcle@domaine.tld cela va créer un Post dans discourse dans le groupe groupe (qui correspond à un groupe LDAP qui sont synchronisés avec Nextcloud aussi) avec le sujet du message comme titre du post. Ou bien un message à info@domaine.tld avec le mot groupe dans le sujet aussi va avoir ce comportement…

Sinon en effet parler de ses configurations Promox avec des containers ici semble un peu déplacé…

2 Likes

Vous avez raison, et je suis en train de revoir un peu le projet. Toujours proxmox pour avoir plusieurs Containers indépendants (et une infra redondante), mais probablement YunoHost aussi pour la gestion des e-mails, utilisateurs, etc. Cependant, étant en vacances, je rejoindrai des nouvelles et infos d’ici deux petites semaines probablement. @rodinux, ta configuration a l’air super intéressante :slight_smile:

pour une meilleure pérennité du projet dans le temps (qui ne dépend pas des compétence informatique des bénévoles de l’asso), tu peux passer chez frama.space (un nextcloud hébergé par framasoft, gratuit, limité à 40 user et 40Go).

Oui, c’est une bonne idée aussi. Je pourrais contacter framasoft pour voir, d’autant qu’on est évidemment disposé à payer un prix raisonnable pour le service, mais avoir notre propre installation quelques temps, au moins pour une démonstration, me semble aussi chouette (également dans une optique de partage de compétences dans le groupe, nous sommes trois sur le projet, que je porte à la base, mais les autres sont au courant de tout ce que je fais et prêts à reprendre en cas de besoin)

1 Like