LoginSignup
3
1

More than 1 year has passed since last update.

MattermostをUbuntu22.0.4 サーバにインストールする手順

Last updated at Posted at 2022-09-08

概要

本記事では、Mattermostを素のUbuntuにインストール手順を整理しようと思います。

自分が構築したい環境は以下の通りです。

  • Mattermost v7.5
  • Linux
    • Ubuntu 22.0.4
  • データベース
    • Postgresql v14
  • Webサーバー
    • Nginx(最新版)

以下の情報元を参照しながら構築したものですので、もし、ここ違うよ的なものがあれば、コメントいただけますと大変ありがたく思います。

なお、本記事ではセキュリティ周りの設定は省略しておりますので、ご注意くださいまし。

インストール手順

以下の手順でインストールします。

  1. Postgresql のインストール
  2. データーベースのセットアップ
  3. Mattermostのインストール
  4. Mattermostのセットアップ
  5. Nginxのセットアップ(インストールされている前提)
  6. 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=#

データーベースのセットアップ

$ 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/ にアクセス出来れば成功です。

image.png

3
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1