📝

【Mattermost】Windows10で開発環境を構築する

2023/05/16に公開

概要

  • WSL2を利用して、Windows上でUbuntuを起動する。
  • Ubuntu上にMattermostのServerをインストールする。
  • MattermostのServer・Webapp・Pluginを開発可能にする。

手順

Ubuntuのセットアップ

WSL2でUbuntuをインストール

  1. Windowsの検索機能で、「Windows の機能の有効化または無効化」と入力する。
  2. 「Windows の機能の有効化または無効化」で以下をチェックし、「OK」を押下する。
    • 「Linux 用 Windows サブシステム」
    • 「仮想マシンプラットフォーム」

  1. PCを再起動する。
  2. PowerShellを管理者として実行する。
  3. 下記の各行を入力し、「Enter」を押下する。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl --set-default-version 2
  1. Microsoft StoreでUbuntu 20.04.6 LTSをインストールし、起動する(=「開く」)。

  2. ユーザー名とパスワードを設定する。

Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: ubuntu
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.15.90.1-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Tue May 16 16:09:10 JST 2023

  System load:  0.84                Processes:             9
  Usage of /:   0.1% of 1006.85GB   Users logged in:       0
  Memory usage: 4%                  IPv4 address for eth0: xxx.xxx.xxx.xxx
  Swap usage:   0%

Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status


The list of available updates is more than a week old.
To check for new updates run: sudo apt update


This message is shown once a day. To disable it please create the
/home/ubuntu/.hushlogin file.
ubuntu@DESKTOP-XXXXX:~$
  1. エクスプローラーを起動し、アドレスバーに下記を入力する。
\\wsl$
  1. 「Ubuntu-20.04」をクイックアクセスにピン留めする。

systemctlを有効化

  1. Ubuntuで下記コマンドを実行し、wsl.confファイルを作成する。
sudo vi /etc/wsl.conf
/etc/wsl.conf
[boot]
systemd=true
  1. PowerShellで下記を実行することで、Ubuntuを終了する。
wsl --shutdown
  1. 再度Ubuntsuを起動し、psコマンドによりPID1でsystemdが実行していることを確認する。
ps -ae
    PID TTY          TIME CMD
      1 ?        00:00:00 systemd
      2 ?        00:00:00 init
  1. OSのシステムを更新する。
sudo apt -yV upgrade
  1. パッケージを更新する。
sudo apt -y update

Mattermostのインストール

MySQLをインストール

  1. MySQLをインストールする。
sudo apt install -y mysql-server
  1. MySQLの起動を確認する。
systemctl status mysql
ubuntu@DESKTOP-XXXXX:~$ sudo service mysql status
● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-05-16 18:54:49 JST; 24s ago
   Main PID: 2392 (mysqld)
     Status: "Server is operational"
      Tasks: 38 (limit: 9519)
     Memory: 371.9M
     CGroup: /system.slice/mysql.service
             └─2392 /usr/sbin/mysqld
  1. データベースとユーザーを作成する。
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'BocchiTheRock04!';
CREATE USER 'mmuser'@'%' identified by 'LycoReco02!';
CREATE DATABASE mattermost;
GRANT ALL PRIVILEGES ON mattermost.* TO 'mmuser'@'%';
EXIT;

MattermostのServerをインストール

  1. MattermostのServerファイル(tar.gzファイル)をダウンロードし、展開する。
sudo su
cd ~
wget https://releases.mattermost.com/7.10.0/mattermost-team-7.10.0-linux-amd64.tar.gz
tar -xvzf *.gz
mv mattermost /opt
mkdir /opt/mattermost/data
  1. Mattermost専用のグループ・ユーザーを作成し、権限を付与する。
useradd --system --user-group mattermost
chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost
  1. 下記の設定ファイルを変更する。
