← Все шаблоны · Соцсети и сообщества
Задеплойте Mattermost в один клик
Командный чат с открытым кодом: каналы, обсуждения, обмен файлами и интеграции
Альтернатива Slack и Microsoft Teams на вашей машине.
Что такое Mattermost?
Mattermost — платформа с открытым кодом для совместной работы в командном чате: публичные и приватные каналы, личные и групповые сообщения, обсуждения, обмен файлами, поиск, Markdown и пользовательские смайлики, на более чем 20 языках. Вебхуки, слэш-команды, боты, плагины и API связывают его с другими инструментами, а для Jira, GitHub и GitLab есть интеграции. Приложения для Windows, macOS, Linux, iOS и Android подключаются к его адресу.
Этот шаблон запускает Mattermost Team Edition — бесплатную сборку под лицензией MIT — с PostgreSQL и создает администратора системы по данным из полей еще до того, как страница кому-либо ответит. Team Edition рассчитана на небольшие команды: она принимает до 250 активных пользователей, и в ней нет единого входа, гостевых учетных записей и групповых звонков — они есть в платных тарифах. Подвох: push-уведомления в приложения на телефоне идут через бесплатный Test Push Notification Service от Mattermost, который сам Mattermost не рекомендует для продакшена.
Хостинг Mattermost на Pethost
- Вы входите в Pethost — с passkey, через GitHub или Google. Машины еще нет? Вы выбираете тариф, и ссылка ждет, пока машина не будет готова.
- Окно «Новый проект» открывается на приложении Mattermost. Вы заполняете то, что оно просит, и нажимаете «Создать проект»: Электронная почта, Имя пользователя, Пароль администратора.
- Через минуту-две Mattermost работает по своему адресу с HTTPS. Секреты создаются случайно, а данные попадают в ночной бэкап.
- Это проект как любой другой: вы или ваш агент можете его изменить, откатить или восстановить.
Вопросы про Mattermost
Mattermost бесплатный?
Да. Mattermost Team Edition бесплатна, собрана из открытого кода под лицензией MIT и хранит всю историю сообщений. Она рассчитана на команды меньше 250 активных пользователей; платные тарифы добавляют SSO, гостевые учетные записи, групповые звонки и функции для соответствия требованиям (compliance).
Mattermost или Slack?
В обоих есть каналы, обсуждения, личные сообщения и интеграции. Slack работает только на серверах Slack, а Mattermost — там, где вы его задеплоите, и его входящие вебхуки принимают формат Slack, так что многие интеграции Slack работают без изменений.
Можно ли переехать со Slack на Mattermost?
Да. Инструменты миграции Mattermost, mmetl и mmctl import, переносят из экспорта Slack пользователей, каналы, историю сообщений, личные сообщения, обсуждения и файлы. Слэш-команды не переносятся.
Есть ли у Mattermost мобильные приложения?
Да, для iOS и Android, а также десктопные приложения для Windows, macOS и Linux. В Team Edition push-уведомления идут через Test Push Notification Service от Mattermost — он бесплатный, но без каких-либо гарантий.
Сколько пользователей может быть в Mattermost Team Edition?
До 250 активных пользователей: на 200 она предупреждает, а на 250 отказывается создавать или активировать новых. Команда, которая из нее выросла, переходит на платный тариф.
Работают ли звонки Mattermost с этим шаблоном?
В исходном виде — нет. Звонки передают звук и видео через порт 8443, который этот шаблон не публикует; текстовый чат, файлы и интеграции работают полностью.
Сколько памяти и диска нужно Mattermost?
Mattermost для небольшой команды занимает около 300 MB памяти вместе с Postgres, а база данных и файлы растут вместе с сообщениями и загрузками. На Pethost ему хватит тарифа Starter, и рядом останется место для других приложений.
Mattermost: файл Docker Compose
Шаблон — это этот compose.yaml и переменные, которые пишутся в .env проекта при его создании. Pethost запускает файл так, как он написан.
Контейнеры: proxy (caddy:2.11-alpine), mattermost (mattermost/mattermost-team-edition:12.0), postgres (postgres:17-alpine).
Тома, в ночном бэкапе: 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:
Еще в категории «Соцсети и сообщества»
- listmonkМенеджер рассылок и списков подписчиков
- LemmyАгрегатор ссылок и форум для федиверса
- NodeBBФорум для вашего сообщества
- Apache AnswerВопросы и ответы для сообщества, справочного центра или команды, свой Stack Overflow
- MastodonСвой сервер в федиверсе: посты, подписки и ответы по всему Mastodon и не только
- PixelfedОбмен фотографиями без рекламы и алгоритмов — альтернатива Instagram, которая федерируется с Mastodon