このまえのRailsdmで発表への質問を受け付けるのに使われてた「ama」というアプリが良さげだったので、試しに手元で動かしてみた。
- Railsdmのama: https://railsdm.herokuapp.com/
- Githubリポジトリ: https://github.com/yhirano55/ama
ほとんどREADME.md
に書かれてるとおりにやればいいけど、自分のメモのために書いておく。
ローカルで動かす
Ruby 2.6.1とPostgreSQLが必要なのであらかじめセットアップしておく。
rbenvを使っているなら、Ruby 2.6.1を使うように設定。
$ rbenv local 2.6.1
DB接続情報を.env
に設定:
.env
DATABASE_HOST=127.0.0.1
DATABASE_USERNAME=postgres
(好みで)gemをアプリ配下にインストールするように設定:
$ bundle config --local path .bundle
setupコマンド実行:
$ bin/setup
Github認証の設定。
- https://github.com/settings/developers にアクセス
- 「New OAuth App」をクリック
- 以下のように入力
- Application name
- 任意
- Authorization callback URL
- Application description
- 任意
- Authorization callback URL
- http://localhost:3000/auth/github/callback
-
config/routes.rb
に記載されているのでそれに合わせる
- Application name
- 「Register Application」をクリック
アプリが登録されて、Client IDとClient Secretが発行されるので.env
に追記:
.env
GITHUB_OAUTH_CLIENT_KEY=xxx
GITHUB_OAUTH_CLIENT_SECRET=xxx
以上で設定完了。railsサーバを起動する:
$ bin/rails s
ブラウザで http://localhost:3000/ にアクセスするとトップページが表示される。
Dockerで動かす
イメージをビルド:
$ docker-compose build
setupコマンド実行:
$ docker-compose run --rm app bin/setup
ローカル実行時と同じようにGithub認証を設定。
起動:
$ docker-compose up -d
ブラウザで http://localhost:3000/ にアクセスするとトップページが表示される。
管理者権限をつける
users
テーブルのrole
列に1(admin)を設定すると管理者になる。
rails consoleで設定するならこんなかんじ:
$ bin/rails c
> user = User.find_by(nickname: 'okonomi')
> user.role = 'admin'
> user.save
管理者になると、Issueの新規作成・編集・削除ができたり、他の人のコメントの編集・削除ができるようになる。