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 にインストールする