ウェブサイト検索

Mattermost サーバーを Ubuntu 22.04|20.04|18.04 にインストールする |


PostgreSQL データベース サーバーを備えた Ubuntu 22.04|20.04|18.04 に Mattermost Server をインストールする方法に関する今日のガイドへようこそ。 Mattermost は、企業や組織の内部チャット プラットフォームとして使用するように設計された自己ホスト型のオープンソース オンライン チャット サービスです。これは、Slack Chat プラットフォームの主な代替手段の 1 つです。

このガイドでは、PostgreSQL データベースと Nginx Web サーバーを使用します。すべての手順は簡単なので、リラックスして従ってください。

ステップ 1: システムを更新する

まずはシステムが更新されていることを確認することから始めましょう。

sudo apt update
sudo apt -y upgrade
sudo apt -y install wget curl vim

アップグレード後にシステムを再起動することをお勧めします。

sudo reboot

適切なサーバーのホスト名を設定します。

sudo hostnamectl set-hostname chat.computingforgeeks.com --static

ステップ 2: PostgreSQL データベース サーバーをインストールする

次のステップは、PostgreSQL データベース サーバーをインストールすることです。

sudo apt -y install postgresql postgresql-contrib

PostgreSQL サーバーはインストール後に自動的に起動します。 postgres アカウントにログインします。

sudo --login --user postgres

PostgreSQL 対話型ターミナルを起動し、Mattermost データベース/ユーザー「mmuser」を作成します。

psql
CREATE DATABASE mattermost;
CREATE USER mmuser WITH PASSWORD 'StrongDBPassWord';
GRANT ALL PRIVILEGES ON DATABASE mattermost to mmuser;
\q

postgres アカウントからログアウトします。

exit

ステップ 3: mattermost システム ユーザーとグループを作成する

サービスを実行する mattermost というシステム ユーザーとグループを設定する必要があります。

sudo useradd --system --user-group mattermost

ID が 1000 未満であるため、システム ユーザーであることが確認できます。

$ id mattermost
uid=998(mattermost) gid=998(mattermost) groups=998(mattermost)

ステップ 4: Mattermost サーバーをダウンロードしてインストールする

データベース サーバーが構成されたら、Mattermost をダウンロードしてインストールできるようになります。まず、Mattermost ダウンロード ページにアクセスして最新リリースを入手します。

wget https://releases.mattermost.com/6.1.0/mattermost-6.1.0-linux-amd64.tar.gz

ダウンロードしたアーカイブを抽出します。

tar xvf mattermost-6.1.0-linux-amd64.tar.gz

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

sudo mv mattermost /opt

ユーザーが Mattermost に投稿するすべてのファイルと画像を含むストレージ ディレクトリを作成します。

sudo mkdir /opt/mattermost/data

正しい所有権と権限を設定します。

sudo chown -R mattermost:mattermost /opt/mattermost

最も重要なグループに書き込み権限を与えます。

sudo chmod -R g+w /opt/mattermost

ステップ 5: Mattermost サーバーを構成する

ファイル /opt/mattermost/config/config.json でデータベース ドライバーをセットアップします。

sudo nano /opt/mattermost/config/config.json

SqlSettings」セクションで、PostgreSQL データベース設定を次のように構成します。

"DriverName": "postgres",
"DataSource": "postgres://mmuser:StrongDBPassWord@localhost:5432/mattermost?sslmode=disable&connect_timeout=10",

ステップ 6: Systemd サービスを構成する

Mattermost Systemd サービス ユニットを作成します。

sudo vim /etc/systemd/system/mattermost.service

以下のデータをファイルに入力します。

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

Mattermost サービスを開始して有効にします。

 sudo systemctl start mattermost.service
 sudo systemctl enable mattermost.service

サービスのステータスをチェックして、実行中であることを確認します。

