https://github.com/tootsuite/mastodon
Mastodonのインスタンスを立ててみた - めも.net
基本はこれを参考に。
t2.mediumで20GB、セキュリティグループは80と443を開けた。
変えたのは、
- Gitのcloneはsshじゃなくhttpsでやった
- SECRETはそれぞれ別にした(READMEに
Do this once for each of those keys
って書いてあったので)
Dockerが実行できない?
$ docker-compose run --rm web rake secret
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?
If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
$ docker version
Client:
Version: 17.04.0-ce
API version: 1.28
Go version: go1.7.5
Git commit: 4845c56
Built: Mon Apr 3 18:07:42 2017
OS/Arch: linux/amd64
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.28/version: dial unix /var/run/docker.sock: connect: permission denied
service docker restart
しても駄目で、SSHログインし直したら行けた。
S3
↓のようなインラインポリシーを持ったユーザーを作成
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt12345",
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::バケット名",
"arn:aws:s3:::バケット名/*"
]
}
]
}
設定はSSLで運用しているmastodonとS3の連携のハマりどころ - Qiitaを参考に。
SES
SMTP_SERVER=email-smtp.us-east-1.amazonaws.com
SMTP_PORT=587
SMTP_LOGIN=****
SMTP_PASSWORD=****
SMTP_FROM_ADDRESS=notifications@ドメイン
LOGIN
とPASSWORD
はCreate My SMTP Credentials
から作ったもの。(API経由で送るんじゃないのでSMTP専用のが必要)
PostgreSQL、Redisの永続化
docker-compose.yml
をアンコメント。
参考:今何かと話題のマストドン(mastodon)鯖を自分用に無料で立てる方法 - jtwp470’s blog
永続化設定の前にup
しちゃうと…
$ docker-compose up -d
Recreating mastodon_db_1
Recreating mastodon_redis_1
WARNING: Service "redis" is using volume "/data" from the previous container. Host mapping "/path/to/mastodon/redis" has no effect. Remove the existing containers (with `docker-compose rm redis`) to use the host volume mapping.
WARNING: Service "db" is using volume "/var/lib/postgresql/data" from the previous container. Host mapping "/path/to/mastodon/postgres" has no effect. Remove the existing containers (with `docker-compose rm db`) to use the host volume mapping.
Creating mastodon_web_1
Creating mastodon_sidekiq_1
Creating mastodon_streaming_1
$ docker-compose stop redis
$ docker-compose rm redis
$ docker-compose stop db
$ docker-compose rm db
データ作成する前だったので普通にやりなおした。
リダイレクト先が見つかりませんでした
リモートフォローができず。
ログを見ると、webfingerが404。
https://github.com/tootsuite/mastodon/blob/aa9079838648e9656a1bf8d10151713686e1c0dd/app/lib/webfinger_resource.rb#L64
ここでfalseになってそう。
→ LOCAL_DOMAIN
のタイポに気づく…。
デバッグ
とりあえず、
- ログレベル買える
-d
せずにup
すれば行けた。
証明書の自動更新とかやらないとな。
Let's Encrypt
地味に初めましてだった。
# 初回の取得
# この時点ではnginxがデフォルトの場所で起動してたのでいけた。
$ ./letsencrypt-auto certonly --webroot -w /var/www/html/ -d ドメイン
# 更新
# もはや/var/www/htmlでは動いてないのでこける
$ ./letsencrypt-auto renew --force-renewal --dry-run
# コレなら行けた
$ /path/to/letsencrypt/certbot-auto certonly --webroot -w /path/to/mastodon/public -d ドメイン --renew-by-default --dry-run && service nginx reload
# その後はコレも通るようになった
$ ./letsencrypt-auto renew --force-renewal --dry-run
0 0 1 * * /path/to/letsencrypt/certbot-auto certonly --webroot -w /path/to/mastodon/public -d ドメイン --renew-by-default && service nginx reload
ひとまずこれでCronに設定。