「Mattermost」の版間の差分
Kusakata.bot (トーク | 投稿記録) 細 文字列「Tips and tricks」を「ヒントとテクニック」に置換 |
同期 |
||
| 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 |
|||
{{aur|mattermost}} パッケージを[[インストール]]してください。または {{aur|mattermost-git}} で開発版をインストールできます。 |
|||
}} |
|||
* インストールすると {{ic|mattermost}} ユーザーとグループが作成されます。 |
|||
* mattermost のディレクトリは {{ic|/var/lib/mattermost}} に作成され所有者は {{ic|mattermost:root}} となります。 |
|||
[[#データベースの設定]]に進んでください。 |
|||
==== データベースの設定 ==== |
|||
Mattermost はデータベースバックエンドを必要とします。データベースを同じマシンで実行する場合、最初に [[MySQL]]/MariaDB または [[PostgreSQL]] をインストールしてください。以下のセクションのどちらかに従ってから [[#Mattermost の設定]]に進んでください。 |
|||
公式サポートされているのは MySQL ですが、公式ガイドは PostgreSQL を使います。 |
|||
==== MySQL/MariaDB ==== |
===== 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}} を[[再起動]]。 |
|||
== ヒントとテクニック == |
== ヒントとテクニック == |
||
=== リバース |
=== リバースプロキシによる 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行目: | 290行目: | ||
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] を参照してください。 |
|||
2017年12月23日 (土) 23:29時点における版
- 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 を使う
mattermostAUR パッケージをインストールしてください。または 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 ソケット:
mmuser_password はユーザーのパスワードに置き換えてください。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 を再起動。
ヒントとテクニック
リバースプロキシによる 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 を使うことで翻訳とプルリクエストをテストできます。