GNU/Linux >> Linux の 問題 >  >> Debian

Debian10にMattermostTeamMessagingSystemをインストールする方法

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をリバースプロキシとしてインストールして構成する
  • テスト
ステップ1-MySQLデータベースをインストールする

まず、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サーバーのルートパスワードが設定されました。

ステップ2-Mattermost用の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データベースとユーザーが作成されました。

ステップ3-ユーザーを追加してMattermostをダウンロード

このステップでは、新しいシステムユーザーを作成し、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」ディレクトリにダウンロードされました。

ステップ4-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」ボタンを押して終了します。

ステップ5-Mattermostをサービスとしてセットアップ

このステップでは、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システムで稼働しており、システムの起動時に自動的に実行されます。

ステップ6-CertbotLetsencryptをインストールする

このステップでは、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」ディレクトリに生成されます。

ステップ7-Nginxをリバースプロキシとしてインストールして構成する

このステップでは、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のインストールをテストする準備が整いました。

ステップ8-テスト

Webブラウザーを開き、アドレスバーにMattermostインストールURLのドメイン名を入力します。私のは:

https://mattermost.hakase-labs.io/

次に、Mattermostの新しい最初のアカウントを作成する必要があります。これがMattermost管理者になります。

ユーザー名、メールアドレス、パスワードの詳細を入力し、[アカウントの作成]ボタンをクリックします。

Mattermostで新しい最初のチームを作成します。

最初のチームの名前を入力し、[次へ]をクリックします。

チームのURLがチーム名になります。続行するには、[完了]をクリックしてください。

そして、デフォルトのチャンネル「オフトピック」と「タウンスクエア」に自動的に参加します。

その結果、MySQLデータベースとNginxWebサーバーを使用したDebianBuster10へのMattermostのインストールが正常に完了しました。


Debian
  1. Debian10にGradleをインストールする方法

  2. MySQLをDebian11にインストールする方法

  3. MySQLWorkbenchをDebian11にインストールする方法

  1. MySQL 8.0/5.7をDebian11/Debian10にインストールする方法

  2. Debian10にAnyDeskをインストールする方法

  3. MySQLサーバーをDebian9にインストールする方法

  1. MySQLをDebian9にインストールする方法

  2. Nextcloud15をDebian9にインストールする方法

  3. MySQLWorkbenchをDebian10にインストールする方法