Mattermostは、チャット、ファイル共有、プロジェクト管理、ワークフローのオーケストレーションに使用されるオープンソースのメッセージングプラットフォームです。 Go言語で書かれています。 クラウドホスト型ソリューションとセルフホスト型サーバーの両方として提供されます。 これは、Slackやその他のプロフェッショナルプラットフォームの代替手段です。 サーバー上でホストする機能により、通信と機密データを制御できます。
このチュートリアルでは、Ubuntu22.04サーバーにMattermostTeamMessagingSystemをインストールする方法を学習します。
前提条件
-
最大1000ユーザー用の最小2GBのRAMを備えたUbuntu22.04を実行しているサーバー。
-
sudo権限を持つroot以外のユーザー。
-
Uncomplicated Firewall(UFW)が有効になり、実行されています。
-
サーバーを指す完全修飾ドメイン名。 このチュートリアルでは、ドメインを使用します
mattermost.example.com
。 -
すべてが更新されます。
$ sudo apt update && sudo apt upgrade
ステップ1-ファイアウォールを構成する
パッケージをインストールする前の最初のステップは、HTTPおよびHTTPS接続を許可するようにファイアウォールを構成することです。
ファイアウォールの状態を確認してください。
$ sudo ufw status
次のようなものが表示されます。
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)
Mattermostではポート8065が必要です。 このポートは、インストールを確認するために一時的に開く必要があります。 後で削除します。
$ sudo ufw allow 8065
HTTPおよびHTTPSポートを許可します。
$ sudo ufw allow http $ sudo ufw allow https
ステータスをもう一度確認して確認してください。
$ sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443 ALLOW Anywhere 8065 ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443 (v6) ALLOW Anywhere (v6) 8065 (v6) ALLOW Anywhere (v6)
ステップ2-PostgreSQLをインストールする
MattermostはMySQLサーバーとPostgreSQLサーバーの両方で動作しますが、PostgreSQLが推奨される選択です。
Ubuntu 22.04には、PostgreSQLの最新のstable(v14)バージョンが付属しています。 1つのコマンドでインストールできます。
$ sudo apt install postgresql postgresql-contrib
MySQLのバージョンを確認してください。
$ psql --version psql (PostgreSQL) 14.4 (Ubuntu 14.4-0ubuntu0.22.04.1)
ステップ3-PostgreSQLを設定する
PostgreSQLはLinuxユーザーアカウントを作成します postgres
インストール中。 このアカウントを使用してPostgreSQLシェルにアクセスできます。
PostgreSQLシェルにログインします。
$ sudo -u postgres psql
Mattermostデータベースを作成します。
postgres=# CREATE DATABASE mattermostdb;
Mattermostデータベースユーザーを作成します。 交換 mmuser-password
選択したより強力なパスワードを使用します。
postgres=# CREATE USER mmuser WITH PASSWORD 'mmuser-password';
データベースに対するすべての権限をユーザーに付与します。
postgres=# GRANT ALL PRIVILEGES ON DATABASE mattermost to mmuser;
次のように入力してPostgreSQLシェルを終了します q
シェルで。
postgres=# q
ファイルを開く /etc/postgresql/{version}/main/pg_hba.conf
編集用。
$ sudo nano /etc/postgresql/{version}/main/pg_hba.conf
次の行を見つけます。
# "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 scram-sha-256 # IPv6 local connections: host all all ::1/128 scram-sha-256
値を変更する peer
と scram-sha-256
に trust
上記の行で。
# "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 trust # IPv6 local connections: host all all ::1/128 trust
を押してファイルを保存します Ctrl + X と入る Y プロンプトが表示されたら。
PostgreSQLサービスを再起動して、変更を有効にします。
$ sudo systemctl restart postgresql
MattermostSQLユーザーに接続できることを確認します。
$ psql --dbname=mattermost --username=mmuser --password
パスワードの入力を求められます。 それを入力すると、PostgreSQLシェルにログインします。 入る q
シェルを終了します。
Password: psql (14.4 (Ubuntu 14.4-0ubuntu0.22.04.1)) Type "help" for help. mattermost-> q
ステップ4-Mattermostをダウンロードする
ダウンロード Mattermostサーバーの最新バージョン。 このチュートリアルを書いている時点で、利用可能な最新バージョンは7.0.1です。
$ wget https://releases.mattermost.com/7.0.1/mattermost-7.0.1-linux-amd64.tar.gz
アーカイブを抽出します。
$ tar -xvzf mattermost*.gz
抽出したファイルをに移動します /opt
ディレクトリ。
$ sudo mv mattermost /opt
Mattermostサーバーのデータストレージディレクトリを作成します。
$ sudo mkdir /opt/mattermost/data
ステップ5-Mattermostのシステムユーザーを作成し、権限を構成します
構成ファイルを開きます /opt/mattermost/config/config.json
編集用。
$ sudo nano /opt/mattermost/config/config.json
変数を設定します SiteURL
ドメイン名に、インストールに使用します。
"SiteURL": "https://mattermost.example.com",
変数を見つける DriverName
下 SqlSettings
その値をに変更します mysql
。
"DriverName": "mysql",
変数を設定します DataSource
次の値に。 交換 mmuser
SQLユーザー名を使用して、 YourPassword23!
SQLパスワードを使用して、 mattermostdb
データベース名を使用して、手順4で構成しました。
"DataSource": "mmuser:[email protected](localhost:3306)/mattermostdb?charset=utf8mb4,utf8&writeTimeout=30s",
この時点で構成できる設定は他にもたくさんありますが、インストール後に設定する方が簡単です。 今のところ、これら2つの設定のみが必須です。
を押してファイルを保存します Ctrl + X と入る Y プロンプトが表示されたら。
Mattermostサーバーのシステムユーザーとグループを作成します。
$ sudo useradd --system --user-group mattermost
Mattermostディレクトリの所有権を新しく作成されたユーザーとグループに変更します。
$ sudo chown -R mattermost:mattermost /opt/mattermost
に書き込み権限を付与します mattermost
ディレクトリ上のグループ。
$ sudo chmod -R g+w /opt/mattermost
Mattermostディレクトリに切り替えます。
$ cd /opt/mattermost
Mattermostサーバーを次のように起動します mattermost
ユーザー。
$ sudo -u mattermost ./bin/mattermost
サーバーが起動し、一連のログ情報が生成されます。 行を待つ Server is listening on [::]:8065
現れる。 URLにアクセス http://<serverIPaddress>:8065
ブラウザに次のログインページが表示されます。
プレス Ctrl + C サーバーを停止します。 後でこれに戻って、インストールを構成します。
ステップ6-Systemdユニットファイルを作成する
次のステップは、Mattermostのシステムファイルを作成することです。
ユニットファイルを作成して開き、編集します。
$ sudo nano /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 KillMode=mixed Restart=always RestartSec=10 WorkingDirectory=/opt/mattermost User=mattermost Group=mattermost LimitNOFILE=49152 [Install] WantedBy=multi-user.target
を押してファイルを保存します Ctrl + X と入る Y プロンプトが表示されたら。
systemdデーモンをリロードして、サービスファイルをロードします。
$ sudo systemctl daemon-reload
Mattermostサービスを開始します。
$ sudo systemctl start mattermost
サービスのステータスを確認してください。
? mattermost.service - Mattermost Loaded: loaded (/lib/systemd/system/mattermost.service; disabled; vendor preset: enabled) Active: active (running) since Mon 2022-07-11 01:24:46 UTC; 20s ago Main PID: 23628 (mattermost) Tasks: 48 (limit: 2241) Memory: 448.2M CPU: 14.929s CGroup: /system.slice/mattermost.service ??23628 /opt/mattermost/bin/mattermost ??23651 plugins/com.mattermost.plugin-channel-export/server/dist/plugin-linux-amd64 ??23656 plugins/com.mattermost.nps/server/dist/plugin-linux-amd64 ??23662 plugins/com.mattermost.calls/server/dist/plugin-linux-amd64 ??23668 plugins/com.mattermost.apps/server/dist/plugin-linux-amd64 ??23674 plugins/playbooks/server/dist/plugin-linux-amd64 ??23683 plugins/focalboard/server/dist/plugin-linux-amd64 ....
サービスを有効にします。
$ sudo systemctl enable mattermost
ステップ7-Nginxをインストールする
Ubuntu 22.04には、古いバージョンのNginxが付属しています。 最新バージョンをインストールするには、公式のNginxリポジトリをダウンロードする必要があります。
Nginxの署名キーをインポートします。
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Nginxの安定バージョンのリポジトリを追加します。
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
システムリポジトリを更新します。
$ sudo apt update
Nginxをインストールします。
$ sudo apt install nginx
インストールを確認します。
$ nginx -v nginx version: nginx/1.22.0
ステップ8-SSLをインストールする
SSL証明書を生成するには、Certbotをインストールする必要があります。 Ubuntuのリポジトリを使用してCertbotをインストールするか、Snapdツールを使用して最新バージョンを取得できます。 Snapdバージョンを使用します。
Ubuntu 22.04には、デフォルトでSnapdがインストールされています。 次のコマンドを実行して、Snapdのバージョンが最新であることを確認します。
$ sudo snap install core
Certbotをインストールします。
$ sudo snap install --classic certbot
次のコマンドを使用して、へのシンボリックリンクを作成してCertbotコマンドを実行できるようにします。 /usr/bin
ディレクトリ。
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
次のコマンドを実行して、SSL証明書を生成します。
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d mattermost.example.com
上記のコマンドは、証明書をにダウンロードします /etc/letsencrypt/live/mattermost.example.com
サーバー上のディレクトリ。
を生成します Diffie-Hellmanグループ 証明書。
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
ファイルを開く /etc/letsencrypt/renewal/mattermost.example.com.conf
編集用。
$ sudo nano /etc/letsencrypt/renewal/mattermost.example.com.conf
次のコードを下部に貼り付けます。
pre_hook = systemctl stop nginx post_hook = systemctl start nginx
を押してファイルを保存します Ctrl + X と入る Y プロンプトが表示されたら。
Certbotのスタンドアロンオプションを使用してSSL証明書を生成しました。 Webサーバーを実行して証明書を作成します。これは、更新中にNginxをシャットダウンする必要があることを意味します。 The pre_hook と post_hook コマンドは更新の前後に実行され、Nginxサーバーを自動的にシャットダウンして再起動するため、手動による介入は必要ありません。
SSL更新が正常に機能しているかどうかを確認するには、プロセスのドライランを実行します。
$ sudo certbot renew --dry-run
エラーが表示されない場合は、すべて設定されています。 証明書は自動的に更新されます。
ステップ9-Nginxを構成する
ファイルを開く /etc/nginx/nginx.conf
編集用。
$ sudo nano /etc/nginx/nginx.conf
行の前に次の行を追加します include /etc/nginx/conf.d/*.conf;
。
server_names_hash_bucket_size 64;
を押してファイルを保存します Ctrl + X と入る Y プロンプトが表示されたら。
ファイルを作成して開きます /etc/nginx/conf.d/monica.conf
編集用。
$ sudo nano /etc/nginx/conf.d/mattermost.conf
次のコードを貼り付けます。 交換 mattermost.example.com
あなたのドメイン名で。 の値を確認してください client_max_body_size
Monicaのファイルのデフォルトのアップロードサイズである10MBに設定されています。 これは、以前にPHPで構成した値と同じです。
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 default_server; server_name mattermost.example.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name mattermost.example.com; http2_push_preload on; # Enable HTTP/2 Server Push ssl_certificate /etc/letsencrypt/live/mattermost.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/mattermost.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/mattermost.example.com/chain.pem; ssl_session_timeout 1d; # Enable TLS versions (TLSv1.3 is required upcoming HTTP/3 QUIC). ssl_protocols TLSv1.2 TLSv1.3; # Enable TLSv1.3's 0-RTT. Use $ssl_early_data when reverse proxying to # prevent replay attacks. # # @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data ssl_early_data on; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384'; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:50m; # HSTS (ngx_http_headers_module is required) (15768000 seconds = six 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; ssl_dhparam /etc/ssl/certs/dhparam.pem; add_header X-Early-Data $tls1_3_early_data; 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_http_version 1.1; 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; } } # This block is useful for debugging TLS v1.3. Please feel free to remove this # and use the `$ssl_early_data` variable exposed by NGINX directly should you # wish to do so. map $ssl_early_data $tls1_3_early_data { "~." $ssl_early_data; default ""; }
を押してファイルを保存します Ctrl + X と入る Y プロンプトが表示されたら。
Nginxにキャッシュディレクトリへのアクセス許可を付与します。
$ sudo chown -R nginx:nginx /var/cache/nginx
Nginx構成を確認します。
$ sudo nginx -t
Nginxサーバーを再起動します。
$ sudo systemctl restart nginx
ステップ10-Mattermostサーバーにアクセスする
URLを開く https://mattermost.example.com
ブラウザで、手順5に示すように、サインアップページが表示されます。アカウントの詳細を入力すると、システム管理者として設定されます。
先に進む前に、パブリックURLを介してアクセスできるようにMattermostを構成したため、ポート8065を閉じる必要があります。 したがって、開いているポートにはセキュリティ上のリスクがあります。
$ sudo ufw delete allow 8065
次に、チーム作成ページに移動します。
クリック チームを作成する ボタンをクリックして、最初のチームを作成します。
次に、チームのパブリックURLを設定するように求められます。
クリック 終了 ボタンをクリックして、Mattermostダッシュボードを開きます。
ステップ11-Mattermostサーバーを構成する
Mattermostは、 config.json
ファイルまたはダッシュボードからシステムコンソールを使用します。 ダッシュボードを使用する方がはるかに簡単なので、ダッシュボードを介して実行します。 左上隅の[製品]ボタンをクリックして、[システムコンソール オプション。
サーバーに関するすべてを構成できるシステムコンソールダッシュボードに移動します。
電子メール通知を構成する
メッセージングシステムの最も重要な機能の1つは、電子メール通知です。
最初のステップは、通知を有効にすることです。 訪問 システムコンソール>>サイト構成>>通知 メニューを選択し、次のオプションを設定します。
- 設定 電子メール通知を有効にする に 真実
- 設定 通知表示名 に 応答なし
- 設定 住所からの通知 のようなものに [email protected]。
- 設定 サポートメールアドレス のようなものに [email protected]
次のステップは、SMTPを有効にすることです。 訪問 システムコンソール>>環境>>SMTP メニューを選択し、次のオプションを設定します。 このチュートリアルでは、AmazonSESメーラーを使用しています。
- 設定 SMTPサーバー に {SMTPサーバー}
- 設定 SMTPサーバーポート に 465
- 設定 SMTP認証を有効にする 本当に
- 設定 SMTPサーバーのユーザー名 に {SES-ユーザー名}
- 設定 SMTPサーバーのパスワード に {SESキー}
- 設定 接続セキュリティ に TLS また STARTTLS、SMTPサーバーが受け入れるものに応じて
クリック 接続のテスト ボタンをクリックしてSMTP設定を確認します。
構成する設定は他にもたくさんあります。 終了したら、変更を適用するためにターミナルからサーバーを再起動する必要があります。
$ sudo systemctl restart mattermost
結論
これで、Ubuntu22.04サーバーへのMattermostTeamMessagingシステムのインストールと構成に関するチュートリアルは終了です。 ご不明な点がございましたら、下のコメント欄に投稿してください。
The post Ubuntu22.04にMattermostTeamMessagingSystemをインストールする方法 appeared first on Gamingsym Japan.