Posted at

質疑応答アプリ「ama」を動かしてみる

このまえのRailsdmで発表への質問を受け付けるのに使われてた「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認証の設定。

アプリが登録されて、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の新規作成・編集・削除ができたり、他の人のコメントの編集・削除ができるようになる。