Mattermostは、プログラミング言語GolangおよびReactで記述されたオープンソースのメッセージングシステムです。これはSlackの代替手段であり、SlackやHipchatなどの独自のメッセージングサービスを構築するために使用できます。
Mattermostは、チームのコミュニケーションを1つの場所にもたらし、どこからでもアクセスできるようにします。デスクトップ、Androidデバイス、iPhoneからアクセスできます。
このチュートリアルでは、MattermostをDebian Buster 10にインストールする方法を示します。MattermostをMySQLデータベースサーバー、Nginx Webサーバーとともにインストールし、最新のDebianバージョンBuster10でSystemdサービスとしてMattermostを実行します。
>前提条件
このチュートリアルでは、2GBのRam、25の空きディスク容量、2つのCPUを搭載したDebian10へのMattermostのインストールをテストします。
何をしますか?
- MySQLサーバーをインストールする
- 最も重要なMySQLデータベースを作成する
- システムユーザーの追加とMattermostのダウンロード
- 最も重要な構成
- Systemdサービスとして最も重要なセットアップ
- SSLLetsencryptを生成する
- Nginxをリバースプロキシとしてインストールして構成する
- テスト
まず、MySQLServer8.0を公式リポジトリからDebianサーバーにインストールします。 Sp、公式のMySQLリポジトリを追加し、MySQLパッケージをインストールします。
以下のaptコマンドを使用して、「gnupg2」ツールをDebianサーバーにインストールします。
sudo apt install curl wget gnupg2
次のコマンドを使用して、DebianシステムのMySQLリポジトリをダウンロードして追加します。
wget https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb
dpkg -i mysql-apt-config_0.8.13-1_all.deb
次に、すべてのDebianリポジトリを更新し、MySQLサーバーパッケージをインストールします。
sudo apt update
sudo apt install mysql-server -y
MySQLサーバーのインストール中に、MySQLサーバーのルートパスワードを構成するように求められます。
MySQLのrootパスワードを入力し、それを繰り返します。
インストールが完了したら、MySQLサービスを開始して
に追加します。systemctl start mysql
systemctl enable mysql
その結果、MySQLサーバーがDebian Buster 10にインストールされ、MySQLサーバーのルートパスワードが設定されました。
デフォルトでは、PostgreSQLデータベースとMySQLデータベースの2つのデータベースドライバーのMattermostサポート。このチュートリアルでは、MattermostのデフォルトデータベースとしてMySQLを使用します。
このステップでは、Mattermostインストール用の新しいデータベースとユーザーを作成します。
以下のようにrootユーザーとパスワードを使用してMySQLシェルにログインします。
mysql -u root -p
次に、Mattermostの新しいデータベースとユーザーを作成します。ユーザー「mmuser」とパスワード「mmuser-password」を使用して、新しいデータベース「mattermost」を作成します。
create database mattermost;
create user [email protected] identified by 'mmuser-password';
grant all privileges on mattermost.* to [email protected];
flush privileges;
次に、「exit」と入力してMySQLシェルからログアウトします。
その結果、Mattermostインストール用のMySQLデータベースとユーザーが作成されました。
このステップでは、新しいシステムユーザーを作成し、Mattermostソースコードをダウンロードします。 Mattermostソフトウェアは、「mattermost」という名前のユーザーの下で実行され、「/ opt/mattermost」ディレクトリにインストールされます。
以下のコマンドを使用して、「mattermost」という名前の新しいシステムユーザーを作成します。
useradd --system --user-group mattermost
次に、「/ opt」ディレクトリに移動し、以下のcurlコマンドを使用してMattermostソースコードをダウンロードします。
cd /opt/
curl -o mattermost.tar.gz https://releases.mattermost.com/5.21.0/mattermost-5.21.0-linux-amd64.tar.gz
Mattermostソースコードを抽出し、新しい「データ」ディレクトリを作成します。
tar -xf mattermost.tar.gz
mkdir -p /opt/mattermost/data
その後、「/ opt/mattermost」ディレクトリの所有権を「mattermost」ユーザーに変更して書き込み可能にします。
chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost
その結果、「mattermost」ユーザーが作成され、Mattermostソースコードが「/ opt/mattermost」ディレクトリにダウンロードされました。
このステップでは、Mattermostリッスンアドレスとデータベースを設定します。 Mattermostサービスは、デフォルトのポート8065のローカルIPアドレスで実行され、データベースシステムとしてMySQLを使用します。
'/ opt / mattermost'ディレクトリに移動し、'config'ディレクトリの構成ファイル'config.json'を編集します。
cd /opt/mattermost/
vim config/config.json
[ListenAddress]オプションで、IPアドレスを[127.0.0.1]に変更します。
"ListenAddress": "127.0.0.1:8065",
1つの「SqlSettings」、DriverNameを「mysql」に変更し、「DataSource」を作成したMySQLデータベースとユーザーで変更します。
"SqlSettings": {
"DriverName": "mysql",
"DataSource": "dbuser:[email protected](localhost:3306)/dbname?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",
保存して閉じます。
次に、次のコマンドを使用してMattermostインストールを初期化します。
sudo -u mattermost ./bin/mattermost
以下は、得られる結果です。
その結果、MattermostはローカルIPアドレス「127.0.0.1」でポート「8065」を使用して稼働しています。「Ctrl+c」ボタンを押して終了します。
このステップでは、Mattermostをsystemdサービスとして設定し、MySQLデータベースサービスの実行後、システムの起動時に自動的に実行されます。
次に、「/ lib / systemd / system」ディレクトリに移動し、新しいサービスファイル「mattermost.service」を作成します。
cd /lib/systemd/system/
vim mattermost.service
次に、次の構成を貼り付けます。
[Unit]
Description=Mattermost
After=network.target
After=mysql.service
Requires=mysql.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
保存して閉じます。
次に、Debianシステムにsystemdマネージャーをリロードします。
systemctl daemon-reload
その後、Mattermostサービスを開始し、システムブートに追加します。
systemctl start mattermost
systemctl enable mattermost
Mattermostサービスが稼働しています。次のコマンドを使用して、サービスを確認してください。
systemctl status mattermost
以下は、得られる結果です。
その結果、MattermostサービスはDebianシステムで稼働しており、システムの起動時に自動的に実行されます。
このステップでは、certbotツールをインストールし、SSLLetsencryptを生成します。 LetsencryptのSSLを使用してMattermostのインストールを保護します。
以下のaptコマンドを使用してcertbotツールをインストールします。
sudo apt install certbot
インストールが完了したら、以下のcertbotコマンドを使用してSSLletsencryptを生成します。
certbot certonly --standalone --agree-tos -m [email protected] -d mattermost.hakase-labs.io
その結果、SSL証明書は「/etc/letsencrypt/live/mattermost-hakase-labs.io」ディレクトリに生成されます。
このステップでは、Nginx Webサーバーをインストールし、Mattermostサービスのリバースプロキシとして設定します。
以下のaptコマンドを使用してNginxをインストールします。
sudo apt install nginx -y
インストールが完了したら、Nginxサービスを開始し、システムブートに追加します。
systemctl start nginx
systemctl enable nginx
NginxWebサーバーが稼働しています。
次に、「/ etc / nginx」構成ディレクトリに移動し、最も重要な新しい仮想ホスト構成を作成します。
cd /etc/nginx/
vim sites-available/mattermost
ドメイン名とSSL証明書のパスを独自のものに変更してから、構成を貼り付けます。
upstream backend {
server 127.0.0.1:8065;
keepalive 32;
}
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;
server {
listen 80;
server_name edu.initrc.fun;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name edu.initrc.fun
ssl on;
ssl_certificate /etc/letsencrypt/live/edu.initrc.fun/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/edu.initrc.fun/privkey.pem;
ssl_session_timeout 1d;
ssl_protocols TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
# HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
add_header Strict-Transport-Security max-age=15768000;
# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
ssl_stapling_verify on;
location ~ /api/v[0-9]+/(users/)?websocket$ {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
client_max_body_size 50M;
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_buffers 256 16k;
proxy_buffer_size 16k;
client_body_timeout 60;
send_timeout 300;
lingering_timeout 5;
proxy_connect_timeout 90;
proxy_send_timeout 300;
proxy_read_timeout 90s;
proxy_pass http://backend;
}
location / {
client_max_body_size 50M;
proxy_set_header Connection "";
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_buffers 256 16k;
proxy_buffer_size 16k;
proxy_read_timeout 600s;
proxy_cache mattermost_cache;
proxy_cache_revalidate on;
proxy_cache_min_uses 2;
proxy_cache_use_stale timeout;
proxy_cache_lock on;
proxy_http_version 1.1;
proxy_pass http://backend;
}
}
保存して閉じます。
次に、Nginxキャッシュディレクトリを作成し、そのディレクトリの所有権をデフォルトの「www-data」ユーザーに変更します。
mkdir -p /var/cache/nginx
chown -R www-data:www-data /var/cache/nginx
その後、Mattermost仮想ホストをアクティブ化し、nginx構成をテストして、エラーがないことを確認します。
ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/
nginx -t
次に、以下のsystemctlコマンドを使用してNginxサービスを再起動します。
systemctl restart nginx
その結果、MattermostのリバースプロキシとしてのNginxのインストールと構成が完了しました。そして、Mattermostのインストールをテストする準備が整いました。
Webブラウザーを開き、アドレスバーにMattermostインストールURLのドメイン名を入力します。私のは:
https://mattermost.hakase-labs.io/
次に、Mattermostの新しい最初のアカウントを作成する必要があります。これがMattermost管理者になります。
ユーザー名、メールアドレス、パスワードの詳細を入力し、[アカウントの作成]ボタンをクリックします。
Mattermostで新しい最初のチームを作成します。
最初のチームの名前を入力し、[次へ]をクリックします。
チームのURLがチーム名になります。続行するには、[完了]をクリックしてください。
そして、デフォルトのチャンネル「オフトピック」と「タウンスクエア」に自動的に参加します。
その結果、MySQLデータベースとNginxWebサーバーを使用したDebianBuster10へのMattermostのインストールが正常に完了しました。