Outils pour utilisateurs

Outils du site


doc:formations:hebergement:service:mattermost

< Retour à l'index

Mattermost (clone de slack)

Mattermost est un clone quasi parfait de Slack. En pratique, il est même probablement meilleur: le fait de l'héberger sur votre serveur le rend moins susceptible aux coupures et chûtes de débit qui sont relativement courantes avec la version publique et probablement surchargée de Slack. Il n'y a pas de bridage sur les volumes et le nombre de comptes, etc. On peut aussi automatiser nombre de taches, via des scripts (et parfois directement dans la BDD…)

Installation

Le plus simple: une "instant app" Scaleway, mais cela requiert un serveur dédié à cette tache (qui pourra cependent servir à d'autres tâches à installer manuellement).

Sinon, voir cette page pour une installation "manuelle" sur un serveur existant.

Administration mattermost

Si la gestion des utilisateurs est désactivée au niveau interface mattermost (sécurisation), il faut se logger sur le serveur et passer par la ligne de commande:

cd /opt/mattermost/bin
./mmctl auth login https://mattermost.mydomain.com   # nom du serveur mattermost

Puis saisir son pseudo et son login afin de s'authentifier comme un administrateur pour pouvoir utiliser mmctl.

Créer un compte

./mmctl user create --email Mr.Untel@serveur.fr \
  --username mruntel --password tatatoto --firstname Mr --lastname Untel

Puis utiliser l'interface web pour l'ajouter aux canaux nécessaires

:!: avant la version 6+ on utilisait ./mmctl au lieu de ./mmctl. On peut vouloir activer EnableLocalMode à True dans le config/config.json pour ne pas avoir à s'identifier en tant qu'administrateur.

Sans cela, vous pouvez utiliser l'API (y compris à distance), si vous vous identifiez préalablement avec ./mmctl auth login --name local-server --username moi@ici.com https://forum.demonsite.com. Certaines options sont refusées par défaut pour des raisons de sécurité. Vous aurez par exemple peut être à reconfigurer "EnableAPITeamDeletion": true, et "EnableAPIUserDeletion": true, dans le config/config.json.

Détruire un compte

./mmctl --confirm --local user delete john

Pour réinitialiser un mot de passe ou débloquer un compte verrouillé suite à trop d'echec

./mmctl user password mruntel tatatoto

Pour élever un utilisateur au rang d'administrateur

./mmctl roles system_admin untel

:!: la doc officielle est obsolète, cette commande ne marche plus:

./mmctl -assign_role -team_name="monequipe" -email="Mr.Untel@serveur.fr" --role="system_admin"

Divers

Journaux et erreurs

Un utilisateur ne recevra pas d'alertes email s'il n'a pas validé son email! On peut s'apercevoir du problème via

grep "address not verified" /opt/mattermost/logs/mattermost.log  # verbeux
sed -n 's/.*address not verified....//p' /opt/mattermost/logs/mattermost.log|uniq  # court

Pour voir un log par défaut au format JSON:

jq '.ts |= strftime("%Y-%m-%d %H:%M")' /opt/mattermost/logs/mattermost.log

Notre: si le service s'arrete inopinément après une màj de la base de données sous-jacente, ajouter WantedBy=postgresql.service à la section [Install] de /lib/systemd/system/mattermost.service (ref.).

Voir aussi les scripts mattermost avancés.

Export/import

Source (export):

./mattermost export bulk file.json --all-teams

Source (import):

cd /opt/mattermost/bin/
./mattermost export bulk mattermost-backup.json --validate && ./mattermost export bulk mattermost-backup.json --all-teams

Documentation

Eléments que l'on peut couper/coller dans des posts mattermost pour une aide en ligne:

**BIENVENU SUR FORUM.KIDÉBA -- A LIRE SI VOUS AVEZ DÉJÀ UNE QUESTION! ** :rofl: 

Ceci est un site communautaire mais privé, avec zéro pub et zéro spam. Seuls les Crealeadiens mettent leur nez ici :)

Principes courts de mattermost
* c'est un "clone" opensource de Slack pour ceux qui connaissent, sinon:
* c'est un forum de débat constitué **d'équipes** de personnes (ex. collectifs autogérés, comités indépendants -- Slack gratuit n'en n'autorise qu'une, d'où les pbs de login/liens impossibles)
* dans chaque équipe, on peut créer autant de **canaux** de discussion que l'on veut (thèmes de discussion, sous-groupes de travail...)
* on peut aussi discuter en direct (et privé) avec une ou plusieurs personnes (cf. `Messages personnels`). C'est pratique pour ne pas polluer un canal public !

