「Mattermost」の版間の差分
Kusakata.bot (トーク | 投稿記録) 細 (文字列「Tips and tricks」を「ヒントとテクニック」に置換) |
Kusanaginoturugi (トーク | 投稿記録) (→Mattermost のセットアップ: === Plugins === を追加) |
||
(3人の利用者による、間の3版が非表示) | |||
1行目: | 1行目: | ||
− | [[Category: |
+ | [[Category:ウェブアプリケーション]] |
[[en:Mattermost]] |
[[en:Mattermost]] |
||
[http://www.mattermost.org/ Mattermost のホームページ] より: |
[http://www.mattermost.org/ Mattermost のホームページ] より: |
||
5行目: | 5行目: | ||
:Mattermost はオープンソースで、セルフホスト型の Slack クローンです。 |
:Mattermost はオープンソースで、セルフホスト型の Slack クローンです。 |
||
:プロプライエタリな SaaS メッセージングの代替として、Mattermost はチームコミュニケーションをひと処に集めて、全ての情報を検索・閲覧しやすくします。 |
:プロプライエタリな SaaS メッセージングの代替として、Mattermost はチームコミュニケーションをひと処に集めて、全ての情報を検索・閲覧しやすくします。 |
||
+ | |||
+ | この記事では Mattermost サーバーをインストール・設定する方法を説明します。 |
||
== インストール == |
== インストール == |
||
+ | Mattermost サーバーをインストールする方法は2つあります: |
||
− | {{Note| |
||
− | * Mattermost はデータベースバックエンドを必要とします。データベースを同一のマシンで動作させる場合、まず [[MySQL]] か [[PostgreSQL]] をインストールしてください。 |
||
− | * [[Docker]] を使うことで Mattermost を簡単にインストールする方法があります。[http://docs.mattermost.com/install/docker-local-machine.html#arch ワンラインインストール] が強力です。}} |
||
+ | * [[Docker]] を使用して [[#Docker を使う]]で説明している手順に従う。 |
||
− | {{AUR|mattermost}} パッケージを[[インストール]]してください。 |
||
+ | * [[AUR]] パッケージを使用して [[#AUR を使う]]で説明している手順に従う。 |
||
+ | [[Electron]] ベースのデスクトップクライアントは {{aur|mattermost-desktop}} パッケージでインストールできます。 |
||
− | == 設定 == |
||
− | === |
+ | === Docker を使う === |
+ | Docker を使用する場合、手動でデータベースサーバーをインストールして Mattermost の依存パッケージを設定する必要がありません。docker イメージには依存パッケージが全てバンドルされているため、作業が楽です。 |
||
− | Mattermost はデータベースとして [[PostgreSQL]] または [[MySQL]]/MariaDB のどちらかを必要とします。以下のどちらかのセクションに従って設定してから [[#Mattermost の設定]]に進んでください。 |
||
+ | そのかわりデータベースバックエンドやウェブサーバーを選択することはできません。docker イメージで提供されているものを使うしかありません。 |
||
− | ==== PostgreSQL ==== |
||
+ | * [[Docker#インストール|Docker]] をインストール。 |
||
− | user$ sudo -i -u postgres |
||
+ | * ソースをダウンロード: |
||
− | postgres$ psql |
||
+ | :{{bc|<nowiki> |
||
+ | $ git clone https://github.com/mattermost/mattermost-docker.git |
||
+ | </nowiki>}} |
||
+ | * Team エディションの場合、{{ic|docker-compose.yml}} ファイルを編集して次の行をコメントアウト: {{ic|dockerfile: Dockerfile-enterprise}} |
||
+ | * docker コンテナをビルド・起動: |
||
+ | :{{bc|<nowiki> |
||
+ | $ cd mattermost-docker |
||
+ | $ docker-compose build |
||
+ | $ docker-compose up -d |
||
+ | $ docker run --name mattermost-preview -d --publish 8065:8065 mattermost/mattermost-preview |
||
+ | </nowiki>}} |
||
+ | * ブラウザで {{ic|http://localhost:8065/}} を開く。 |
||
− | {{bc|1= |
||
− | postgres=# CREATE DATABASE mattermost; |
||
− | postgres=# CREATE USER mmuser WITH PASSWORD 'mmuser_password'; |
||
− | postgres=# GRANT ALL PRIVILEGES ON DATABASE mattermost TO mmuser; |
||
− | postgres=# \q |
||
− | postgres$ exit |
||
− | }} |
||
+ | TLS やメールの設定方法やエンタープライズ機能の有効化、Docker Compose によって複数のサーバーノードを使う方法は [https://docs.mattermost.com/install/prod-docker.html 公式ガイド] を参照してください。 |
||
− | 通常ユーザーから新しいユーザーとデータベースが機能することを確認: |
||
+ | [https://hub.docker.com/r/mattermost/ Mattermost 公式の Docker Hub ページ] で提供されている Docker イメージは複数存在します。[https://github.com/mattermost/mattermost-docker Mattermost Docker イメージのリポジトリ] も参照。 |
||
− | psql --host=127.0.0.1 --dbname=mattermost --username=mmuser --password |
||
+ | === AUR を使う === |
||
− | {{bc|1= |
||
+ | |||
− | mattermost=> \q |
||
+ | {{Pkg|mattermost}} パッケージを[[インストール]]してください。または {{aur|mattermost-git}} で開発版をインストールできます。 |
||
− | }} |
||
+ | |||
+ | * インストールすると {{ic|mattermost}} ユーザーとグループが作成されます。 |
||
+ | * mattermost のディレクトリは {{ic|/var/lib/mattermost}} に作成され所有者は {{ic|mattermost:root}} となります。 |
||
+ | |||
+ | [[#データベースの設定]]に進んでください。 |
||
+ | |||
+ | == データベースの設定 == |
||
+ | |||
+ | Mattermost はデータベースバックエンドを必要とします。データベースを同じマシンで実行する場合、最初に [[MySQL]]/MariaDB または [[PostgreSQL]] をインストールしてください。以下のセクションのどちらかに従ってから [[#Mattermost の設定]]に進んでください。 |
||
+ | |||
+ | 公式サポートされているのは MySQL ですが、公式ガイドは PostgreSQL を使います。 |
||
− | + | === MySQL/MariaDB === |
|
{{hc|$ mysql -u root -p| |
{{hc|$ mysql -u root -p| |
||
− | CREATE DATABASE |
+ | CREATE DATABASE mattermostdb; |
CREATE USER mmuser IDENTIFIED BY 'mmuser_password'; |
CREATE USER mmuser IDENTIFIED BY 'mmuser_password'; |
||
− | GRANT ALL ON |
+ | GRANT ALL ON mattermostdb.* TO mmuser; |
− | exit; |
||
}} |
}} |
||
− | === |
+ | === PostgreSQL === |
+ | 1. [[PostgreSQL#PostgreSQL のインストール|PostgreSQL]] をインストール。 |
||
− | 設定ファイルは {{ic|/etc/webapps/mattermost/config.json}} に存在します。 |
||
+ | 2. {{ic|postgres}} ユーザーでサーバーに接続: |
||
− | 使用しているデータベースにあわせて2箇所変更する必要がある部分があります: |
||
+ | :{{bc|sudo -u postgres psql}} |
||
− | {{ic|"DriverName": "..."}} の設定: |
||
− | * MySQL の場合 (デフォルト)、{{ic|"mysql"}} に設定してください。 |
||
− | * PostgreSQL の場合、{{ic|"postgres"}} に設定してください ({{ic|postgre'''sql'''}} ではありません)。 |
||
+ | 3. Mattermost データベースを作成: |
||
− | 接続文字列 {{ic|"DataSource": "..."}} はデータベースとユーザーの設定に合わせてください: |
||
+ | |||
− | * MySQL の場合、{{ic|1="'''mmuser''':'''mmuser_password'''@unix(/run/mysqld/mysqld.sock)/'''mattermost'''?charset=utf8mb4,utf8"}} などに設定してください。 |
||
+ | :{{bc|<nowiki>CREATE DATABASE mattermostdb; |
||
+ | CREATE USER mmuser WITH PASSWORD 'mmuser_password'; |
||
+ | GRANT ALL PRIVILEGES ON DATABASE mattermostdb to mmuser; |
||
+ | </nowiki>}} |
||
+ | |||
+ | 4. {{ic|\q}} で {{ic|psql}} を抜ける。 |
||
+ | |||
+ | {{Note|Mattermost と PostgreSQL が同一マシン上にある場合、Unix ソケットを使用するほうが高速かつセキュアです。}} |
||
+ | |||
+ | ==== TCP ソケットを使う ==== |
||
+ | |||
+ | 5. [[PostgreSQL#リモートホストから PostgreSQL にアクセスできるように設定]]に書かれているように設定。 |
||
+ | |||
+ | 6. 動作を確認: |
||
+ | |||
+ | :{{bc|1=$ psql --host=''ip_address'' --dbname=mattermostdb --username=mmuser --password}} |
||
+ | |||
+ | ==== Unix ソケットを使う ==== |
||
+ | |||
+ | 5. {{ic|/var/lib/postgres/data/pg_ident.conf}} に以下の行を追加して Unix ユーザーの {{ic|mattermost}} を PostgreSQL ユーザーの {{ic|mmuser}} にマッピング: |
||
+ | |||
+ | :{{bc|mattermap mattermost mmuser}} |
||
+ | |||
+ | 6. {{ic|/var/lib/postgres/data/pg_hba.conf}} に以下の行を追加して Unix ソケットを設定: |
||
+ | |||
+ | :{{bc|1=local mattermostdb mattermost peer map=mattermap}} |
||
+ | |||
+ | 7. {{ic|postgresql.service}} を[[再起動]]。 |
||
+ | |||
+ | 8. 動作を確認: |
||
+ | |||
+ | :{{bc|1=$ sudo -u mattermost psql --dbname=mattermostdb --username=mattermost}} |
||
+ | |||
+ | [[#Mattermost の設定]]に進んでください。 |
||
+ | |||
+ | ==== Mattermost の設定 ==== |
||
+ | |||
+ | Mattermost は {{ic|/etc/webapps/mattermost/config.json}} で設定します。文字列はクォートで囲う必要があります。 |
||
+ | |||
+ | 使用するデータベースにあわせて設定する必要があります。 |
||
+ | |||
+ | {{ic|DriverName}} の設定: MySQL の場合は {{ic|mysql}}、PostgreSQL の場合は {{ic|postgres}} に設定。 |
||
+ | |||
+ | {{ic|DataSource}} の設定: |
||
+ | * MySQL の場合、{{ic|1='''mmuser''':'''mmuser_password'''@unix(/run/mysqld/mysqld.sock)/'''mattermostdb'''?charset=utf8mb4,utf8}} に設定。 |
||
* PostgreSQL の場合: |
* PostgreSQL の場合: |
||
− | ** |
+ | ** TCP ソケット: {{ic|1=postgres://'''mmuser''':'''mmuser_password'''@127.0.0.1:5432/'''mattermostdb'''?sslmode=disable&connect_timeout=10}} |
− | ** Unix ソケット |
+ | ** Unix ソケット: {{ic|1=postgres:///'''mattermostdb'''?host=/run/postgresql}} ({{ic|postgres:}} の後にスラッシュが3つ必要です。{{ic|mattermostdb}} はデータベースの名前、{{ic|/run/postgresql}} は Unix ソケットがあるディレクトリです) |
− | {{Note|{{ic|mmuser_password}} はユーザー |
+ | {{Note|{{ic|mmuser_password}} はユーザーのパスワードに置き換えてください。}} |
+ | {{ic|mattermost.service}} を[[起動]]・[[有効化]]して http://localhost:8065/ を開いてください。 |
||
− | == Mattermost の起動 == |
||
+ | == Mattermost のセットアップ == |
||
− | パッケージには {{ic|mattermost.service}} が含まれています。通常のデーモンと同じように[[起動]]・[[有効化]]してください。 |
||
+ | 1. Mattermost を開いてチームとユーザーを作成。 |
||
− | == テスト == |
||
+ | 2. システムの最初のユーザーには自動的に {{ic|system_admin}} ロールが割り当てられ、システムコンソールにアクセスすることができます。 |
||
− | ブラウザを起動して http://localhost:8065/ を開いてください。Mattermost のチャットスタートページが開くはずです。 |
||
+ | |||
+ | 3. {{ic|town-square}} チャンネルからドロップダウンをクリックして {{ic|System Console}} オプションを選択。 |
||
+ | |||
+ | 4. {{ic|Notification > Email}} の設定を更新して SMTP メールサービスを設定。以下は AmazonSES を使用する例: |
||
+ | |||
+ | :* {{ic|Send Email Notifications}} を {{ic|true}} に設定 |
||
+ | :* {{ic|Require Email Verification}} を {{ic|true}} に設定 |
||
+ | :* {{ic|Feedback Name}} を {{ic|No-Reply}} に設定 |
||
+ | :* {{ic|Feedback Email}} を {{ic|mattermost@example.com}} に設定 |
||
+ | :* {{ic|SMTP Username}} を {{ic|[YOUR_SMTP_USERNAME]}} に設定 |
||
+ | :* {{ic|SMTP Password}} を {{ic|[YOUR_SMTP_PASSWORD]}} に設定 |
||
+ | :* {{ic|SMTP Server}} を {{ic|email-smtp.us-east-1.amazonaws.com}} に設定 |
||
+ | :* {{ic|SMTP Port}} を {{ic|465}} に設定 |
||
+ | :* {{ic|Connection Security}} を {{ic|TLS}} に設定 |
||
+ | :* 設定を保存 |
||
+ | |||
+ | 5. {{ic|File > Storage}} から {{ic|Local Directory Location}} の設定を {{ic|./data/}} から {{ic|/mattermost/data}} に変更。 |
||
+ | |||
+ | 6. {{ic|General > Logging}} から {{ic|Log to The Console}} を {{ic|false}} に設定。 |
||
+ | |||
+ | 7. 他の設定も自由に変更してください。 |
||
+ | |||
+ | 8. {{ic|mattermost.service}} を[[再起動]]。 |
||
+ | |||
+ | === Plugins === |
||
+ | |||
+ | Plugins are enabled by default, but require access to the plugins directory which needs to be created with the correct owner: |
||
+ | {{bc|<nowiki> |
||
+ | $ mkdir /usr/share/webapps/mattermost/client/plugins |
||
+ | $ chown mattermost:mattermost /usr/share/webapps/mattermost/client/plugins |
||
+ | </nowiki>}} |
||
== ヒントとテクニック == |
== ヒントとテクニック == |
||
− | === リバース |
+ | === リバースプロキシによる HTTPS === |
+ | |||
+ | 自己署名 TLS 証明書をサポートしていない Android や iOS アプリから安全に Mattermost サーバーにアクセスしたい場合、リバースウェブプロキシを設定する方法があります [https://docs.mattermost.com/install/config-proxy-nginx.html?highlight=proxy#configuring-nginx-as-a-proxy-for-mattermost-server]。 |
||
+ | |||
+ | プロキシの主な利点: |
||
+ | |||
+ | * SSL ターミネーション |
||
+ | * HTTP から HTTPS にリダイレクト |
||
+ | * ポート 80 を 8065 にマッピング |
||
+ | * 標準的なリクエストログ |
||
+ | |||
+ | 大抵のウェブサーバーでプロキシを使えます。 |
||
+ | |||
+ | ==== nginx ==== |
||
+ | |||
+ | 1. [[nginx]] をインストール・設定 ({{Pkg|nginx-mainline}} を推奨)。 |
||
+ | |||
+ | 2. ドメイン名 (例: {{ic|mattermost.example.com}}) からサーバーへのアクセスを設定。 |
||
+ | |||
+ | 3. インターネットから Mattermost サーバーへのプロキシ接続を nginx に設定。nginx の設定ファイル {{ic|/etc/nginx/sites-available/mattermost}} を作成・編集: |
||
+ | |||
+ | :{{bc|<nowiki> |
||
+ | upstream backend { |
||
+ | server 127.0.0.1:8065; |
||
+ | } |
||
+ | |||
+ | 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 mattermost.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; |
||
+ | proxy_read_timeout 600s; |
||
+ | 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_pass http://backend; |
||
+ | } |
||
+ | } |
||
+ | </nowiki>}} |
||
+ | |||
+ | 4. mattermost サーバーを有効化: |
||
+ | |||
+ | :{{bc|<nowiki> |
||
+ | # mkdir /etc/nginx/servers-enabled |
||
+ | # ln -s /etc/nginx/servers-available/mattermost /etc/nginx/server-enabled/mattermost |
||
+ | </nowiki>}} |
||
+ | |||
+ | 5. {{ic|nginx.service}} を[[再起動]]。 |
||
+ | |||
+ | 6. プロキシ経由で Mattermost にアクセスできることを確認: |
||
+ | |||
+ | :{{bc|curl http://localhost/}} |
||
+ | |||
+ | : {{ic|Mattermost}} というタイトルのページが表示されるはずです。 |
||
+ | 7. [[Let’s Encrypt]] を設定。 |
||
− | Mattermost の [[Android]] や [[iOS のアップグレード|iOS]] アプリでは自己署名の TLS/SSL 鍵をサポートしていないため、リバースウェブプロキシを使用することを推奨します。 |
||
+ | ==== Lighttpd2 ==== |
||
− | * [[Nginx]] |
||
− | * [[Apache]] |
||
− | * [[Lighttpd]] または {{AUR|lighttpd2-git}} |
||
+ | Mattermost のプロキシとして {{AUR|lighttpd2-git}} を使用する設定例では証明書が {{ic|/etc/lighttpd2/certs/lighttpd2.pem}} にあることが前提となっています。 |
||
− | ==== Lighttpd2 による TLS/SSL ==== |
||
+ | プロキシをバーチャルホストに転送したい場合は [http://doc.lighttpd.net/lighttpd2/mod_vhost.html mod_vhost] を参照。 |
||
− | {{AUR|lighttpd2-git}} を使用して Mattermost のプロキシとして動作させる例: |
||
− | {{hc|/etc/lighttpd2/lighttpd.conf| |
+ | {{hc|/etc/lighttpd2/lighttpd.conf|<nowiki> |
setup { |
setup { |
||
129行目: | 298行目: | ||
proxy "127.0.0.1:8065"; |
proxy "127.0.0.1:8065"; |
||
+ | </nowiki>}} |
||
− | }} |
||
+ | |||
+ | === 翻訳とプルリクエストのテスト === |
||
+ | 非公式スクリプト [https://github.com/wget/mattermost-prepare-pkgbuild mattermost-prepare-pkgbuild] を使うことで翻訳とプルリクエストをテストできます。 |
||
− | 証明書は {{ic|/etc/lighttpd2/certs/lighttpd2.pem}} に配置します。{{ic|proxy "127.0.0.1:8065"}} 行をバーチャルホストのドメインに変えたい場合は [http://doc.lighttpd.net/lighttpd2/mod_vhost.html mod_vhost] を参照してください。 |
2021年7月25日 (日) 17:49時点における最新版
- Mattermost はオープンソースで、セルフホスト型の Slack クローンです。
- プロプライエタリな SaaS メッセージングの代替として、Mattermost はチームコミュニケーションをひと処に集めて、全ての情報を検索・閲覧しやすくします。
この記事では Mattermost サーバーをインストール・設定する方法を説明します。
目次
インストール
Mattermost サーバーをインストールする方法は2つあります:
- Docker を使用して #Docker を使うで説明している手順に従う。
- AUR パッケージを使用して #AUR を使うで説明している手順に従う。
Electron ベースのデスクトップクライアントは mattermost-desktopAUR パッケージでインストールできます。
Docker を使う
Docker を使用する場合、手動でデータベースサーバーをインストールして Mattermost の依存パッケージを設定する必要がありません。docker イメージには依存パッケージが全てバンドルされているため、作業が楽です。
そのかわりデータベースバックエンドやウェブサーバーを選択することはできません。docker イメージで提供されているものを使うしかありません。
- Docker をインストール。
- ソースをダウンロード:
$ git clone https://github.com/mattermost/mattermost-docker.git
- Team エディションの場合、
docker-compose.yml
ファイルを編集して次の行をコメントアウト:dockerfile: Dockerfile-enterprise
- docker コンテナをビルド・起動:
$ cd mattermost-docker $ docker-compose build $ docker-compose up -d $ docker run --name mattermost-preview -d --publish 8065:8065 mattermost/mattermost-preview
- ブラウザで
http://localhost:8065/
を開く。
TLS やメールの設定方法やエンタープライズ機能の有効化、Docker Compose によって複数のサーバーノードを使う方法は 公式ガイド を参照してください。
Mattermost 公式の Docker Hub ページ で提供されている Docker イメージは複数存在します。Mattermost Docker イメージのリポジトリ も参照。
AUR を使う
mattermost パッケージをインストールしてください。または mattermost-gitAUR で開発版をインストールできます。
- インストールすると
mattermost
ユーザーとグループが作成されます。 - mattermost のディレクトリは
/var/lib/mattermost
に作成され所有者はmattermost:root
となります。
#データベースの設定に進んでください。
データベースの設定
Mattermost はデータベースバックエンドを必要とします。データベースを同じマシンで実行する場合、最初に MySQL/MariaDB または PostgreSQL をインストールしてください。以下のセクションのどちらかに従ってから #Mattermost の設定に進んでください。
公式サポートされているのは MySQL ですが、公式ガイドは PostgreSQL を使います。
MySQL/MariaDB
$ mysql -u root -p
CREATE DATABASE mattermostdb; CREATE USER mmuser IDENTIFIED BY 'mmuser_password'; GRANT ALL ON mattermostdb.* TO mmuser;
PostgreSQL
1. PostgreSQL をインストール。
2. postgres
ユーザーでサーバーに接続:
sudo -u postgres psql
3. Mattermost データベースを作成:
CREATE DATABASE mattermostdb; CREATE USER mmuser WITH PASSWORD 'mmuser_password'; GRANT ALL PRIVILEGES ON DATABASE mattermostdb to mmuser;
4. \q
で psql
を抜ける。
TCP ソケットを使う
5. PostgreSQL#リモートホストから PostgreSQL にアクセスできるように設定に書かれているように設定。
6. 動作を確認:
$ psql --host=ip_address --dbname=mattermostdb --username=mmuser --password
Unix ソケットを使う
5. /var/lib/postgres/data/pg_ident.conf
に以下の行を追加して Unix ユーザーの mattermost
を PostgreSQL ユーザーの mmuser
にマッピング:
mattermap mattermost mmuser
6. /var/lib/postgres/data/pg_hba.conf
に以下の行を追加して Unix ソケットを設定:
local mattermostdb mattermost peer map=mattermap
7. postgresql.service
を再起動。
8. 動作を確認:
$ sudo -u mattermost psql --dbname=mattermostdb --username=mattermost
#Mattermost の設定に進んでください。
Mattermost の設定
Mattermost は /etc/webapps/mattermost/config.json
で設定します。文字列はクォートで囲う必要があります。
使用するデータベースにあわせて設定する必要があります。
DriverName
の設定: MySQL の場合は mysql
、PostgreSQL の場合は postgres
に設定。
DataSource
の設定:
- MySQL の場合、
mmuser:mmuser_password@unix(/run/mysqld/mysqld.sock)/mattermostdb?charset=utf8mb4,utf8
に設定。 - PostgreSQL の場合:
- TCP ソケット:
postgres://mmuser:mmuser_password@127.0.0.1:5432/mattermostdb?sslmode=disable&connect_timeout=10
- Unix ソケット:
postgres:///mattermostdb?host=/run/postgresql
(postgres:
の後にスラッシュが3つ必要です。mattermostdb
はデータベースの名前、/run/postgresql
は Unix ソケットがあるディレクトリです)
- TCP ソケット:
mattermost.service
を起動・有効化して http://localhost:8065/ を開いてください。
Mattermost のセットアップ
1. Mattermost を開いてチームとユーザーを作成。
2. システムの最初のユーザーには自動的に system_admin
ロールが割り当てられ、システムコンソールにアクセスすることができます。
3. town-square
チャンネルからドロップダウンをクリックして System Console
オプションを選択。
4. Notification > Email
の設定を更新して SMTP メールサービスを設定。以下は AmazonSES を使用する例:
Send Email Notifications
をtrue
に設定Require Email Verification
をtrue
に設定Feedback Name
をNo-Reply
に設定Feedback Email
をmattermost@example.com
に設定SMTP Username
を[YOUR_SMTP_USERNAME]
に設定SMTP Password
を[YOUR_SMTP_PASSWORD]
に設定SMTP Server
をemail-smtp.us-east-1.amazonaws.com
に設定SMTP Port
を465
に設定Connection Security
をTLS
に設定- 設定を保存
5. File > Storage
から Local Directory Location
の設定を ./data/
から /mattermost/data
に変更。
6. General > Logging
から Log to The Console
を false
に設定。
7. 他の設定も自由に変更してください。
8. mattermost.service
を再起動。
Plugins
Plugins are enabled by default, but require access to the plugins directory which needs to be created with the correct owner:
$ mkdir /usr/share/webapps/mattermost/client/plugins $ chown mattermost:mattermost /usr/share/webapps/mattermost/client/plugins
ヒントとテクニック
リバースプロキシによる HTTPS
自己署名 TLS 証明書をサポートしていない Android や iOS アプリから安全に Mattermost サーバーにアクセスしたい場合、リバースウェブプロキシを設定する方法があります [1]。
プロキシの主な利点:
- SSL ターミネーション
- HTTP から HTTPS にリダイレクト
- ポート 80 を 8065 にマッピング
- 標準的なリクエストログ
大抵のウェブサーバーでプロキシを使えます。
nginx
1. nginx をインストール・設定 (nginx-mainline を推奨)。
2. ドメイン名 (例: mattermost.example.com
) からサーバーへのアクセスを設定。
3. インターネットから Mattermost サーバーへのプロキシ接続を nginx に設定。nginx の設定ファイル /etc/nginx/sites-available/mattermost
を作成・編集:
upstream backend { server 127.0.0.1:8065; } 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 mattermost.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; proxy_read_timeout 600s; 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_pass http://backend; } }
4. mattermost サーバーを有効化:
# mkdir /etc/nginx/servers-enabled # ln -s /etc/nginx/servers-available/mattermost /etc/nginx/server-enabled/mattermost
5. nginx.service
を再起動。
6. プロキシ経由で Mattermost にアクセスできることを確認:
curl http://localhost/
Mattermost
というタイトルのページが表示されるはずです。
7. Let’s Encrypt を設定。
Lighttpd2
Mattermost のプロキシとして lighttpd2-gitAUR を使用する設定例では証明書が /etc/lighttpd2/certs/lighttpd2.pem
にあることが前提となっています。
プロキシをバーチャルホストに転送したい場合は mod_vhost を参照。
/etc/lighttpd2/lighttpd.conf
setup { module_load [ "mod_accesslog", "mod_proxy", "mod_openssl" ]; openssl [ "listen" => "0.0.0.0:443", "listen" => "[::]:443", "pemfile" => "/etc/lighttpd2/certs/lighttpd2.pem", "options" => ["ALL", "NO_TICKET"], "verify" => true, "verify-any" => true, "verify-depth" => 9 ]; listen "0.0.0.0:80"; listen "[::]:80"; log ["debug" => "", default => "/var/log/lighttpd2/error.log"]; accesslog "/var/log/lighttpd2/access.log"; accesslog.format "%h %V %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}\""; static.exlude_extensions [ ".php", ".pl", ".fcgi", "~", ".inc" ]; } openssl.setenv "client-cert"; keepalive.timeout 360; docroot "/srv/http"; index [ "index.php", "index.html", "index.htm" ]; include "/etc/lighttpd2/mimetypes.conf"; proxy "127.0.0.1:8065";
翻訳とプルリクエストのテスト
非公式スクリプト mattermost-prepare-pkgbuild を使うことで翻訳とプルリクエストをテストできます。