Mattermost公式で用意されているDockerでAWS Lightsailで稼働させた手順書です。
- Lightsailインスタンスで Mattermost/Nginx/PostgreSQL すべてを稼働させます
- $10プランで動作させているので爆安で使えます
Lightsail インスタンス作成
Lightsail > Create Instance
設定
Select a platform: LINUX
Select a blueprint: OS Only & Ubuntu 22.04 LTS
Enable Automatic Snapshots: Yes
Choose a time of day when you'd like us to attempt your snapshot: 03:00 + JST(GMT+9)
Select networking type: Dual Stack
Select a size: $5 USD per month(1 GB Memory, 2 vCPUs Processing, 40 GB SSD Storage, 2 TB Transfer)
Identify your instance: 適当な名前を
Pending -> Running になるのを待機してください
Networking設定 > StaticIPの設定
適当なIP名 をつけて Create and attach
Networking設定 > Firewall に https追加
DNSの設定
Route53にMattermost用のAレコードを作成して先ほどのStaticIPを設定してください
インスタンスの設定
参考ドキュメント:
Docker環境構築
sudo apt update
sudo apt upgrade -y
sudo reboot
sudo apt install docker.io -y
sudo systemctl start docker
docker-compose導入
aptではv2がインストールできないので手作業でインストールします
dubuntu@ip-172-26-14-228:~$ docker-compose
Command 'docker-compose' not found, but can be installed with:
sudo snap install docker # version 24.0.5, or
sudo apt install docker-compose # version 1.29.2-1
See 'snap info docker' for additional versions.
参考資料: https://github.com/docker/compose/releases
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.7/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
Mattermost導入
cd ~
git clone https://github.com/mattermost/docker
cd docker
設定ファイルの作成
cp env.example .env
vi .env
# Domain of service
- DOMAIN=mm.example.com
+ DOMAIN=mm.tech4u.dev
# Container settings
## Timezone inside the containers. The value needs to be in the form 'Europe/Berlin'.
## A list of these tz database names can be looked up at Wikipedia
## https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
- TZ=UTC
+ TZ=Asia/Tokyo
RESTART_POLICY=unless-stopped
必要なディレクトリの作成とパーミッションの付与
mkdir -p ./volumes/app/mattermost/{config,data,logs,plugins,client/plugins,bleve-indexes}
sudo chown -R 2000:2000 ./volumes/app/mattermost
新しい証明書とキーを作成します
bash scripts/issue-certificate.sh -d <YOUR_MM_DOMAIN> -o ${PWD}/certs
-
<YOUR_MM_DOMAIN>
を.env
のDOMAIN
に書き換えてください。 - メールアドレスが聞かれるので入力
- 利用規約等に同意してください
証明書が作成されていることを確認してください
$ sudo ls ./certs/etc/letsencrypt/live/
README <YOUR_MM_DOMAIN>
- もし
<YOUR_MM_DOMAIN>
が<YOUR_MM_DOMAIN>-00001
のようになっていたらリネームしてください
証明書とキーを含めるために、.env ファイル内の次の行のコメントアウト/コメント解除してください
- CERT_PATH=./volumes/web/cert/cert.pem
+ #CERT_PATH=./volumes/web/cert/cert.pem
- KEY_PATH=./volumes/web/cert/key-no-password.pem
+ #KEY_PATH=./volumes/web/cert/key-no-password.pem
#GITLAB_PKI_CHAIN_PATH=<path_to_your_gitlab_pki>/pki_chain.pem
- #CERT_PATH=./certs/etc/letsencrypt/live/${DOMAIN}/fullchain.pem
+ CERT_PATH=./certs/etc/letsencrypt/live/${DOMAIN}/fullchain.pem
- KEY_PATH=./certs/etc/letsencrypt/live/${DOMAIN}/privkey.pem
+ KEY_PATH=./certs/etc/letsencrypt/live/${DOMAIN}/privkey.pem
起動
sudo docker-compose -f docker-compose.yml -f docker-compose.nginx.yml up -d
sudo docker compose
となっていますがsudo docker-compose
で
日本語に切り替え
ここからは WebUIでの作業です
SMTP機能の設定
参考記事: https://docs.mattermost.com/configure/smtp-email.html
AWS SESを準備する
- AWS SESへアクセス
- メニューからSMTP設定選択
- SMTP 認証情報の作成 ボタン
-
SMTP のユーザーを作成して以下をメモ
- IAM ユーザー名
- SMTP ユーザー名
- SMTP パスワード
-
SESコンソールに戻り以下をメモ
- SMTP エンドポイント
- TLS ラッパーポート
- Amazon SES > 設定: ID から IDの作成
- ID タイプ: ドメイン
- ドメイン名に適切なドメインを入力する
Mattermostを設定する
- Send Email Notifications: true
- Notification Display Name: お好きな名前を
- Notification Email Address: AWS SESで設定したドメインのアドレスを
先ほどAWS SESで設定した情報をすべて入力してください。
- SMTPサーバー: SESのSMTPサーバー
- サーバーポート: TLS ラッパーポートから選択(たぶん465 または 2465)
- SMTP認証を有効: 有効
- SMTPサーバーユーザー名: 先ほどSESで作成したSMTPユーザ名(IAM名ではありません)
- SMTPサーバーパスワード: 先ほど作成したもの
- 接続のセキュリティー: TLS
保存してください
モバイルアプリへの通知の設定
プッシュ通知を有効にするで、iOSとAndroidアプリに通知を送信するには、TPNS接続を使用してくださいを設定してください
ファイルストレージの設定: ローカルからAWS S3へ移行する
AWS S3 にてバケットを作成する
-
リージョン:
ap-northeast-1
- バケットタイプ: (まま) 汎用
-
バケット名:
tech4u-mattermost
- オブジェクト所有者: (まま) ACL 無効
- このバケットのブロックパブリックアクセス設定: (まま) パブリックアクセスをすべて ブロック
- バケットのバージョニング: (まま) 無効にする
- 暗号化タイプ: (まま) Amazon S3 マネージドキーを使用したサーバー側の暗号化 (SSE-S3)
- バケットキー: (まま) 有効にする
AWS IAMユーザの作成してアクセスキーを作成する
-
ユーザ名:
tech4u-mattermost-s3-iam
-
ポリシーを直接アタッチする:
AmazonS3FullAccess
作成したAWS IAMユーザのアクセスキーを作成する
-
ユースケース:
AWS コンピューティングサービスで実行されるアプリケーション
- アクセスキーとシークレットアクセスキーをメモる
Mattermostのシステムコンソールのファイルストレージを設定変更する
設定キー | 設定値 | 備考 |
---|---|---|
ファイルストレージシステム | Amazon S3 | |
ローカルストレージディレクトリー | ./data/ | 変更しない |
最大ファイルサイズ | 100 | 変更しない |
内容によるドキュメント検索を有効にする | 有効 | 変更しない |
ZIPファイル内の文書の内容を検索可能にする | 有効 | |
Amazon S3バケット名 | 作成したS3のバケット名 | |
Amazon S3 Pathプリフィックス | 変更しない | |
Amazon S3リージョン | ap-northeast-1 | S3作成時のリージョン |
Amazon S3アクセスキーID | *********** | IAMユーザ作成時のアクセスキー |
Amazon S3 エンドポイント | s3.amazonaws.com | 変更しない |
Amazon S3 Secret Access Key | *********** | IAMユーザ作成時のシークレットアクセスキー |
Amazon S3シークレットアクセスキー | 有効 | 変更しない |
Amazon S3のデバッグを有効にする | 無効 | 変更しない |
保存して接続テストする
再起動する