LoginSignup
0
0

MattermostをRaspberry Pi 4 (64bit)にインストール

Posted at

所属しているDiscordサーバーがダメになったとき用の避難所をオンプレで作っておきたかったので、余っているRaspberry PiでMattermostサーバを建ててみる検証をした。


参考にしたページ

MariaDBのセットアップ

インストール方法は省略します。
インストールできたら、 mmuserというユーザーを作成します。

MariaDB [(none)]> create user 'mmuser'@'%' identified by 'パスワード';
Query OK, 0 rows affected (0.004 sec)

MariaDB [(none)]> select user,host from mysql.user;
+-------------+-----------+
| User        | Host      |
+-------------+-----------+
| mmuser      | %         |
| root        | %         |
| mariadb.sys | localhost |
| mysql       | localhost |
| root        | localhost |
+-------------+-----------+
5 rows in set (0.005 sec)

次に、mattermostというデータベースを作成します。

MariaDB [(none)]> create database mattermost;
Query OK, 1 row affected (0.001 sec)

MariaDB [(none)]> grant all privileges on mattermost.* to 'mmuser'@'%';
Query OK, 0 rows affected (0.003 sec)

MariaDB [(none)]> GRANT ALTER, CREATE, DELETE, DROP, INDEX, INSERT, SELECT, UPDATE ON mattermost.* TO 'mmuser'@'%';
Query OK, 0 rows affected (0.002 sec)

MariaDB [(none)]> exit
Bye

64bit版Mattermostをインストール

自分の使っているRaspberry Piが64bit版OSであることを念の為確認してください。
aarch64という文字列が含まれていれば、64bit版です。

pi@raspberrypi4:~ $ uname --kernel-name --kernel-release --machine
Linux 6.1.21-v8+ aarch64

下記wgetコマンドで、非公式版ですがARM64版のMattermostをダウンロードします。
ここで、もしダウンロードできなかった場合は配布サイトを確認しバージョン番号を合わせてください。

pi@raspberrypi4:~ $ wget https://github.com/SmartHoneybee/ubiquitous-memory/releases/download/v7.5.2/mattermost-v7.5.2-linux-arm64.tar.gz

ダウンロードしたファイルを展開します

tar -zxvf mattermost-v7.5.2-linux-arm64.tar.gz

抽出したファイルを /opt ディレクトリに移動します

sudo mv mattermost /opt

ファイルの保存ディレクトリを作成します

sudo mkdir /opt/mattermost/data

mattermost という名前でシステムユーザとグループを作成します

sudo useradd --system --user-group mattermost

ユーザーおよびグループ mattermost を Mattermost ファイルの所有者として設定します

sudo chown -R mattermost:mattermost /opt/mattermost

グループに書き込み権限を追加します

sudo chmod -R g+w /opt/mattermost

データベースドライバをセットアップします。まずはテキストエディタでコンフィグファイルを開きます

sudo vi /opt/mattermost/config/config.json

SqlSettings 内の DriverNamemysql に設定します。(mariadb ではありません)
DataSourceを次の値に設定し、パスワードを適切な値に置き換えます

mmuser:パスワード@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s

コンフィグファイルの該当行周辺は下記のようになります。

