← Усі шаблони · Соцмережі та спільноти
Задеплойте 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 на Pethost
- Ви входите в Pethost — з ключем доступу, через GitHub або Google. Машини ще немає? Ви обираєте тариф, і посилання чекає, доки машина не буде готова.
- Вікно «Новий проєкт» відкривається на застосунку Mattermost. Ви заповнюєте те, що він просить, і натискаєте «Створити проєкт»: Електронна пошта, Ім’я користувача, Пароль адміністратора.
- За хвилину-дві Mattermost працює за власною адресою з HTTPS. Секрети створюються випадково, а дані потрапляють у щонічний бекап.
- Це проєкт як будь-який інший: ви або ваш агент можете його змінити, відкотити або відновити.
Питання про Mattermost
Mattermost безкоштовний?
Так. Mattermost Team Edition безкоштовна, зібрана з відкритого коду за ліцензією MIT і зберігає всю історію повідомлень. Вона розрахована на команди, де менше ніж 250 активних користувачів; платні тарифи додають SSO, гостьові акаунти, групові дзвінки й функції комплаєнсу.
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