writefreely をdockerで走らせてみた。
まえがき
writefreely を docker で走らせてみた。
docker-compose.yml と、Dockerfile は以下で公開しています。
https://github.com/yakumo-saki/docker-writefreely
ライセンスはオリジナルに従い AGPL 3.0 としています。
なお、本文書は作業を行ってからしばらく立って記憶だけで書いているので
誤りがある可能性が高いです。誤りを見つけたら編集リクエスト等頂けるとありがたいです。
また、writefreely を production で走らせる場合、docker イメージはまだ出来てないよ的な記述があるのでご注意ください。
docker イメージ
yakumosaki/writefreely は、
https://hub.docker.com/r/writeas/writefreely/tags
に v0.10 のイメージがないので自分でビルドしたものです。
多少 Dockerfile に変更を入れていますが、影響はないと思います。
準備
リポジトリのクローン
必要なものはまとめてあるので、
git clone https://github.com/yakumo-saki/docker-writefreely writefreely
で、私のリポジトリからクローンして下さい。
config.ini
(クローンしたディレクトリ内で)
cp config.ini.example config.ini
config.ini ファイルを編集。 公式の config.ini.example に追加して、
1 | [server] |
としています。 リバースプロクシ等、この方が都合が良い場合が多いでしょう。
なお、config.ini でいうところの site name は blog の集合体としての writefreely のサイト名で
例えば、FC2 ブログ。とか livedoor ブログ。のようなレベルの名前です。
自分のブログの名前は Web UI から設定できます。この名前はあとで変えても良いので気楽に決めて下さい。
DB の準備
とりあえず、DB を準備します。残念ながらここは自動化できていません。
1 | $ docker-compose run db bash |
Web の準備
一時的に keys ディレクトリに誰でも書込ができるようにします。
1 | chmod 777 ./keys |
1 | $ docker-compose run --entrypoint '' web ash |
パーミッションを戻しておきます
1 | chmod 755 ./keys |
実行
あとは普通に docker-compose up -d して下さい
おまけ
federation するには恐らく、https が必要です。
また、一度 federation した場合は、ドメインを変更すると ActivityPub からみたアカウントとドメインの整合性がとれなくなるので適当なドメインで試しに動かす場合は、federation しないように
した方がよいでしょう。