Устанавливаем Docker Desktop и запускаем
Создаем docker-compose.yml в новой папке C:\docker\mattermost
version: '3.8'
services:
mattermost-db:
image: postgres:18-alpine
container_name: mattermost-db
restart: unless-stopped
environment:
- POSTGRES_USER=<Имя_пользователя>
- POSTGRES_PASSWORD=<Пароль>
- POSTGRES_DB=mattermost
ports:
- "5432:5432"
networks:
- mm_network
volumes:
- ./volumes/db:/var/lib/postgresql
mattermost:
image: mattermost/mattermost-team-edition:latest
container_name: mattermost-app
restart: unless-stopped
depends_on:
- mattermost-db
ports:
- "8065:8065"
volumes:
- ./volumes/data:/mattermost/data
- ./volumes/config:/mattermost/config
- ./volumes/logs:/mattermost/logs
- ./volumes/plugins:/mattermost/plugins
environment:
- MM_SQLSETTINGS_DRIVERNAME=postgres
- MM_SQLSETTINGS_DATASOURCE=postgres://<Имя_пользователя>:<Пароль>@mattermost-db:5432/mattermost?sslmode=disable&connect_timeout=10
networks:
- mm_network
networks:
mm_network:
driver: bridge
<Имя_пользователя> и <Пароль> для подключения к БД
в docker-compose очень чувствительны к отступам в строках будьте внимательны.
Открываем в этой папке окно PowerShell и выполняем:
docker compose up -d
С первого запуска по логам можно увидеть, что mattermost не может подключиться к БД. Надо немного подождать чтоб база создалась потом перезапустить контейнер.
Переходим в браузере http://localhost:8065
Настраиваем WebServer
System Console >Environment > Web Server
В поле Site URL: вписываем http://localhost:8065 если локально или внешний url (настоятельно рекомендую настраивать с поддежкой ssl но об этом в следующей статье).
Настраиваем уведомления. Создаем пароль для приложения (Например в Yandex)
Заходим в System Console > Site Configuration > Notifications (Конфигурация сайта > Уведомления)
Указываем свой ящик Yandex
Заполняем поля
Заходим в System Console > Environment > SMTP
Проверяем уведомления.
Готово!
P.S. Добавим возможность загрузки плагинов из файлов останавливаем контейнер.
По умолчанию такая возможность отключена. Заходим в папку докера matterpost/volumes/config/ редактируем config.json
Меняем параметр PluginSettings: "EnableUploads": на true
запускаем контейнер.
Если в логах ошибки с URL заблокирован из-за CORS.
тогда в этом файле правим "AllowCorsFrom": "http://localhost:8065",
тут надо указать url адреса от которых идут ошибки.