---
title: "Mattermost com Docker Compose e hospedagem em um clique"
description: "O Mattermost é um chat de equipe open source com canais, tópicos e integrações. Auto-hospede o Mattermost Team Edition, alternativa ao Slack, em um clique."
---

[← Todos os templates](https://pethost.dev/pt/templates/) · [Social e comunidade](https://pethost.dev/pt/templates/community/)

# Faça deploy de Mattermost em um clique

Chat de equipe de código aberto com canais, tópicos, compartilhamento de arquivos e integrações

Uma alternativa auto-hospedada para Slack e Microsoft Teams.

[Fazer deploy no Pethost](https://console.pethost.dev/?template=mattermost)

## O que é Mattermost?

O Mattermost é uma plataforma de colaboração de código aberto para chat de equipe: canais públicos e privados, mensagens diretas e em grupo, tópicos, compartilhamento de arquivos, busca, Markdown e emoji personalizado, em mais de 20 idiomas. Webhooks, comandos slash, bots, plugins e uma API o conectam a outras ferramentas, com integrações para Jira, GitHub e GitLab. Apps para Windows, macOS, Linux, iOS e Android se conectam ao endereço dele.

Este template roda o Mattermost Team Edition, a versão gratuita compilada sob a licença MIT, com PostgreSQL, e cria o Administrador do Sistema a partir dos campos antes de a página responder a qualquer pessoa. O Team Edition é feito para equipes pequenas: aceita até 250 usuários ativos e não tem login único, contas de convidados nem chamadas em grupo, que ficam nos planos pagos. O porém: as notificações push para os apps de celular passam pelo Test Push Notification Service do Mattermost, gratuito, que o próprio Mattermost não recomenda para produção.

## Hospedagem de Mattermost no Pethost

1. Você entra no Pethost com uma passkey, GitHub ou Google. Ainda não tem máquina? Você escolhe um plano, e o link espera até ela ficar pronta.
2. Novo projeto abre em Mattermost. Você preenche o que ele pede e clica em Criar projeto: **E-mail**, **Usuário**, **Senha do administrador**.
3. Em um ou dois minutos Mattermost está no ar no próprio endereço com HTTPS. Os segredos são gerados ao acaso, e os dados vão para o backup noturno.
4. É um projeto como qualquer outro: você ou seu agente podem alterá-lo, fazer rollback ou restaurá-lo.

## Perguntas sobre Mattermost

**O Mattermost é gratuito?**

Sim. O Mattermost Team Edition é gratuito, compilado sob a licença MIT a partir de código aberto, e guarda todo o histórico de mensagens. Ele é feito para equipes com menos de 250 usuários ativos; os planos pagos adicionam SSO, contas de convidados, chamadas em grupo e recursos de conformidade.

**Mattermost ou Slack?**

Os dois têm canais, tópicos, mensagens diretas e integrações. O Slack roda só nos servidores do Slack, enquanto o Mattermost roda onde você fizer o deploy dele, e os webhooks de entrada dele aceitam o formato do Slack, então muitas integrações do Slack funcionam sem mudança.

**Posso migrar do Slack para o Mattermost?**

Sim. As ferramentas de migração do Mattermost, mmetl e mmctl import, trazem usuários, canais, histórico de mensagens, mensagens diretas, tópicos e arquivos de uma exportação do Slack. Os comandos slash não vêm junto.

**O Mattermost tem apps para celular?**

Sim, para iOS e Android, e apps de desktop para Windows, macOS e Linux. Com o Team Edition, as notificações push passam pelo Test Push Notification Service do Mattermost, que é gratuito, mas não oferece garantias.

**Quantos usuários o Mattermost Team Edition aceita?**

Até 250 usuários ativos: ele avisa aos 200 e, aos 250, se recusa a criar ou ativar mais. Uma equipe que passa disso migra para um plano pago.

**As chamadas do Mattermost funcionam com este template?**

Do jeito que está, não. As chamadas enviam áudio e vídeo pela porta 8443, que este template não publica; o chat de texto, os arquivos e as integrações funcionam por completo.

**De quanta memória e disco Mattermost precisa?**

Mattermost usa cerca de 300 MB de memória com o Postgres para uma equipe pequena, e o banco de dados e os arquivos crescem com as mensagens e os uploads. No Pethost, o plano Starter basta, com espaço para outros apps ao lado.

## Arquivo Docker Compose de Mattermost

O template é este compose.yaml e as variáveis gravadas no .env do projeto quando ele é criado. O Pethost roda o arquivo exatamente como está escrito.

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

**Volumes, no backup noturno:** 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:
```

[compose.yaml](https://pethost.dev/templates/mattermost/compose.yaml)[Ver no GitHub](https://github.com/pethost-dev/templates/tree/main/mattermost)

## [Mais em Social e comunidade](https://pethost.dev/pt/templates/community/)

- [**listmonk**Um gerenciador de newsletters e listas de e-mail](https://pethost.dev/pt/templates/listmonk/)
- [**Lemmy**Um agregador de links e fórum para o fediverso](https://pethost.dev/pt/templates/lemmy/)
- [**NodeBB**Um fórum para a sua comunidade](https://pethost.dev/pt/templates/nodebb/)
- [**Apache Answer**Perguntas e respostas para uma comunidade, uma central de ajuda ou uma equipe, o seu próprio Stack Overflow](https://pethost.dev/pt/templates/apache-answer/)
- [**Mastodon**Seu próprio servidor no fediverso: posts, seguidores e respostas além do Mastodon](https://pethost.dev/pt/templates/mastodon/)
- [**Pixelfed**Compartilhamento de fotos sem anúncios nem algoritmos, uma alternativa ao Instagram que federa com o Mastodon](https://pethost.dev/pt/templates/pixelfed/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Templates](https://pethost.dev/pt/templates/)
- [Sobre nós](https://pethost.dev/about/)
- [Docs](https://pethost.dev/docs/)
- [Blog](https://pethost.dev/pt/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Plugin](https://github.com/pethost-dev/plugin)
- [Termos](https://pethost.dev/terms/)
- [Privacidade](https://pethost.dev/privacy/)
- [Reembolsos](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Bancos de dados

- [Postgres](https://pethost.dev/pt/postgres/)

Comparativos

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/pt/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/pt/blog/coolify-cloud-vs-dokploy-cloud/)
- [Preços Railway vs Render vs Fly.io](https://pethost.dev/pt/blog/railway-vs-render-vs-fly-io-pricing/)
- [Hospedagem gerenciada de Docker Compose](https://pethost.dev/pt/blog/managed-docker-compose-hosting/)

Alternativas

- [Alternativas ao Railway](https://pethost.dev/pt/blog/railway-alternatives/)
- [Alternativas ao Heroku](https://pethost.dev/pt/blog/heroku-alternatives/)
- [Alternativas ao Dokploy](https://pethost.dev/pt/blog/dokploy-alternatives/)
- [Alternativas ao Coolify](https://pethost.dev/pt/blog/coolify-alternatives/)
- [Alternativas ao Render](https://pethost.dev/pt/blog/render-alternatives/)
- [Alternativas ao Sliplane](https://pethost.dev/pt/blog/sliplane-alternatives/)
