Français
Commencer

← Tous les templates · Réseaux et communauté

Déployez Mattermost en un clic

La messagerie d’équipe open source, avec canaux, fils de discussion, partage de fichiers et intégrations

Une alternative auto-hébergée à Slack et Microsoft Teams.

Qu’est-ce que Mattermost ?

Mattermost est une plateforme de collaboration open source pour la messagerie d’équipe : canaux publics et privés, messages personnels et de groupe, fils de discussion, partage de fichiers, recherche, Markdown et émoticônes personnalisées, dans plus de 20 langues. Des webhooks, des commandes slash, des bots, des plugins et une API le relient à d’autres outils, avec des intégrations pour Jira, GitHub et GitLab. Des applications pour Windows, macOS, Linux, iOS et Android se connectent à son adresse.

Ce template fait tourner Mattermost Team Edition, la version gratuite sous licence MIT, avec PostgreSQL, et crée l’Administrateur système à partir des champs avant que la page ne réponde à quiconque. Team Edition est pensée pour les petites équipes : elle accepte jusqu’à 250 utilisateurs actifs et n’a ni authentification unique, ni comptes invités, ni appels de groupe, qui font partie des offres payantes. Le revers : les notifications push vers les applications pour téléphone passent par le Test Push Notification Service gratuit de Mattermost, que Mattermost ne recommande pas en production.

Hébergement de Mattermost sur Pethost

  1. Vous vous connectez à Pethost avec une clé d’accès, GitHub ou Google. Pas encore de machine ? Vous choisissez une offre, et le lien attend qu’elle soit prête.
  2. Nouveau projet s’ouvre sur Mattermost. Vous remplissez ce qu’il demande et cliquez sur Créer le projet : E-mail, Nom d’utilisateur, Mot de passe administrateur.
  3. En une minute ou deux, Mattermost tourne à sa propre adresse en HTTPS. Ses secrets sont créés au hasard, et ses données sont dans la sauvegarde nocturne.
  4. C’est un projet comme les autres : vous ou votre agent pouvez le modifier, revenir à une version précédente ou le restaurer.

Questions sur Mattermost

Mattermost est-il gratuit ?

Oui. Mattermost Team Edition est gratuite, compilée sous licence MIT à partir du code open source, et garde tout l’historique des messages. Elle est pensée pour les équipes de moins de 250 utilisateurs actifs ; les offres payantes ajoutent le SSO, les comptes invités, les appels de groupe et des fonctions de conformité.

Mattermost ou Slack ?

Les deux ont des canaux, des fils de discussion, des messages personnels et des intégrations. Slack ne tourne que sur les serveurs de Slack, alors que Mattermost tourne là où vous le déployez, et ses webhooks entrants acceptent le format de Slack, si bien que beaucoup d’intégrations Slack fonctionnent telles quelles.

Puis-je passer de Slack à Mattermost ?

Oui. Les outils de migration de Mattermost, mmetl et mmctl import, reprennent d’un export Slack les utilisateurs, les canaux, l’historique des messages, les messages personnels, les fils de discussion et les fichiers. Les commandes slash ne sont pas reprises.

Mattermost a-t-il des applications mobiles ?

Oui, pour iOS et Android, ainsi que des applications de bureau pour Windows, macOS et Linux. Avec Team Edition, les notifications push passent par le Test Push Notification Service de Mattermost, gratuit mais sans aucune garantie.

Combien d’utilisateurs Mattermost Team Edition accepte-t-elle ?

Jusqu’à 250 utilisateurs actifs : elle prévient à 200, et à 250 elle refuse d’en créer ou d’en activer davantage. Une équipe qui la dépasse passe à une offre payante.

Les appels Mattermost fonctionnent-ils avec ce template ?

Pas tel quel. Les appels font passer leur audio et leur vidéo par le port 8443, que ce template ne publie pas ; la messagerie texte, les fichiers et les intégrations fonctionnent entièrement.

De combien de mémoire et de disque Mattermost a-t-il besoin ?

