Mattermost

提供: ArchWiki
2017年1月1日 (日) 23:01時点におけるKusakata (トーク | 投稿記録)による版 (同期)
ナビゲーションに移動 検索に移動

Mattermost のホームページ より:

Mattermost はオープンソースで、セルフホスト型の Slack クローンです。
プロプライエタリな SaaS メッセージングの代替として、Mattermost はチームコミュニケーションをひと処に集めて、全ての情報を検索・閲覧しやすくします。

インストール

ノート:
  • Mattermost はデータベースバックエンドを必要とします。データベースを同一のマシンで動作させる場合、まず MySQLPostgreSQL をインストールしてください。
  • Docker を使うことで Mattermost を簡単にインストールする方法があります。ワンラインインストール が強力です。

mattermostAUR パッケージをインストールしてください。

設定

データベースの設定

Mattermost はデータベースとして PostgreSQL または MySQL/MariaDB のどちらかを必要とします。以下のどちらかのセクションに従って設定してから #Mattermost の設定に進んでください。

PostgreSQL

user$ sudo -i -u postgres
postgres$ psql
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

通常ユーザーから新しいユーザーとデータベースが機能することを確認:

psql --host=127.0.0.1 --dbname=mattermost --username=mmuser --password
mattermost=> \q

MySQL/MariaDB

$ mysql -u root -p
CREATE DATABASE mattermost;
CREATE USER mmuser IDENTIFIED BY 'mmuser_password';
GRANT ALL ON mattermost.* TO mmuser;
exit;

Mattermost の設定

設定ファイルは /etc/webapps/mattermost/config.json に存在します。

使用しているデータベースにあわせて2箇所変更する必要がある部分があります:

"DriverName": "..." の設定:

  • MySQL の場合 (デフォルト)、"mysql" に設定してください。
  • PostgreSQL の場合、"postgres" に設定してください (postgresql ではありません)。

接続文字列 "DataSource": "..." はデータベースとユーザーの設定に合わせてください:

  • MySQL の場合、"mmuser:mmuser_password@unix(/run/mysqld/mysqld.sock)/mattermost?charset=utf8mb4,utf8" などに設定してください。
  • PostgreSQL の場合:
    • ネットワークソケットを使用する場合は "postgres://mmuser:mmuser_password@127.0.0.1:5432/mattermost?sslmode=disable&connect_timeout=10" などに設定してください。
    • Unix ソケットを使用する場合は "postgres:///mattermost?host=/run/postgresql" に設定してください。"postgres:" の後には3つのスラッシュが必要で "mattermost" はデータベースの名前に、"/run/postgresql" はソケットが含まれているディレクトリに置き換えてください。
ノート: mmuser_password はユーザーに設定したパスワードに置き換えてください。

Mattermost の起動

パッケージには mattermost.service が含まれています。通常のデーモンと同じように起動有効化してください。

テスト

ブラウザを起動して http://localhost:8065/ を開いてください。Mattermost のチャットスタートページが開くはずです。

Tips and tricks

リバースウェブプロキシによる TLS/SSL

Mattermost の AndroidiOS アプリでは自己署名の TLS/SSL 鍵をサポートしていないため、リバースウェブプロキシを使用することを推奨します。

Lighttpd2 による TLS/SSL

lighttpd2-gitAUR を使用して Mattermost のプロキシとして動作させる例:

/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";

証明書は /etc/lighttpd2/certs/lighttpd2.pem に配置します。proxy "127.0.0.1:8065" 行をバーチャルホストのドメインに変えたい場合は mod_vhost を参照してください。