Mastodon git clone
Mastodonをgit cloneして中を見てみる
今流行りのMastodonをgit cloneしてみた。
中は設定ファイルが沢山とrails関係、フロント用のnode_modules、テスト関係、それからVagrantfileやDocker関係のファイル。
ファイル群について
今日は内容をざっと見るところまで。
内訳は、以下です。ディレクトリを意味するものは最期に「/」をつけています。
- ライセンスとかReadmeとかDocumentとか
- CONTRIBUTING.md
- ISSUE_TEMPLATE.md
- LICENSE
- README.md
- docs/
- buildpack
- .buildpacks
- Heroku用設定ファイル
- .slugignore
- Procfile
- デプロイツール(サービス)用
- scalingo.json
- コードレビュー用?設定ファイル
- .codeclimate.yml
- エディターの設定統一用設定ファイル
- .editorconfig
- git
- .git/
- .gitignore
- 環境変数設定ファイル(もしかしたらRails専用かも?)
- .env.production.sample
- .env.test
- .env.vagrant
- Ruby on Rails関係
- .rspec
- .rubocop.yml
- .ruby-version
- Capfile
- Gemfile
- Gemfile.lock
- Rakefile
- app/
- app.json
- bin/
- config/
- config.ru
- db/
- lib/
- log/
- public/
- spec/
- tmp/
- vendor/
- JavaScriptのトランスパイルとかビルドとかフロントエンド開発用とか
- .nvmrc
- .babelrc
- .eslintignore
- .eslintrc
- node_modules
- package.json
- storybook/
- streaming/
- yarn.lock
- CI テスト用
- .travis.yml
- Vagrant
- .vagrant/
- Vagrantfile
- Docker
- .dockerignore
- Dockerfile
- docker-compose.yml
きになったところ
- BabelでES7?やデコレータをトランスパイルするためにPlugin入れてる
- ドイツの人が作ったからかScalingoなんていうヨーロッパ圏で流行ってるのかもしれないデプロイツール入ってた
- プルリクされるの前提だからか今時当たり前なのか知りませんがコードレビューサービス用やコーディングルール統一用の設定ファイルが入っていた
- Storybook面白そう
- yarn使ってる?
- Vagrantでのプロビジョニングがshell(Docker出てきて以降シェルゴリが一般的になった気がする。。。)
- Vagrantで、rubyはrbenvで入れるのに、nodeはパッケージで入れてる(バージョンにこだわりはない?)
- VagrantではOSにUbuntu14.04(trusty)を使用している(DebianでもOpenSUSEじゃないんだ)
- Dockerの場合はAlpineなのね。
- Railsのことさっぱりだけど、どうやらsidekiqというgemを使って非同期なキューの処理を実現しているらしい、redisをバックエンドに使うようだ
- Webサーバー用意してリバースプロキシって構造ではないんですね。
- Rails = Unicornというイメージでしたが、Rails5からはPumaが標準搭載とのことでPumaを使っているらしい
多分なんですけど、envファイルを読み解けば、自分用の公開インスタンスを立てることはできそう。 VPSか、Herokuか、単体のDockerコンテナにするかは分かりませんが。
ひとまず、開発用として?1人で動かす分にはVagrantfileの設定にある通り、メモリ1GBで足りる模様。