4
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

mastodonをCentOS7.3に構築する(Docker利用版)

インターネット上にたくさん情報があり、特に説明は不要かと思いますが流行に乗って構築します。
以下の構築手順を参考にさせていただきました。
DockerでMastodonをローカルで動かしてみた! ので、その方法をご紹介

mastodonのソースコード
https://github.com/tootsuite/mastodon

mastodonの構築手順(Docker)
https://github.com/tootsuite/documentation/tree/master/Running-Mastodon
→Docker-Guide.md

ソースコードの取得

まっさらな状態から構築していきます。
まずは以下の方が書かれた記事を参考にDockerのパッケージを導入しておきます。
CentOS7にdockerとdocker-composeの最新版をインストールする

ソースコードの取得

# adduser mastodon
# gpasswd -a mastodon docker
# su - mastodon
$ git clone https://github.com/tootsuite/mastodon.git
// URLは上記の「mastodonのソースコード」より最新を確認してください
$ ls -l /home/mastodon/
drwxrwxr-x 15 mastodon mastodon 4096 Apr 23 19:01 mastodon

WEBアプリの設定変更

取得したソースコードを動かすために設定ファイルを準備する。
設定ファイルの変更

$ cd /home/mastodon/mastodon
$ ls -a
.env.production.sample
$ cp .env.production.sample .env.production

// あらかじめdockerを動かしておく
$ docker-compose build
中略
Successfully

.env.productionの編集
私が保持しているnotebook.yokohamaドメインで動かします。
修正した箇所だけ抜粋。事前にSparkPostなどの外部サービスや、PostfixなどMTAを利用可能な状態にしておきます。今回はPostfixを利用します。

.env.production
LOCAL_DOMAIN=notebook.yokohama
LOCAL_HTTPS=false
DEFAULT_LOCALE=ja
SMTP_SERVER=DockerとホストPCのブリッジNWのIPを指定する
SMTP_PORT=25
SMTP_FROM_ADDRESS=info@notebook.yokohama

$ docker-compose run --rm web rake secret
→上記コマンドを3回実行して、以下にそれぞれ設定
PAPERCLIP_SECRET=省略
SECRET_KEY_BASE=省略
OTP_SECRET=省略

メールの送信に関して、少し手間取ったので以下メモ
参考記事:Dockerコンテナ内部からホストのSMTPを利用したい
Docker上のmastodonからホスト上のPostfixを経由してメール送信を試みましたが、メール送信が失敗しました。原因はSMTP_SERVERにはlocalhostを指定していたためで、Docker上のコンテナから見た場合ホストサーバはネットワーク上別のサーバとなっています。そのためlocalhostはコンテナ自身となり、うまく動いていませんでした。コンテナとホストをブリッジしているNWのIPをSMTP_SERVERに指定すれば問題なく利用できました。

ブリッジNWのIP
ブリッジNWはdocker0というIF名らしい。

$ ip addr
docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN 
    link/ether 02:42:d4:1c:63:e8 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0

DBの初期化
DockerにおけるDB(おそらくPostgreSQL)の初期化

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

CSSや、JSなど静的ファイルのプリコンパイル
Railsのassets以下ファイルをコンパイルする

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

mastodonの起動

準備ができたので、Dockerを起動する

$ docker-compose up

https://notebook.yokohama
※サーバのリソースが不足したので、プロセスを落としています。
mast.png

動きました。もともとこのドメインはSSLサーバ証明書を導入したNginxを使っていたので、前面のNginxにhttpsでアクセスして、mastodonにhttpで転送する形としました。

独自構築Postfixのため、スパムフィルタで止まる可能性があります。。。gmailや、yahooメールは問題なく受信できましたが、携帯電話のキャリアメールだと届きません。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
4
Help us understand the problem. What are the problem?