Гид по технологиям

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

6 min read Самохостинг Обновлено 02 Dec 2025
Mattermost в Docker: установка на Ubuntu
Mattermost в Docker: установка на Ubuntu

Скриншот интерфейса Mattermost — чат и список каналов

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 -

Значок Docker и репозиторий

Создайте файл репозитория (пример для 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 — процесс и контейнеры

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-издание. При необходимости измените пользователя, под которым запускается контейнер.

Конфигурация контейнера Mattermost — фрагмент docker-compose.yml

В секции web: можно изменить порты, на которых Mattermost будет слушать. По умолчанию используются стандартные веб-порты. Если сервер выполняет только Mattermost, оставьте значения по умолчанию или настройте reverse proxy.

Если вы планируете продакшн-окружение, рассмотрите такие параметры:

  • Вынести базу данных в отдельный контейнер или на отдельный хост (PostgreSQL).
  • Настроить persistent volumes для data, logs, config.
  • Использовать внешнюю систему хранения для файлов (S3-совместимые хранилища) при высоких нагрузках.

Сборка контейнера

Перейдите в директорию с репозиторием и соберите контейнеры:

cd mattermost-docker
sudo docker-compose build

Процесс сборки контейнера Mattermost

Сборка может занять время. Когда она завершится, подготовьте директории данных и выставьте права доступа:

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

Откройте браузер и перейдите по адресу вашего сервера и порту, который вы указали в конфигурации. Если всё настроено верно, появится приветственная страница для создания административной учётной записи.

Форма создания учётной записи администратора Mattermost

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

Системная консоль Mattermost — панель администратора

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

Создание команды в Mattermost

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

Настройка URL команды Mattermost

После завершения вы попадёте в чат-комнату. Интерфейс должен быть знаком пользователям 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 для защиты от перегрузки хоста.

Методология развертывания (короткая)

  1. Подготовьте сервер и сделайте базовые бекапы.
  2. Установите Docker и Git, клонируйте mattermost-docker.
  3. Настройте docker-compose.yml и volumes.
  4. Соберите и запустите контейнеры.
  5. Завершите настройку в веб-интерфейсе (админ, команда, SMTP).
  6. Настройте nginx/HTTPS, мониторинг и бэкапы.

Чек-лист ролей

  • Администратор:

    • Создать админ-учётную запись.
    • Настроить системную консоль: SMTP, аутентификацию, политики паролей.
    • Планировать бэкапы.
  • Оператор/инфраструктура:

    • Настроить reverse proxy и TLS.
    • Обеспечить мониторинг и алерты.
    • Патчить Docker и хост-ОС.
  • Пользователь:

    • Создать команду/каналы.
    • Настроить уведомления и интеграции.

Сценарий отката и устранения неполадок

Если после обновления контейнер не запускается или интерфейс недоступен:

  1. Посмотрите логи контейнеров:
sudo docker-compose logs -f
  1. Проверьте состояние контейнеров и сетей:
sudo docker ps -a
sudo docker network ls
  1. Если ошибка в конфигурации, откатитесь к рабочей версии docker-compose.yml и перезапустите:
sudo docker-compose down
sudo docker-compose up -d
  1. Если контейнеры не стартуют из-за прав на каталоги, убедитесь в владельце и правах (UID 2000:2000 для Mattermost):
sudo chown -R 2000:2000 ./volumes/app/mattermost/
  1. Если потребуется восстановление из бэкапа, восстановите файловые тома и дамп БД в тестовой среде и проверьте целостность.

Команды и шпаргалка

Часто используемые команды для администрирования:

# Сборка и запуск
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 и ограничьте доступ административных интерфейсов.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Временные номера: Burner, бесплатный SMS и Google Voice
Конфиденциальность

Временные номера: Burner, бесплатный SMS и Google Voice

Добавить пользователя на Ubuntu Server
Системное администрирование

Добавить пользователя на Ubuntu Server

Quick Actions в Finder на Mac через Shortcuts
macOS

Quick Actions в Finder на Mac через Shortcuts

Автоматический вход в Mac OS X
macOS

Автоматический вход в Mac OS X

Как превратить Ubuntu‑ноутбук в точку доступа
Сеть

Как превратить Ubuntu‑ноутбук в точку доступа

Пропуск рекламы в Windows 7 Media Center
Руководство

Пропуск рекламы в Windows 7 Media Center