一人用マストドン作った

f:id:mi_ki_ri:20170415223351p:plain

なぜ一人用か

  1. せっかくリモートフォローという機能があるんだから活用したかった
  2. パスワードは漏れにくい(たぶん)
  3. サーバー周りの勉強のため

手順

  1. AWSを利用しようと思った。以前から手軽だというAWS Lightsailが気になっていたため、それを使うことに。
  2. まずLightsailのインスタンスを作成。*一番小さいやつにするとメモリが足りないっぽい*ため、2番めに小さい$10のを選択。ちなみに、メモリが足りないことに気づかずしばらくハマった。
  3. SSHでログイン。コンソールっぽいものが立ち上がる。ここまではすごくお手軽でLightsailすごいってなる。
  4. sudo yum update -y と打つ。sudo:管理者権限でするよ! yum:なんかいろいろインストールできるやつ。 update:yumのコマンドで、各プログラムを最新にしてくれる。 -y:イエスかノーか聞かれる前にイエスと行っておくオプション。
  5. docker と docker-compose を入れる。dockerとは仮想マシンみたいなもので、ちょっと便利なやつ(あやふや)。
  6. sudo tee /etc/yum.repos.d/docker.repo <<-EOF
    [dockerrepo]
    name=Docker Repository
    baseurl=https://yum.dockerproject.org/repo/main/oraclelinux/6
    enabled=1
    gpgcheck=1
    gpgkey=https://yum.dockerproject.org/gpg
    EOF
    sudo yum install docker
  7. sudo su -
    sudo curl -L "https://github.com/docker/compose/releases/download/1.11.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    chmod +x /usr/local/bin/docker-compose
  8. 上の二つでdockerとdocker-composeが入る。
  9. sudo service docker start と打つ。docker がスタートするんだと思う。
  10. sudo yum install git と打つ。これはわかる。gitをインストールしているんだ。
  11. git clone https://github.com/tootsuite/mastodon.git gitでmastodonのプロジェクトをコピーしてくる。
  12. cd mastodon mastodonフォルダができてるので移動する。
  13. cp .env.production.sample .env.production サンプルで入っている設定ファイルをコピーしてくる。
  14. nano .env.production 設定ファイルをnanoでいじくる。
  15. sudo gpasswd -a ec2-user docker ec2-userというuserをdockerグループに入れる。dockerを円滑に動かすには必要な処理。
  16. docker-compose pull docker-composeを使って必要なファイルを集めてくる。
  17. docker-compose build ビルドする。緊張の一瞬。
  18. docker-compose run --rm web rake secret ビルドが無事できてたらこれでシークレット文字列が発生させられる。シークレット文字列をメモる。
  19. docker-compose run --rm web rake secret ビルドが無事できてたらこれでシークレット文字列が発生させられる。シークレット文字列をメモる。
  20. docker-compose run --rm web rake secret ビルドが無事できてたらこれでシークレット文字列が発生させられる。シークレット文字列をメモる。
  21. nano .env.production 再び設定ファイルを開いて、シークレット文字列3つを所定の場所に入れる。
  22. docker-compose run --rm web rails db:migrate データベースの何か(不明)
  23. docker-compose run --rm web rails assets:precompile 察するに動かす前の下準備をしているんじゃないかな。
  24. docker-compose  up -d dockerを動かす。これも緊張の一瞬。
  25. Lightsailの方でポート番号3000を開放する
  26. sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000 開けた3000にリダイレクトするよう指定する。
  27. LightsailのIPにアクセスしてみるとサインイン画面になってるはず。

できたもの

ミケさん氏(見切り発車P)@mastodon - Mastodon@mastodon.mikiri.net

終えてみて

  1. 27項目もあったが、もちろん一直線にこの27項目をクリアしたわけではない。あれこれ試行錯誤した。
  2. あとこれだけだと画像やメールが使えない。docker-compose run --rm web rails mastodon:confirm_email USER_EMAIL=xxxxxxxx でメールを認証できる。
  3. が、メンバーが増えるたびに上記コマンドを入れるわけにもいかないので本当にお一人さま仕様。
  4. さらになんかセキュリティ上のリスクとかありそうで怖い。
  5. サーバー管理は向いてないわ…
  6. Qiitaはじめいろんなサイトの記事を参考にさせてもらった。すごく感謝する。

参考になる記事

  1. GitHub - tootsuite/mastodon: A GNU Social-compatible microblogging server

  2. お一人様のMastodon - Qiita

  3. AWSでmastodonインスタンスを立てる手順 - Qiita

  4. Dockerで雑にMastodonを起動する方法 - Qiita

  5. Docker Documentation - Docker Documentation