読者です 読者をやめる 読者になる 読者になる

freeCodeCampのmasterブランチをローカルで動かす

こいつをカスタマイズしてローカルで動かしたくて弄っているログです。

master ブランチに docker-compose.yml が存在するので簡単にイケるんじゃね?と思ったのがスタートで、OSS Gate東京ミートアップ2017-02-20に参加した時にテーマとして選択してみた。ちなみにそのイベントでは動かせていない

暫定版の起動方法

ごにょごにょした結果、以下の手順を踏めば起動まで持っていけた。

ちなみに staging ブランチが本家で動いているものを差異があるようだったので master ブランチで動かしているが、 docker-compose.yml は staging ブランチにしかコミットされてないのでそっちから持ってきている。

git clone https://github.com/freeCodeCamp/freeCodeCamp.git
cd freeCodeCamp
git checkout -b master-20170222 50a388d

# `loopback` `debug` `normalizr` は固定しないとダメ
perl -pi -e 's/"loopback": "\^2.22.0"/"loopback": "~2.22.0"/' package.json
perl -pi -e 's/"debug": "\^2.2.0"/"debug": "~2.2.0"/' package.json
perl -pi -e 's/"normalizr": "\^2.0.0"/"normalizr": "~2.0.0"/' package.json

npm install
bower install
npm run build
cp sample.env .env
echo NODE_ENV=production >> .env

git checkout staging -- docker-compose.yml
docker-compose up

これで一旦 Web サーバーと MongoDB の 2コンテナが起動するので、別セッションで以下を実行すればチャレンジ(問題)がロードされる。

# データベースへロード
docker exec $(docker ps -f name=freecodecamp_server_1 -q) node seed

DBの内容は起動時に読み込まれるっぽいので、一度 docker-compose を終了させて再起動すれば反映される。

docker-compose up

カスタマイズしたいポイント

  • 言語切替 + 翻訳して日本語化
  • OAuth認証の向き先変更
  • ヘルプフォーラムの向き先変更

お前は何がしたいんだっていう話ですが、社内の研修リソースとしてうまいこと活用できないかなと目論んでいるわけです。本家にも貢献できればいいけれども、それは出来たらベースということで。