LoginSignup
1
2

Lightsail導入完成版2024 | SlackのオープンソースクローンMattermostをAWS Lightsailに導入して爆安で使う

Last updated at Posted at 2024-03-13

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の設定

image.png
Attach static IP を選択する

image.png

適当なIP名 をつけて Create and attach

Networking設定 > Firewall に https追加

image.png

DNSの設定

Route53にMattermost用のAレコードを作成して先ほどのStaticIPを設定してください

インスタンスの設定

参考ドキュメント:

Docker環境構築

sudo apt update
sudo apt upgrade -y

image.png

image.png

image.png

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
.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>.envDOMAINに書き換えてください。
  • メールアドレスが聞かれるので入力
  • 利用規約等に同意してください

証明書が作成されていることを確認してください

$ sudo ls ./certs/etc/letsencrypt/live/
README <YOUR_MM_DOMAIN>
  • もし<YOUR_MM_DOMAIN><YOUR_MM_DOMAIN>-00001のようになっていたらリネームしてください

証明書とキーを含めるために、.env ファイル内の次の行のコメントアウト/コメント解除してください

.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での作業です

システムコンソールにアクセス
image.png

言語を変更
image.png

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で設定したドメインのアドレスを

image.png

先ほどAWS SESで設定した情報をすべて入力してください。

  • SMTPサーバー: SESのSMTPサーバー
  • サーバーポート: TLS ラッパーポートから選択(たぶん465 または 2465)
  • SMTP認証を有効: 有効
  • SMTPサーバーユーザー名: 先ほどSESで作成したSMTPユーザ名(IAM名ではありません)
  • SMTPサーバーパスワード: 先ほど作成したもの
  • 接続のセキュリティー: TLS
    image.png

保存してください

次にテストをしてください。以下で完了です。
image.png

モバイルアプリへの通知の設定

image.png

プッシュ通知を有効にするで、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のデバッグを有効にする 無効 変更しない

保存して接続テストする

再起動する

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2