vi /opt/mattermost/config/config.json
/opt/mattermost/config/config.json
{
    "ServiceSettings": {
-        "SiteURL": "",
+        "SiteURL": "http://localhost",

~~~

"SqlSettings": {
-        "DriverName": "postgres",
+        "DriverName": "mysql",
-        "DataSource": "postgres://mmuser:mostest@localhost/mattermost_test?sslmode=disable\u0026connect_timeout=10\u0026binary_parameters=yes",
+        "DataSource": "mmuser:LycoReco02!@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",

~~~

    "PluginSettings": {
        "Enable": true,
-        "EnableUploads": false
+        "EnableUploads": true
  1. サービスを追加する。
cd /opt/mattermost
touch /etc/systemd/system/mattermost.service
vi /etc/systemd/system/mattermost.service
/etc/systemd/system/mattermost.service
[Unit]
Description=Mattermost
After=syslog.target network.target mysqld.service

[Service]
Type=notify
WorkingDirectory=/opt/mattermost
User=mattermost
ExecStart=/opt/mattermost/bin/mattermost
PIDFile=/var/spool/mattermost/pid/master.pid
TimeoutStartSec=3600
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

  1. Mattermostを起動する。
chmod 664 /etc/systemd/system/mattermost.service
systemctl daemon-reload
systemctl enable mattermost
systemctl start mattermost
systemctl status mattermost
  1. ブラウザで下記アドレスにアクセスする。
  1. Mattermostのユーザー(システム管理者)と任意のチームを作成し、ログインする。

開発環境の構築

Go言語

  1. makeをインストールする。
sudo su
apt install -y make
  1. Go言語のインストーラ(tar.gz)をダウンロードする。
cd ~
wget https://go.dev/dl/go1.19.5.linux-amd64.tar.gz
  1. Go言語をインストールし、パスを通す。
tar -C /usr/local -xzf go1.19.5.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
source ~/.profile
  1. インストールしたことを確認する。
go version
root@XXXXX:~# go version
go version go1.19.5 linux/amd64

Node.js

  1. curlをインストールする。
sudo su
apt install -y curl
  1. NVMをインストールする。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
source ~/.profile
  1. Server・Webappをカスタマイズする場合

    1. NVMでインストールできるNode.jsのバージョンを確認する。
    nvm ls-remote
    
    root@XXXXX:~# nvm ls-remote
            v0.1.14
            v0.1.15
    
            (省略)
            
            v20.1.0
            v20.2.0
    root@DESKTOP-CN47VLU:~#
    
    1. NVMでNode.jsとNPMをインストールする。バージョンはLastest LTS(現在はv18.16.0)にする。
    nvm install 18
    
    1. Node.jsとNPMがインストールされていることを確認する。
    node -v
    npm -v
    
    root@XXXXX:~# node -v
    v18.16.0
    root@XXXXX:~# npm -v
    9.5.1
    
  2. Pluginを開発する場合

    1. NVMでNode.jsとNPMをインストールする。バージョンはv11にする。
    nvm install 11
    
    1. Yarnをインストールする。
    apt install --no-install-recommends yarn
    
    1. Node.jsとNPMがインストールされていることを確認する。
    node -v
    npm -v
    
    root@XXXXX:~# node -v
    v11.15.0
    root@XXXXX:~# npm -v
    6.7.0
    
    1. 下記の環境変数を設定する。
    export MM_SERVICESETTINGS_SITEURL=http://localhost:8065
    export MM_ADMIN_USERNAME=★システム管理者のユーザー★
    export MM_ADMIN_PASSWORD=★システム管理者のパスワード★
    source ~/.profile
    

備考

ソースコード

環境情報

  • Windows10 バージョン22H2
  • Ubuntu 20.04.6 LTS
  • MySQL Ver 8.0.33-0ubuntu0.20.04.2 for Linux on x86_64 ((Ubuntu))
  • go version go1.19.5 linux/amd64
  • Node.js v18.16.0 or v11.15.0
  • NPM v9.5.1 or v6.7.0
  • Yarn v1.22.19

関連記事

https://zenn.dev/mshrynzw/articles/d4df2384cf970d
https://zenn.dev/mshrynzw/articles/932f307e049b30
https://zenn.dev/mshrynzw/articles/e50747c732b1ed

Discussion