概要
本記事では、Mattermostを素のUbuntuにインストール手順を整理しようと思います。
自分が構築したい環境は以下の通りです。
- Mattermost v7.5
- Linux
- Ubuntu 22.0.4
- データベース
- Postgresql v14
- Webサーバー
- Nginx(最新版)
以下の情報元を参照しながら構築したものですので、もし、ここ違うよ的なものがあれば、コメントいただけますと大変ありがたく思います。
- Mattermost を Docker で試験導入する (Docker Image 版)
- PostgreSQL 14をUbuntu 20.04へインストールし、外部から接続する
- Mattermostインストール
なお、本記事ではセキュリティ周りの設定は省略しておりますので、ご注意くださいまし。
インストール手順
以下の手順でインストールします。
- Postgresql のインストール
- データーベースのセットアップ
- Mattermostのインストール
- Mattermostのセットアップ
- Nginxのセットアップ(インストールされている前提)
- sytemctl のセットアップ
Postgresql のインストール
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
sudo apt install curl ca-certificates gnupg
curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
sudo apt upgrade
sudo apt install postgresql-14
インストールできたかどうかの確認
$ sudo su - postgres
$ psql
psql (14.0 (Ubuntu 14.0-1.pgdg20.04+1))
"help"でヘルプを表示します。
postgres=#
データーベースのセットアップ
- 2022/12/20 追記
- postgresql データ保存先を変更したい場合はこちらの記事が参考になります。
- https://ex1.m-yabe.com/archives/4719
- もし変更したい場合は、以下のオペレーション実施前に、「(参考)データベース保存先変更手順」を実施ください。
$ sudo su - postgres
$ psql
postgres=# create role mmuser with login createdb password 'mmuser-password';
CREATE ROLE
postgres=# create database mattermost with encoding 'UTF8' owner mmuser;
CREATE DATABASE
(参考)データベース保存先変更手順
新しい保存先:/mnt/postgresql
sudo mkdir /mnt/postgresql
chown -R postgres:postgres /mnt/postgresql/
sudo systemctl stop postgresql.service
postgresql.service
に、新しい保存先のパスを設定します。
sudo vi /usr/lib/systemd/system/postgresql.service
設定例(Environment=PGDATA=/mnt/postgresqlを追加)
[Unit]
Description=PostgreSQL RDBMS
[Service]
Type=oneshot
ExecStart=/bin/true
ExecReload=/bin/true
RemainAfterExit=on
Environment=PGDATA=/mnt/postgresql
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl restart postgresql
sudo -u postgres /usr/lib/postgresql/14/bin/initdb -D /mnt/postgresql
sudo systemctl restart postgresql
Mattermostのインストール
cd /usr/local/src
sudo wget https://releases.mattermost.com/7.5.0/mattermost-7.5.0-linux-amd64.tar.gz
sudo tar -xvzf mattermost*.gz
sudo mv mattermost /opt
sudo mkdir /opt/mattermost/data
sudo useradd --system --user-group mattermost
sudo chown -R mattermost:mattermost /opt/mattermost
sudo chmod -R g+w /opt/mattermost
sudo rm -f mattermost-7.5.0-linux-amd64.tar.gz
Mattermostのセットアップ
/opt/mattermost/config/config.json
を viで開いて、パラメータを以下のようにする。
"SiteURL": "http://mattermost.example.com/mattermost"
"DriverName": "postgres"
"DataSource": "postgres://mmuser:mmuser-password@localhost:5432/mattermost?sslmode=disable\u0026connect_timeout=10"
"MaxUsersPerTeam":200
"EnableLocalMode":true
"EnableUserAccessTokens": true
Nginxのセットアップ(インストールされている前提)
/etc/nginx/conf.d
配下に mattermost.conf
を作成します。
設定内容(例):
server {
listen 8088;
location / {
client_max_body_size 50M;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_pass http://localhost:8065;
}
}
sytemctl のセットアップ
$ sudo touch /lib/systemd/system/mattermost.service
$ sudo vi /lib/systemd/system/mattermost.service
内容(例):
[Unit]
Description=Mattermost
After=network.target
After=postgresql.service
BindsTo=postgresql.service
[Service]
Type=notify
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
User=mattermost
Group=mattermost
LimitNOFILE=49152
[Install]
WantedBy=postgresql.service
サービスの起動確認
$ sudo systemctl enable mattermost.service
$ sudo systemctl start mattermost.service
$ sudo systemctl status mattermost.service
この状態で、http://localhost:8065/
にアクセス出来れば成功です。