Mattermost prend environ 300 MB de mémoire avec Postgres pour une petite équipe, et sa base de données et ses fichiers grossissent avec les messages et les fichiers envoyés. Sur Pethost, l’offre Starter lui suffit, avec de la place pour d’autres applications à côté.

Le fichier Docker Compose de Mattermost

Le template, c’est ce compose.yaml et les variables écrites dans le .env du projet à sa création. Pethost exécute le fichier tel qu’il est écrit.

Conteneurs : proxy (caddy:2.11-alpine), mattermost (mattermost/mattermost-team-edition:12.0), postgres (postgres:17-alpine).

Volumes, dans la sauvegarde nocturne : config, data, logs, plugins, client-plugins, db.

services:
  # A new Mattermost makes whoever signs up first its System Admin. So the page is served through
  # this small Caddy, which answers only once the administrator exists: at its start it waits for
  # Mattermost, and while Mattermost says it has no accounts, it signs the administrator up with
  # the email, username and password given, as that first account. A refusal stops it, says so in
  # its log, and is tried again at its next start.
  proxy:
    image: caddy:2.11-alpine
    restart: unless-stopped
    environment:
      ADMIN_EMAIL: ${ADMIN_EMAIL}
      ADMIN_USERNAME: ${ADMIN_USERNAME}
      ADMIN_PASSWORD: ${ADMIN_PASSWORD}
    command:
      - sh
      - -c
      - |
        set -e
        mattermost=http://mattermost:8065
        echo "waiting for Mattermost"
        until client=$$(wget -qO- "$$mattermost/api/v4/config/client?format=old" 2>/dev/null); do sleep 2; done
        case "$$client" in
          *'"NoAccounts":"true"'*)
            json() { printf '%s' "$$1" | sed 's/\\/\\\\/g; s/"/\\"/g'; }
            body=$$(printf '{"email":"%s","username":"%s","password":"%s"}' \
              "$$(json "$$ADMIN_EMAIL")" "$$(json "$$ADMIN_USERNAME")" "$$(json "$$ADMIN_PASSWORD")")
            if ! wget -qO /dev/null --header 'Content-Type: application/json' --post-data "$$body" "$$mattermost/api/v4/users"; then
              echo "Mattermost refused the administrator: an email address, a username of letters, digits, dots, dashes and underscores, and a password of 8 characters at least are what it takes" >&2
              exit 1
            fi
            echo "the administrator $$ADMIN_USERNAME is made"
            ;;
        esac
        exec caddy run --config /etc/caddy/Caddyfile --adapter caddyfile
    configs:
      - source: caddy
        target: /etc/caddy/Caddyfile
    # The image's own directories, which a proxy without certificates does not use.
    tmpfs:
      - /config
      - /data
    depends_on:
      - mattermost

  mattermost:
    image: mattermost/mattermost-team-edition:12.0
    restart: unless-stopped
    environment:
      MM_SQLSETTINGS_DRIVERNAME: postgres
      MM_SQLSETTINGS_DATASOURCE: postgres://mattermost:${POSTGRES_PASSWORD}@postgres:5432/mattermost?sslmode=disable&connect_timeout=10
      MM_SERVICESETTINGS_SITEURL: ${URL}
      # Only the proxy reaches Mattermost, and it says who the client is.
      MM_SERVICESETTINGS_TRUSTEDPROXYIPHEADER: X-Forwarded-For
    volumes:
      - config:/mattermost/config
      - data:/mattermost/data
      - logs:/mattermost/logs
      - plugins:/mattermost/plugins
      - client-plugins:/mattermost/client/plugins
    depends_on:
      postgres:
        condition: service_healthy

  postgres:
    image: postgres:17-alpine
    restart: unless-stopped
    environment:
      POSTGRES_DB: mattermost
      POSTGRES_USER: mattermost
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    volumes:
      - db:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -U mattermost -d mattermost"]
      interval: 5s
      timeout: 5s
      retries: 10
      start_period: 30s

configs:
  caddy:
    content: |
      {
        admin off
        auto_https off
      }

      :8065 {
        reverse_proxy mattermost:8065
      }

volumes:
  config:
  data:
  logs:
  plugins:
  client-plugins:
  db:

Aussi dans Réseaux et communauté