プログラミング忘備録

プログラミングやゲームに関することをつらつらと

Mattermostを使ってみる

サーバー関連の勉強に興味が出てきたので、試しにチャットツールであるMattermostをインストールしてみることに。
最初はラズパイにインストールする予定だったのですが、ARM CPUには対応していないようなので、Windowsのwslを用いてUbuntuにインストール。

既存の環境が崩れる可能性があるのが嫌&不必要になったらまとめて削除したい、ということでDockerを用いた手順を使用。
docs.mattermost.com

4と5については、オプション的な手順ということもあり省略。

カレントディレクトリにある.envファイルDOMAINをlocalhostに修正してから、6. Deploy Mattermost.の

sudo docker compose -f docker-compose.yml -f docker-compose.without-nginx.yml up -d

を実行して、ブラウザから http://localhost:8065 でアクセスしようとしたところ、エラー発生。

まずは、ファイやウォールでブロックされているわけではなさそうということを確認。

sudo ufw status
>> Status inactive


ChatGPTに聞きながら調べてみると、
/volumes/app/mattermost/config/config.json

のファイル内の設定が原因ぽいとのこと。
下記の3つをきちんと書いてみる

{
    "ServiceSettings": {
        "SiteURL": "http://localhost:8065",
        "WebsocketURL": "ws://localhost:8065",
        "AllowCorsFrom": "http://localhost:8065",
    }
}

再度、ブラウザからアクセスするとログイン画面が表示され、無事に使えることを確認。

外部からもアクセスできるように設定したかったのですが、参考書を見てみると、個人でサーバーを立てる等はとても困難であり現実的ではないとのこと...
item.rakuten.co.jp

config.jsonをうまく理解できていないせいか、localhost→wslを起動しているホストPCのIPアドレスへと変更すると、ホストPCのブラウザからアクセスできても、ローカルネットワーク (自宅のネットワーク) 内の他のPCからは接続できず...
しかも、ホストPCのブラウザでも数十秒後に「Please check connection~」という接続エラーが...
(偶然設定がうまくいったのか、1回だけラズパイから接続できたのですが、その時のスクリプトGithubにあげるのを忘れてしまうミス...)

wslを使わなければ、もう少しストレートに設定できたりするのかな...?