Как установить Mattermost в Docker на Ubuntu

Mattermost — это open-source решение для командной переписки с возможностью самостоятельного хостинга, альтернатива Slack. Оно даёт больше контроля, гибкости и возможностей для приватности по сравнению с облачными сервисами. В этой статье показано, как быстро развернуть Mattermost через Docker, используя официально поддерживаемый контейнерный образ.
Перед началом
Что нужно перед установкой:
- Сервер с Ubuntu (в примерах используется Ubuntu Bionic, но шаги применимы к другим LTS с незначительными изменениями).
- Доступ по sudo / root.
- Публичный IP и открытые порты (обычно 80/443 для веба, 8065 по умолчанию для Mattermost).
- Свободное место для данных, логов и резервных копий.
Важно: для продакшна рекомендуется использовать внешнюю базу данных (PostgreSQL), TLS через reverse proxy и настроить резервное копирование данных и конфигураций.
Установка Docker
Docker официально поддерживается разработчиками Mattermost и значительно упрощает установку и поддержку сервера.
Добавьте репозиторий Docker
Репозитории Ubuntu могут содержать устаревшие пакеты Docker. Добавим официальный репозиторий Docker и его GPG-ключ.
Установите требования:
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-commonИмпортируйте GPG-ключ репозитория:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Создайте файл репозитория (пример для Ubuntu Bionic):
sudo tee /etc/apt/sources.list.d/docker.list << 'EOF'
deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable
EOFОбновите список пакетов:
sudo apt updateУстановите Docker и Git
Установим Docker Engine, docker-compose и Git:
sudo apt install -y docker-ce docker-compose git
Docker запустится автоматически после установки. Проверьте статус:
sudo systemctl status dockerЕсли вы планируете управлять Docker без sudo, добавьте пользователя в группу docker (опционально):
sudo usermod -aG docker $USERЗатем перелогиньтесь, чтобы изменения вступили в силу.
Скачайте контейнер Mattermost
Клонируем официальный репозиторий с Docker-конфигурацией Mattermost. Выберите каталог для загрузки и выполните:
cd ~/Downloads
git clone https://github.com/mattermost/mattermost-docker.gitСкачивание займёт несколько секунд — прогресс видно в терминале.
Редактирование конфигурации
Все файлы конфигурации находятся в папке mattermost-docker. Основной файл — docker-compose.yml.
Откройте docker-compose.yml в удобном редакторе и под блоком app: раскомментируйте строки args: и -edition=team, если хотите использовать Team-издание. При необходимости измените пользователя, под которым запускается контейнер.

В секции web: можно изменить порты, на которых Mattermost будет слушать. По умолчанию используются стандартные веб-порты. Если сервер выполняет только Mattermost, оставьте значения по умолчанию или настройте reverse proxy.
Если вы планируете продакшн-окружение, рассмотрите такие параметры:
- Вынести базу данных в отдельный контейнер или на отдельный хост (PostgreSQL).
- Настроить persistent volumes для
data,logs,config. - Использовать внешнюю систему хранения для файлов (S3-совместимые хранилища) при высоких нагрузках.
Сборка контейнера
Перейдите в директорию с репозиторием и соберите контейнеры:
cd mattermost-docker
sudo docker-compose build
Сборка может занять время. Когда она завершится, подготовьте директории данных и выставьте права доступа:
mkdir -pv ./volumes/app/mattermost/{data,logs,config}
sudo chown -R 2000:2000 ./volumes/app/mattermost/UID 2000 используется по умолчанию в образе Mattermost; если вы изменяли пользователя в docker-compose, скорректируйте владельца соответствующим образом.
Также читайте: Как настроить почтовый сервер в Ubuntu (при необходимости для уведомлений).
Запуск и подключение
Запустите контейнеры в фоне:
sudo docker-compose up -dОткройте браузер и перейдите по адресу вашего сервера и порту, который вы указали в конфигурации. Если всё настроено верно, появится приветственная страница для создания административной учётной записи.

Заполните поля для создания администратора. После входа вы получите доступ к системной консоли — административному интерфейсу для управления сервером.

Через меню создайте новую команду (эквивалент рабочих пространств/каналов):

Задайте имя и URL команды:

