localにkumaの環境を作る

2017-11-14

kumalocal で動かすための環境を作る。基本的には公式にある下記通りに進めていくが、そのままやってると一箇所動かないところがあるので注意が必要。 kumadocker が必要なので docker は先に入れておく。

Installation — Kuma Documentation

最低限動くところまで

$ mkdir mdn # 適当なプロジェクトディレクトリを作る
$ cd mdn
$ git clone --recursive git@github.com:mozilla/kuma.git
$ cd kuma
$ docker-compose pull
$ docker-compose build

環境変数のファイルをコピー。もし Linux を使っているなら、UID のコメントアウトを外す必要があるみたいだが、僕は Mac なのでとりあえず編集はしなくて良い。

$ cp .env-dist.dev .env

docker イメージを準備する。

$ docker-compose pull
$ docker-compose build

立ち上げる。

$ docker-compose up -d

サンプルのデータベースを作る。 wget コマンドが無ければ homebrew で入れてもいいし、curl でも良い。

$ wget -N https://mdn-downloads.s3-us-west-2.amazonaws.com/mdn_sample_db.sql.gz
$ docker exec -i kuma_web_1 bash -c "zcat | ./manage.py dbshell" < mdn_sample_db.sql.gz

各言語用の環境を作る。

$ docker exec -i kuma_web_1 make localecompile

静的アセットを作成する。

$ docker exec -i kuma_web_1 make build-static

ドキュメントではここで http://localhost:8000 にアクセス!って書いてあるが、500エラーになる。エラーを見ると下記のエラーが出ている。

OperationalError: (1054, "Unknown column 'auth_user.is_github_url_public' in 'field list'")

Bugzilla@Mozilla にバグが報告されていて、既に修正されているみたい。

1360294 - Add ability for users to hide github link from their public profile

修正されている migration ファイルがあるので、 migrate を叩く。

$ docker exec -it kuma_web_1 ./manage.py migrate

これで http://localhost:8000 にアクセスすれば表示できるはず。

フロントエンド開発の準備

$ npm install

これでフロントエンドの環境も整ったはず。

admin ユーザーを作る

必要に応じて質問に答える。

$ docker exec -it kuma_web_1 ./manage.py createsuperuser
$ docker-compose run --rm web ./manage.py ihavepower YOUR_USERNAME --password YOUR_PASSWORD

GitHub Auth の設定をする

編集やらログインしないとできないものを触りたい場合は、 GitHub Auth の設定をする必要がある。基本的には上記のドキュメントの通りここで下記の情報を埋めればできる。

key value
Application name MDN Development for (username).
Homepage URL http://localhost:8000/
Application description My own GitHub app for MDN!
Authorization callback URL http://localhost:8000/users/github/login/callback/

次にここDjango 側でも設定する。下記の情報を入れる。

key value
Provider GitHub
Name MDN Development
Client id 上で GitHub に登録したあとに表示されてる Client id
Secret key 上で GitHub に登録したあとに表示されてる Secret key
Site Available sitesにある http://localhost:8000/Chosen sites に移動する

これで GitHub にログインしてできるはず。