RSSを読むために導入したFreshRSS。
使い勝手は悪くないですが、RSS更新時にあれこれしたいと思っていたらSlackのオープンソース版とも言える無料のチャットツールがあるということで、Linux(Ubuntu Server 22.04)環境にMattermostをインストールしてRSSを読めるように設定していきます。
準備
DBを作成しておきます。
MattermostはPostgreSQLを推奨しているようです。MySQLでも使えそうですが。https://docs.mattermost.com/install/software-hardware-requirements.html#database-software
postgresqlをインストールして起動。
sudo apt install -y postgresql
sudo -u postgres psql
ユーザーやDBを作成し、パスワードや権限などを設定。
CREATE DATABASE <mattermost_db>;
CREATE USER <mattermost_user> WITH PASSWORD '<mattermost_pass>';
GRANT ALL PRIVILEGES ON DATABASE <mattermost_db> to <mattermost_user>;
ALTER DATABASE <mattermost_db> OWNER TO <mattermost_user>;
GRANT USAGE, CREATE ON SCHEMA PUBLIC TO <mattermost_user>;
インストール
リポジトリを追加。
curl -o- https://deb.packages.mattermost.com/repo-setup.sh | sudo bash -s mattermost
リポジトリを更新して、Mattermostをインストール。
sudo apt update
sudo apt install mattermost -y
初期設定
OS起動時に自動で起動するように設定。
sudo systemctl enable mattermost.service
Mattermost Server を起動する前に、サンプル構成ファイル(config.defaults.json)をコピーして、構成ファイル(config.json)を作成。
sudo install -C -m 600 -o mattermost -g mattermost /opt/mattermost/config/config.defaults.json /opt/mattermost/config/config.json
構成ファイルを編集。
sudo nano /opt/mattermost/config/config.json
編集内容は以下。
- SqlSettings
- DriverName
- postgres
- SiteURL
- https://private.sysmemo.com/mattermost/
- DataSource
- postgres://<db_user>:<db_pass>@<db_host>:5432/mattermost?sslmode=disable&connect_timeout=10
- DriverName
Mattermost サーバーをDBと同じ環境にインストールする場合は、以下を設定。
sudo nano /lib/systemd/system/mattermost.service
[Unit]
Description=Mattermost
After=network.target
# 以下2行を追記
After=postgresql.service
BindsTo=postgresql.service
Apache設定
サブディレクトリで運用したいので、Apacheの設定を追加。
sudo nano /etc/apache2/sites-available/mattermost.conf
ProxyPreserveHost On
RewriteEngine On
RewriteCond %{REQUEST_URI} /mattermost/api/v[0-9]+/(users/)?websocket [NC,OR]
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR]
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
RewriteRule .* ws://127.0.0.1:8065%{REQUEST_URI} [P,QSA,L]
<Location /mattermost>
Require all granted
ProxyPass http://127.0.0.1:8065/mattermost
ProxyPassReverse http://127.0.0.1:8065/mattermost
ProxyPassReverseCookieDomain 127.0.0.1 private.sysmemo.com/mattermost
</Location>
設定を有効化。
sudo a2ensite mattermost.conf
Apacheのモジュールを有効化。
有効化しないとProxyPreserveHostとか使えなくて困ったのは秘密。
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_wstunnel
起動
ApacheとMattermostを再起動。
sudo systemctl restart apache2 && sudo systemctl status apache2
sudo systemctl daemon-reload
sudo systemctl restart mattermost && sudo systemctl status mattermost
設定したURLにアクセスすると初期画面が表示される。
https://private.sysmemo.com/mattermost/
とりあえずブラウザで動作確認したいので「View in Browser」を選択。
管理者アカウントを作成。
組織名を入力。
最後まで設定を進めてわかったのですが、ここで入力した組織名がURLの一部になるようです。
https://private.sysmemo.com/mattermost/<組織名>/channels/<チャンネル名>
何かしらのサービスと連携する設定。今回はスキップ。
招待リンクを共有すれば招待できる様子。今回はスキップ。
トップにエラーが出ているようですが、初期画面が表示されました。
コメント