(略)
    "SqlSettings": {
        "DriverName": "mysql",
        "DataSource": "mmuser:831DAtndn@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",
        "DataSourceReplicas": [],
(略)

Mattermostサーバを試しに起動する

bin ディレクトリに移動します

cd /opt/mattermost

Mattermost サーバーをユーザー Mattermost として起動します

sudo -u mattermost ./bin/mattermost

サーバーにアクセスできることをテストするには、次の場所に移動します

http://Raspberry PiのIPアドレス:8065

サービスに登録する

systemdユニットファイルを作成します

sudo touch /lib/systemd/system/mattermost.service

テキスト エディタでroot としてユニット ファイルを開きます

sudo vi /lib/systemd/system/mattermost.service

次の行をファイルにコピーします

[Unit]
Description=Mattermost
After=network.target
After=mariadb.service
Requires=mariadb.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=multi-user.target

systemd に新しいユニットをロードさせます

sudo systemctl daemon-reload

ユニットがロードされていることを確認します

sudo systemctl status mattermost.service

Mattermost をまだ開始していないため、次のような出力が表示されるかと思います

● mattermost.service - Mattermost
     Loaded: loaded (/lib/systemd/system/mattermost.service; disabled; vendor preset: enabled)
     Active: inactive (dead)

サービスを開始します

sudo systemctl start mattermost.service

もう一度サービスの確認をします

sudo systemctl status mattermost.service

Mattermost が実行中であることを確認します

● mattermost.service - Mattermost
     Loaded: loaded (/lib/systemd/system/mattermost.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2023-12-30 18:07:07 JST; 2s ago
   Main PID: 10733 (mattermost)
      Tasks: 10 (limit: 8755)
        CPU: 1.492s
     CGroup: /system.slice/mattermost.service
             └─10733 /opt/mattermost/bin/mattermost

Dec 30 18:07:07 raspberrypi4 mattermost[10733]: {"timestamp":"2023-12-30 18:07:07.036 +09:00","level":">
Dec 30 18:07:07 raspberrypi4 mattermost[10733]: {"timestamp":"2023-12-30 18:07:07.040 +09:00","level":">
Dec 30 18:07:07 raspberrypi4 mattermost[10733]: {"timestamp":"2023-12-30 18:07:07.041 +09:00","level":">
Dec 30 18:07:07 raspberrypi4 mattermost[10733]: {"timestamp":"2023-12-30 18:07:07.048 +09:00","level":">
Dec 30 18:07:07 raspberrypi4 mattermost[10733]: {"timestamp":"2023-12-30 18:07:07.213 +09:00","level":">
Dec 30 18:07:07 raspberrypi4 mattermost[10733]: {"timestamp":"2023-12-30 18:07:07.213 +09:00","level":">
Dec 30 18:07:07 raspberrypi4 mattermost[10733]: {"timestamp":"2023-12-30 18:07:07.223 +09:00","level":">
Dec 30 18:07:07 raspberrypi4 systemd[1]: Started Mattermost.
Dec 30 18:07:07 raspberrypi4 mattermost[10733]: {"timestamp":"2023-12-30 18:07:07.224 +09:00","level":">
Dec 30 18:07:07 raspberrypi4 mattermost[10733]: {"timestamp":"2023-12-30 18:07:07.224 +09:00","level":">

Web管理インターフェイスでMattermostの初回セットアップをします。
まず、Web ブラウザで、次の場所にアクセスします

http://Raspberry PiのIPアドレス:8065

ユーザ登録画面が表示されるので、画面に従ってユーザ登録をします
screenshot 2023-12-30 18.21.40.png

Go to System Consoleをクリックします
screenshot 2023-12-30 18.26.37.png

左下のチュートリアルを×で閉じます
screenshot 2023-12-30 18.28.15.png

このような画面になればひとまずOKです
screenshot 2023-12-30 18.44.07.png

最後に、Mattermost がサーバブート時に起動するように設定します

sudo systemctl enable mattermost.service

メールを送れるようにする

左端の黒地の部分を下にスクロールし、 SMTP をクリックします
screenshot 2023-12-30 20.37.32.png

ひとまずフリーメールなどを取得し情報を入れていきます
入力する情報はメール事業者によって異なるので割愛します

Saveしたあと、Test Connectionをクリックするとテストメールが送られます
Mattermost - Testing Email Settings という件名のメールが来たら成功です

Email notificationsの設定

左端の黒地の部分を下にスクロールし、 Notifications をクリックします
screenshot 2024-01-06 12.56.04.png

  • Enable Email Notifications を True に設定
  • Notification Display Name を設定
  • Notification From Address を設定
  • Support Email Address を設定
  • Save をクリック

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;
        }
}

再起動

sudo reboot

Web ブラウザで、次の場所にアクセスします

http://Raspberry PiのIPアドレス:8088

アクセスできれば、Nginxが有効になっています。

0
0
0

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
0
0