自分用の設定メモ
事前準備
- conohaでdockerのインスタンスを作成
2.イメージ -> イメージタイプ = アプリケーション
に「Docker」っていうのがある
- docker-composeのインストール
- ドメインの取得
- ufwで80番と443番のポートを開放
構成
docker-composeを使って、以下の2つの環境を作成
- mastodon
- mastodonのAPサーバ
- ポートフォワードはやらない
- https-portal
- Let’s Encryptを使ったHTTPS対応を全自動でやってくれるコンテナ
- 80番と443番のポートを開放する
- mastodonのネットワークに接続して
mastodon/web
を公開する
手順(というか設定メモ)
mastodon の環境作成
READMEの通りに進める。
※解説はいろんな人が書いてるので省略
最終的な設定ファイルはこんな感じ。
docker-compose.yml
データの永続化部分のコメントを外して、ポートフォワードの部分をコメント化
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
version: '2'
services:
db:
restart: always
image: postgres:alpine
### Uncomment to enable DB persistance
volumes:
- ./postgres:/var/lib/postgresql/data
redis:
restart: always
image: redis:alpine
### Uncomment to enable REDIS persistance
volumes:
- ./redis:/data
web:
restart: always
build: .
image: gargron/mastodon
env_file: .env.production
command: bundle exec rails s -p 3000 -b '0.0.0.0'
# ports:
# - "3000:3000"
depends_on:
- db
- redis
volumes:
- ./public/assets:/mastodon/public/assets
- ./public/system:/mastodon/public/system
streaming:
restart: always
build: .
image: gargron/mastodon
env_file: .env.production
command: npm run start
# ports:
# - "4000:4000"
depends_on:
- db
- redis
sidekiq:
restart: always
build: .
image: gargron/mastodon
env_file: .env.production
command: bundle exec sidekiq -q default -q mailers -q pull -q push
depends_on:
- db
- redis
volumes:
- ./public/system:/mastodon/public/system
|
.env.production
SECRETとドメインとSMTPの設定をしただけ。
SMTPにはとりあえずで使い捨てのGMailアカウントを使用。
11行目付近
1
2
3
4
|
# Federation
LOCAL_DOMAIN=mastodon.kunst1080.net
LOCAL_HTTPS=true
|
36行目付近
1
2
3
4
5
6
7
8
9
|
# E-mail configuration
# Note: Mailgun and SparkPost (https://sparkpo.st/smtp) each have good free tiers
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587
SMTP_LOGIN=<GMailのメールアドレス>
SMTP_PASSWORD=<GMailのパスワード>
SMTP_FROM_ADDRESS=<GMailのメールアドレス>
SMTP_OPENSSL_VERIFY_MODE=none
|
https-portal の環境作成
docker-compose.yml
mastodonのネットワーク(mastodon_default)へ接続して、mastodonのweb:3000
を公開する。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
version: '2'
services:
https-portal:
image: steveltn/https-portal:1.0.1
ports:
- '80:80'
- '443:443'
restart: always
environment:
DOMAINS: 'mastodon.kunst1080.net -> http://web:3000'
FORCE_RENEW: 'true'
STAGE: 'production'
networks:
- mastodon_default
networks:
mastodon_default:
external: true
|
※STAGE: 'production'
を付けないとオレオレ証明書になってしまうので注意。
おまけ: 管理者の設定方法
1
2
|
$ docker-compose run --rm web rails mastodon:make_admin USERNAME=kunst1080
|
参考URL
Mastodon
https-portal