$ systemctl status mattermost.service
● mattermost.service - Mattermost
   Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; vendor preset: enabled)
   Active: active (running) since Mon 2019-08-12 12:15:06 CEST; 7s ago
 Main PID: 4116 (mattermost)
    Tasks: 11 (limit: 4585)
   Memory: 247.1M
   CGroup: /system.slice/mattermost.service
           └─4116 /opt/mattermost/bin/mattermost

Aug 12 12:15:06 chat mattermost[4116]: {"level":"info","ts":1565604906.0674481,"caller":"mlog/sugar.go:19","msg":"Scheduling next survey for Sep 2,
Aug 12 12:15:06 chat mattermost[4116]: {"level":"error","ts":1565604906.1013212,"caller":"plugin/hclog_adapter.go:60","msg":"reading plugin stderr"
Aug 12 12:15:06 chat mattermost[4116]: {"level":"error","ts":1565604906.1966574,"caller":"mlog/log.go:172","msg":"RPC call OnConfigurationChange to
Aug 12 12:15:06 chat mattermost[4116]: {"level":"info","ts":1565604906.1981738,"caller":"jobs/workers.go:68","msg":"Starting workers"}
Aug 12 12:15:06 chat mattermost[4116]: {"level":"info","ts":1565604906.1982753,"caller":"app/server.go:413","msg":"Starting Server..."}
Aug 12 12:15:06 chat mattermost[4116]: {"level":"info","ts":1565604906.199372,"caller":"jobs/schedulers.go:72","msg":"Starting schedulers."}
Aug 12 12:15:06 chat mattermost[4116]: {"level":"info","ts":1565604906.202546,"caller":"app/server.go:479","msg":"Server is listening on [::]:8065"
Aug 12 12:15:06 chat mattermost[4116]: {"level":"info","ts":1565604906.225944,"caller":"app/web_hub.go:75","msg":"Starting 4 websocket hubs"}
Aug 12 12:15:06 chat mattermost[4116]: {"level":"info","ts":1565604906.2512763,"caller":"commands/server.go:105","msg":"Sending systemd READY notif
Aug 12 12:15:06 chat systemd[1]: Started Mattermost.

Mattermost が実行されていることを確認します。

curl http://localhost:8065

Mattermost サーバーから返された HTML が表示されるはずです。

ステップ 7: Mattermost Web 構成を終了する

ブラウザを開いて、8065 の Mattermost インスタンスに移動します。例: 192.168.10.10:8085

システム コンソールにアクセスします。

次に、構成設定ドキュメントに基づいて サーバーを構成します。

その他の設定:

指示に従ってTLS を設定します。

SMTP メール設定ガイドに従ってメールを設定します。

変更を加えた後は、mattermost サービスを再起動することを忘れないでください。

sudo systemctl restart mattermost

ステップ 8: Nginx プロキシ サーバーを構成する

運用環境では、Mattermost のセキュリティとパフォーマンスを向上させるためにプロキシ サーバーを使用します。

# Install nginx
sudo apt -y install nginx

Mattermost の新しい構成ファイルを作成します。

sudo vim /etc/nginx/conf.d/mattermost.conf

構成設定を追加します。

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    chat.example.com;

   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を再起動します。

sudo rm /etc/nginx/sites-enabled/default
sudo systemctl restart nginx

ロックを解除できるその他の機能やサードパーティ システムとの統合については、Mattermost のドキュメントをお読みください。

ビデオコースを使用して Linux システム管理を学習します。

  • Linux Mastery: 11.5 時間で Linux コマンド ラインをマスターする
  • Linux 管理ブートキャンプ: 初心者から上級者へ
  • Linux トレーニング コースを完了して夢の IT 職に就く
  • 5 日間で Linux を学び、キャリアをレベルアップ
  • 実際の例を使用した完全な Linux Bash シェル スクリプト

関連している。

  • Rocket.Chat サーバーを Debian/Ubuntu にインストールする方法
  • Zulip Chat Server を Ubuntu/Debian にインストールする

関連記事: