//あとで書く

です・ます調が記事によって違ったりするブログ

Mastodonのセットアップ

今更ながら自分用のMastodonインスタンスを作ってみた.環境は以下の通り.

$ cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
$ uname -m
x86_64

docker-engine

/etc/yum.repos.d/docker.repoに以下を記述.

[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
$ sudo yum install docker-engine

docker-compose

/usr/local/bin以下に配置.

$ sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose

Let's Encrypt

80,443ポートを開放しておく.

$ sudo firewall-cmd --add-service=http --zone=public --permanent
$ sudo firewall-cmd --add-service=https --zone=public --permanent
$ sudo firewall-cmd --reload
$ sudo systemctl restart firewalld
$ sudo firewall-cmd --list-all

/opt以下に配置.

$ cd /opt
$ sudo git clone https://github.com/letencrypt/letsencrypt.git
$ cd letsencrypt
$ ./letsencrypt-auto certonly --standalone -d [自分のドメイン]

Nginx

configはこのページから取ってきた.example.comの部分を自分のドメインに変更する.

$ sudo yum install nginx
$ cd /etc/nginx/conf.d/
$ vim mastodon.conf

Mastodon

/opt以下に配置.

$ cd /opt
$ git clone https://github.com/tootsuite/mastodon.git
$ cd mastodon
$ git checkout $(git tag | tail -n 1)

シークレットを3つ生成.以下を3回実行.

$ docker-compose run --rm web rake secret

.env.productionを編集する.

$ cp .env.production .env.production.back
$ vim .env.production
LOCAL_DOMAIN= #自分のドメイン
LOCAL_HTTPS= true

...

PAPERCLIP_SECRET= #1回目のシークレット
SECRET_KEY_BASE= #2回目のシークレット
OTP_SECRET= #3回目のシークレット

メールの送信についてはsparkpostを使うと便利.指定されたTXTレコードを設定後,APIキーを発行し,.env.productionを以下のように編集する.

...

SMTP_SERVER=smtp.sparkpostmail.com
SMTP_PORT=587
SMTP_LOGIN=SMTP_Injection
SMTP_PASSWORD= #APIキー
SMTP_FROM_ADDRESS=notifications@ [自分のドメイン]
#SMTP_DOMAIN= # defaults to LOCAL_DOMAIN
#SMTP_DELIVERY_METHOD=smtp # delivery method can also be sendmail
SMTP_AUTH_METHOD=plain
#SMTP_CA_FILE=/etc/ssl/certs/ca-certificates.crt
SMTP_OPENSSL_VERIFY_MODE=none
SMTP_ENABLE_STARTTLS_AUTO=true

データベースのマイグレーション,アセットのプリコンパイルを実行する.

$ docker-compose run --rm web rails db:migrate
$ docker-compose run --rm web rails assets:precompile

docker-compose.ymlを編集し,データベースの永続化を行う.

$ cp docker-compose.yml docker-compose.yml.back
$ vim docker-compose.yml
# コメントを外す.
### Uncomment to enable DB persistance
    volumes:
      - ./postgres:/var/lib/postgresql/data
...

# コメントを外す.
### Uncomment to enable REDIS persistance
    volumes:
      - ./redis:/data

...

# 127.0.0.1:3000にbindするように変更する.
    ports:
      - "127.0.0.1:3000:3000"

...

# 127.0.0.1:4000にbindするように変更する.
    ports:
      - "127.0.0.1:4000:4000"

ビルドして起動する.

docker-compose build
docker-compose  up -d

これでhttps://domain/aboutにアクセスすれば終了. f:id:epcnt19:20171008195400p:plain

参考