📝
【Mattermost】Windows11で開発環境を構築する
概要
- WSL2を利用して、Windows上でUbuntuを起動する。
- Ubuntu上にMattermost 10のServerをインストールする。
- MattermostのServer・Webapp・Pluginを開発可能にする。
手順
Ubuntuのセットアップ
WSL2でUbuntuをインストール
- Windowsの検索機能で、「Windows の機能の有効化または無効化」と入力する。
- 「Windows の機能の有効化または無効化」で以下をチェックし、「OK」を押下する。
- 「Linux 用 Windows サブシステム」
- 「仮想マシンプラットフォーム」
- PCを再起動する。
- PowerShellを管理者として実行する。
- 下記の各行を入力し、「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
-
Microsoft StoreでUbuntu 20.04.6 LTSをインストールし、起動する(=「開く」)。
-
ユーザー名とパスワードを設定する。
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:~$
- エクスプローラーを起動し、アドレスバーに下記を入力する。
\\wsl$
- 「Ubuntu-20.04」をクイックアクセスにピン留めする。
systemctlを有効化
Ubuntuで下記コマンドを実行し、wsl.confファイルを作成する。
sudo vi /etc/wsl.conf
/etc/wsl.conf[boot] systemd=true
PowerShellで下記を実行することで、Ubuntuを終了する。
wsl --shutdown
- 再度Ubuntsuを起動し、psコマンドによりPID1でsystemdが実行していることを確認する。
ps -ae
PID TTY TIME CMD 1 ? 00:00:00 systemd 2 ? 00:00:00 init
- OSのシステムを更新する。
sudo apt -yV upgrade
- パッケージを更新する。
sudo apt -y update
Mattermostのインストール
MySQLをインストール
- MySQLをインストールする。
sudo apt install -y mysql-server
- 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
- データベースとユーザーを作成する。
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をインストール
- MattermostのServerファイル(tar.gzファイル)をダウンロードし、展開する。
sudo su
cd ~
wget https://releases.mattermost.com/10.0.0/mattermost-team-10.0.0-linux-amd64.tar.gz
tar -xvzf *.gz
mv mattermost /opt
mkdir /opt/mattermost/data
- Mattermost専用のグループ・ユーザーを作成し、権限を付与する。
useradd --system --user-group mattermost
chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost
- 下記の設定ファイルを変更する。
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
- サービスを追加する。
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
- Mattermostを起動する。
chmod 664 /etc/systemd/system/mattermost.service
systemctl daemon-reload
systemctl enable mattermost
systemctl start mattermost
systemctl status mattermost
- ブラウザで下記アドレスにアクセスする。
- Mattermostのユーザー(システム管理者)と任意のチームを作成し、ログインする。
開発環境の構築
Go言語
- makeをインストールする。
sudo su
apt install -y make
- Go言語のインストーラ(tar.gz)をダウンロードする。
cd ~
wget https://go.dev/dl/go1.19.5.linux-amd64.tar.gz
- Go言語をインストールし、パスを通す。
tar -C /usr/local -xzf go1.19.5.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
source ~/.profile
- インストールしたことを確認する。
go version
root@XXXXX:~# go version go version go1.19.5 linux/amd64
Node.js
- curlをインストールする。
sudo su
apt install -y curl
- NVMをインストールする。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
source ~/.profile
-
Server・Webappをカスタマイズする場合
- 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:~#
- NVMでNode.jsとNPMをインストールする。バージョンはLastest LTS(現在はv18.16.0)にする。
nvm install 18
- Node.jsとNPMがインストールされていることを確認する。
node -v npm -v
root@XXXXX:~# node -v v18.16.0 root@XXXXX:~# npm -v 9.5.1
-
Pluginを開発する場合
- NVMでNode.jsとNPMをインストールする。バージョンはv11にする。
nvm install 11
- Yarnをインストールする。
apt install --no-install-recommends yarn
- Node.jsとNPMがインストールされていることを確認する。
node -v npm -v
root@XXXXX:~# node -v v11.15.0 root@XXXXX:~# npm -v 6.7.0
- 下記の環境変数を設定する。
export MM_SERVICESETTINGS_SITEURL=http://localhost:8065 export MM_ADMIN_USERNAME=★システム管理者のユーザー★ export MM_ADMIN_PASSWORD=★システム管理者のパスワード★ source ~/.profile
備考
ソースコード
- mattermost/mattermost-server
- mattermost/mattermost-webapp
- mattermost/mattermost-plugin-starter-templat
環境情報
- 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
関連記事
Discussion