После завершения вы попадёте в чат-комнату. Интерфейс должен быть знаком пользователям Slack.
Рекомендации для продакшна
Несколько практических советов для безопасного и стабильного продакшн-развёртывания:
- TLS/HTTPS: используйте reverse proxy (nginx, Traefik) и автоматически обновляемые сертификаты (Let’s Encrypt). Никогда не экспонируйте Mattermost без TLS в открытый интернет.
- База данных: вынесите PostgreSQL за пределы контейнера приложения и создайте регулярные бэкапы.
- Резервное копирование: планируйте бэкапы
config,data, и дампов БД. - Мониторинг: интегрируйте метрики (Prometheus/Grafana) для отслеживания использования CPU, RAM, диска и задержек.
- Firewall: откройте только необходимые порты (обычно 80/443, SSH 22 для админов). Пример с ufw:
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable- Обновления: тестируйте обновления на staging перед применением в проде.
- Ограничение ресурсов: используйте лимиты памяти/CPU в Docker для защиты от перегрузки хоста.
Методология развертывания (короткая)
- Подготовьте сервер и сделайте базовые бекапы.
- Установите Docker и Git, клонируйте mattermost-docker.
- Настройте docker-compose.yml и volumes.
- Соберите и запустите контейнеры.
- Завершите настройку в веб-интерфейсе (админ, команда, SMTP).
- Настройте nginx/HTTPS, мониторинг и бэкапы.
Чек-лист ролей
Администратор:
- Создать админ-учётную запись.
- Настроить системную консоль: SMTP, аутентификацию, политики паролей.
- Планировать бэкапы.
Оператор/инфраструктура:
- Настроить reverse proxy и TLS.
- Обеспечить мониторинг и алерты.
- Патчить Docker и хост-ОС.
Пользователь:
- Создать команду/каналы.
- Настроить уведомления и интеграции.
Сценарий отката и устранения неполадок
Если после обновления контейнер не запускается или интерфейс недоступен:
- Посмотрите логи контейнеров:
sudo docker-compose logs -f- Проверьте состояние контейнеров и сетей:
sudo docker ps -a
sudo docker network ls- Если ошибка в конфигурации, откатитесь к рабочей версии docker-compose.yml и перезапустите:
sudo docker-compose down
sudo docker-compose up -d- Если контейнеры не стартуют из-за прав на каталоги, убедитесь в владельце и правах (UID 2000:2000 для Mattermost):
sudo chown -R 2000:2000 ./volumes/app/mattermost/- Если потребуется восстановление из бэкапа, восстановите файловые тома и дамп БД в тестовой среде и проверьте целостность.
Команды и шпаргалка
Часто используемые команды для администрирования:
# Сборка и запуск
sudo docker-compose build
sudo docker-compose up -d
# Остановка и удаление
sudo docker-compose down
# Логи
sudo docker-compose logs -f
# Обновление контейнера (в репозитории обновлённый образ)
git pull
sudo docker-compose pull
sudo docker-compose up -d --no-deps --build app
# Вход в контейнер
sudo docker exec -it /bin/bash Частые ошибки и рекомендации по их предотвращению
- Неправильные права на каталоги volumes — Mattermost не сможет писать данные. Решение: корректный chown.
- Ошибки SMTP — проверяйте параметры SMTP и открыт ли порт на почтовом сервере.
- Проблемы с Certbot/HTTPS — используйте отдельный reverse proxy и тестируйте получение сертификата перед продакшном.
- Переполнение диска — настроить мониторинг и алерты на использование диска.
Локальные рекомендации для России и соседних регионов
- Учитывайте часовой пояс сервера (TZ) и настройте системное время для корректного отображения временных меток.
- При использовании внешних сервисов для почты или S3 проверьте доступность их регионов и требования к хранению данных.
- Если нужно соответствие локальным требованиям по хранению данных, спланируйте архитектуру с хранением на собственных хранилищах.
Критерии приёмки
- Веб-интерфейс доступен по HTTPS и открывается страница входа.
- Создана и протестирована админ-учётная запись.
- Бекап данных и дамп БД присутствуют и тестировано восстановление.
- Мониторинг и алерты настроены (какие метрики и пороги определяются организацией).
Краткое резюме
Mattermost легко развернуть через Docker: добавьте репозиторий Docker, установите Docker и Git, клонируйте официальный репозиторий, отредактируйте docker-compose.yml, соберите и запустите контейнеры. Для продакшна дополнительно настраивайте TLS, отдельную базу данных, бэкапы и мониторинг.
Важно: проверяйте доступы, права на тома и регулярно тестируйте процедуры восстановления. Удачного развертывания!
Важно: если вы запускаете Mattermost в публичном интернете, обязательно настройте TLS и ограничьте доступ административных интерфейсов.
Похожие материалы
Временные номера: Burner, бесплатный SMS и Google Voice
Добавить пользователя на Ubuntu Server
Quick Actions в Finder на Mac через Shortcuts
Автоматический вход в Mac OS X
Как превратить Ubuntu‑ноутбук в точку доступа