Donc
* oui, ça ressemble à un forum de discussion, avec des @notifications et des #hashtags, et des conversations privées à plusieurs...
* mais sans l'anarchie ! Le découpage en équipes et en thèmes dans ces équipes permet d'améliorer et cloisonner les débats
* ainsi, on peut aussi suivre de loin une équipe et/ou des canaux, et/ou intervenir discrètement avec des émoticônes
* ...ou être "à fond" sur un débat pointu et animé, sans impacter une autre discussion qui se déroule très lentement



**COMMENT...**

**Comment rejoindre une équipe?**
* on peut recevoir une invitation explicite d'un animateur du groupe, souvent un lien web reçu par mail (voir ci-après "Inviter quelqu'un sur une équipe ")
* si l'on a déjà un compte sur kideba, on peut aussi cliquer l'option "Rejoindre une équipe" dans le menu à coté de son nom, ou bien le bouton carré "+" dans la marge de gauche (s'il existe)
* :bulb: par exemple, l'équipe "Forum" (sur laquelle vous êtes actuellement) est ouverte à tous ceux qui sont inscrits sur le site

**Comment rejoindre un canal (au sein d'une équipe)**
* il faut cliquer le texte "Plus..." sous les "Canaux publics", pour rejoindre un canal supplémentaire (si un admin ne vous y a pas mis d'office)
* c'est impossible par soi-même si c'est un "Canal privé" (les admins peuvent basculer l'état public ou privé de leurs canaux)
* :bulb: dans chaque équipe existe un canal public ou commun qui sert souvent de place publique et discussions en vrac (cf. `town-square` dans l'addresse web).

**Comment naviguer entre les équipes**
* il faut cliquer les icones carrées dans la marge de gauche, afin de baculer d'une équipe à une autre au sein de mattermost
* c'est une différence notable avec Slack qui ne permet qu'une seule équipe en version gratuite (pbs de logins/logout entre les N versions de slacks ouvertes par N personnes différentes)



**DROIT D'ACCES ET ADMINISTRATION**

** Accès **

* le site n'est accessible que __sur invitation__. Mais ne diffusez pas les liens d'invitations aux équipes à n'importe qui ;)
* un administrateur peut "regénérer" le lien et donc invalider le précédent. Aussi, un vieux lien ne sera peut être pas éternellement valide!

** Les  équipes (constituées de personnes) **

* seuls les admins peuvent créer des "équipes"
* vous pouvez en demander de nouvelles aux administrateurs (@jeremiefrancois, @christophe-nb et @fabien-duo )
* une équipe peut être soit privée (sur invitation seulement), soit publique (et dans ce cas, _toute personne inscrite sur le mattermost de kidéba_ pourra la rejoindre),
* les admins du système (dont moi) peuvent promouvoir des membres d'une équipe en "administrateur d'équipe"

** Les canaux (thèmes de discussion au sein de chaque équipe) **

* ces administrateurs d'équipe seront souvent les animateurs des collectifs correspondants. Ils peuvent créer ou archiver des canaux de discussion au sein de leur équipe.
* dès qu'un thème identifié commence à prendre forme et longueur dans le canal général / fourre-tout, **je conseille fortement de créer un canal dédié, quitte à l'archiver une fois le débat cloturé**. Le but est vraiment d'éviter l'anarchie et les discussions en parallèles sur un même canal: ne pas refaire un système de "chat" linaire illisible habituel!
* si le canal est utilisé pour stocker de l'informtion persistante tant bien que mal, je conseille de condenser/réorganiser/supprimer les messages au sein du canal. C'est le cas de ce canal que vous lisez en ce moment(~town-square de l'équipe Forum), mais c'est valable aussi pour un canal "Lien et pointeurs" qui restera ainsi compact et lisible. 

** Inviter quelqu'un sur une équipe **

* pour "**Inviter des utilisateurs" dans une équipe**, le mieux est d'utiliser le menu principal (image ci-dessous), _inviter des utilisateurs_ et d'envoyer l'adresse web URL par email à la personne. Je recommande d'inviter avant tout sur cette équipe ~town-square et ce canal afin que les nouveaux venus lisent cette doc ;)
* oui, il/elle devra se créer un compte sur le site. La personne recevra un email de confirmation en provenance de `noreply_kideba@tecrd.com` (vérifiez votre dossier spam)
* pour ajouter une personne à un canal dans un groupe où elle est déjà présente, il sufit de l'ajouter depuis l'interface (ne l'inscrivez peut être pas non plus "de force"!)
* les liens d'accès publiques et ouvert vers un document posté sont actuellement désactivés (ça n'est pas un dropbox, le disque dur est trop petit!)

** Créer des groupes de discussion "personnels" **

Ils se comportent un peu comme une équipe mais qui n'aurait qu'un seul canal: vous pouvez en effet discuter en privé avec une ou plusieurs personnes de votre choix (cela va créer un groupe dans la marge de gauche que vous pouvez d'ailleurs renommer mais qui vous est propre).


**REMARQUES**

* ce n'est pas un système d'archivage, mais un outil de débat et de travail synchrone et asynchrone
* pour capitaliser les contenus, je conseille fortement un autre système... Pour être franc, j'ai déjà mis en place sur ce site un "wiki" simple et efficace. On aura l'occasion de revenir dessus!
* **je conseille fortement d'éditer votre compte** (nom complet, nom d'utilisateur, pseudo)... car si on finit à 300 sur le site, ca deviendra utile d'avoir des noms et prénoms ou pseudo lisibles pour s'y retrouver...  Une photo de soi ou un logo de sa marque aidera pas mal aussi...
* :warning: mais **rien** n'est obligatoire ! Faut juste rester sympa :)


**NOTIFICATIONS**

**Sur le site web**
* les équipes dans lesquelles il y a du nouveau ont un point (petit, je sais) devant leur icone carrée
* et dans celles-ci les canaux en gras indiquent qu'une activité à eu lieu depuis votre dernière visite

**Notifications mail**
* vous pouvez configurer des notifications par mail (dans "Paramètres du compte" en cliquant sur les 3 petites barres horizontales à coté de votre nom) : fréquence des mails, mots-clés qui vous déclenchent une alerte, etc
* selon votre réglage, vous recevrez une notification par mail:
  * si vous êtes explicitement `@cité`
  * si vous êtes inscrit dans un canal et que quelqu'un utilise`@channel`
  * si vous êtes dans une équipe et que quelqu'un utilise `@all`
  * enfin, si vous êtes dans  les "Réponses" à un message (utilisez/abusez donc de la petite flèche tournée vers la gauche, à droite d'un message!)
* vous recevrez une notif par mail de la part de `noreply_kideba@tecrd.com`. Ces notifications sortent de "mon" serveur mail privé (google ni personne d'autre n'en sait rien).

**Smartphone**
* on peut y accéder avec son navigateur web, ça marche bien (cf. en bas de la page d'invitation "accéder via le site" et non le gros bouton d'installation -- de mémoire)
* les [applications mobiles pour Android](https://play.google.com/store/apps/details?id=com.mattermost.rn&hl=en) et [iOS](https://apps.apple.com/us/app/mattermost/id1257222717) sont plutôt efficaces.
* le "push" mobile n'est pas activé (alertes sur son mobile): c'est techniquement assez compliqué à faire, et c'est de toute façon invasif, on verra une autre fois s'il y a de la demande et le temps pour le faire


**COMMENT REDIGER**

* pour _sauter_ une ligne sans envoyer le message, vous pouvez faire `CTRL + entrée` sur windows ou linux et `MAJ+entrée` pour mac. Mais vous pouvez le reconfigurer dans votre compte car en effet, par défaut `entrée` envoit le message directement :/ (_Paramètres du comptes / Options avancées_)
* vous pouvez corriger votre dernier message avec "flêche haut", et les précédents messages via le menu "..." qui apparait à droite du message lors du survol avec la souris
* vous pouvez attacher des fichiers avec le trombone. Mais évitez d'envoyer du gros (ou du gif inutile): ni le site ni son disque dur ne sont taillés pour ça (≠ dropbox ou nextcloud!)

** Liens interne **

Vous pouvez mentionner quelqu'un avec `@nomdelapersonne`. Selon ses réglages, il recevra un mail s'il n'est pas en ligne sur mattermost avec un lien en retour.

Si vous utilisez `@channel` toutes les personnes du canal seront notifiées. Si vous utilisez `@all` toutes les personnes de l'équipe seront notifiées (quelque soient leurs abonnements aux canaux du groupe).

Si vous commenez à tapez un tilde `~`, mattermost vous proposera la liste des canaux (du groupe en cours), afin d'en faire un lien (bien pratique, les lecteur pourront cliquer dessus). Par exemple`~entraide` s'affichera ainsi: ~entraide 

** Éléments de mise en forme **

Quelques éléments pour formatter un petit peu vos réponses:
* `_italique_` s'affiche ainsi : _italique_
* `**gras**` s'affiche ainsi : **gras**
* `~~barré~~` s'affiche ainsi : ~~barré~~

Pour faire des listes, préfixez les lignes avec une étoile suivi d'un espace, et indentez de 2 blancs pour des sous-éléments, par exemple:

```
* élément de liste un
* élément de liste deux
  * sous-élément de liste deux
```
* élément de liste un
* élément de liste deux
  * sous-élément de liste deux

On peut taper les émoticones directement ainsi: `:smile:` et `:+1:` s'afficheront :smile: :+1:

Le texte `comme ceci` s'affiche en l'entourant d'accents graves. Un bloc de texte est délimité 
```
par deux groupes de trois accents graves, isolés sur des lignes
au début et à la fin du bloc de texte (oui c'est un peu vicieux...)
```

Il reste quelques autres formatages possibles, les plus curieux trouveront facilement  (c'est du "markdown"). Voyez par exemple cette petite doc de [Mattermost](https://docs.framasoft.org/fr/mattermost/help/messaging/formatting-text.html)


**POURQUOI ET QUI**
* **kideba** est un nom de domaine et un serveur dédié, exclusif, totalement contrôlé par "nous" (zéro lien avec facebook ou google, aucune pub, aucun usage de vos/nos données). Seul l'opensource sera autorisé sur ce serveur tant que c'est moi qui le gère ;)
* :warning: il n'a encore **aucun lien avec la structure**. Tant mieux si la structure finit par l'intégrer officiellement, mais c'est parti d'une initiative de ma part et non d'une quelconque idée politique: le but est simplement de tester de façon pragmatique un outil pour fluidifier la communication entre les volontaires qui y souscrivent, tout en restant sur des valeurs de coopération (amha)
* Le site, sa gestion et son coût reposent d'ailleurs sur du **bénévolat bienveillant et volontaire** (quitte à ce que ce soit au long terme s'il le faut). Il n'y a donc en l'état **ni garantie de service, de résultat, de durée, ni même de moyen** -- mais je suis quand même confiant dans la solidité de l'ensemble pour l'avoir utilisé à titre professionel pendant des années.
* Qui: moi même (install, admin principal), mais aussi quelques super-administrateurs pour me seconder (ex. pour la création d'équipes), et bien sûr  et surtout les animateurs des collectifs autogérés _qui s'y sont inscrits volontairement_. Tous sont bénévoles encore une fois, donc merci à eux :)


**POUR LES ADMINISTRATEURS D'EQUIPE**

* Vous obtenez le droit de gérer une équipe via un des administrateurs généraux de kideba
  * Réglez ensuite: _Paramètres d'équipe" / Permettre à n'importe quel utilisateur disposant d'un compte de rejoindre cette équipe_
* la création d'un canal est trivial: cliquer le `+` à droite de l'indication `Canaux publics`
  * Mais pensez à choisir `public` (=les membres de l'équipe peuvent le rejoindre), ou `privé` (seulement sur invitation), vous pourrez le basculer ensuite. L'intérêt d'un canal privé est de lancer des discussions/groupe de travail sans intervention possible des autres membres, c'est assez rare mais possible.
  * Indiquez l'en-tête du canal (ligne courte), et une description plus complète: cela permet de préciser ses sujets de discussion et éviter trop de pollution. Les membres de l'équipes pourront aussi mieux s'y retrouver lorsqu'ils adhèrent au canal.
* Changements sur un canal
  * Assez trivial: en cliquant sur le titre du canal
  * Renommer un canal: via "Renommer le canal" ;) 
  * Supprimer un canal: c'est impossible! Mais on peut l'archiver, ce qui revient grosso modo au même (on peut d'ailleurs "ressuciter" un canal archivé)
* Le mieux est de garder le canal commun (`town-square` dans l'URL) comme source/débat/vrac qui débouche éventuellement sur la création de canaux dédiés à des thèmes précis.
* Pensez à modérer les canaux si besoin. Vous pouvez même éditer / couper-coller-déplacer, voire détruire des messages afin de condenser ou de dépolluer un canal.

doc/formations/hebergement/service/mattermost.txt · Dernière modification : 2024/05/29 09:03 de jeremie