Re:dash は Heroku へのインストールにも対応しているので、Dokku へのインストールも比較的簡単です。
とはいえ微妙に面倒なポイントもあるのでメモ。
基本的には Re:dash ドキュメントの Heroku へのインストール手順にならいます。
Dokku 側の準備
Dokku 自体のインストールについては割愛します。
Re:dash では PostgreSQL と Redis が必要なので、それぞれの dokku plugin を用意する必要があります。
プラグインのインストールには root 権限が必要なので、Dokku のホストマシン上で以下を実行。
$ sudo dokku plugin:install https://github.com/dokku/dokku-postgres.git postgres
$ sudo dokku plugin:install https://github.com/dokku/dokku-redis.git redis
Re:dash 側の準備
まずは Re:dash をチェックアウトします。
$ git clone https://github.com/getredash/redash
$ cd redash
Re:dash には Dockerfile
が用意されているため、そのまま dokku に push すると Docker でのデプロイが行われるのですが、うまく動かなかったのでとりあえず Buildpack でデプロイします。
Dokku は Heroku の Buildpack に対応しています。
Heroku 同様、環境変数 BUILDPACK_URL
での指定もできますが、Re:dash では Python と Node.js の Buildpack が必要なので、Re:dash リポジトリのルートに .buildpacks
というファイルを用意し、以下のように記述してコミットします。
https://github.com/heroku/heroku-buildpack-python#v81
https://github.com/heroku/heroku-buildpack-nodejs#v91
一応この記事の執筆時点での最新のリリースを指定しています。
デプロイ
次にアプリのコンテナを用意していきます。
以降はユーザ権限で問題ないので、Dokku ホスト外から dokku_client.sh 等を使って行うこともできると思います。
まずは空のコンテナを作ります。
これを Re:dash のリポジトリ内で実行すると dokku
という git remote として登録されます。
$ dokku apps:create redash
次にストレージの用意。
それぞれアプリにリンクすることで接続に必要な環境変数が自動的にアプリにセットされます。
$ dokku postgres:create redash
$ dokku postgres:link redash redash
$ dokku redash:create redash
$ dokku redash:link redash redash
次にクッキーの暗号化に使用するキーをセット。
Re:dash のドキュメントに従って pwgen
を使います。
(Mac なら brew install pwgen
でインストール可能)
$ dokku config:set REDASH_COOKIE_SECRET=`pwgen 32 -1`
そして push します。
$ git push dokku master
これはしばらく時間がかかります。
完了したら dokku run
から必要なコマンドを実行し、データベースと管理者を作成していきます。
$ dokku run ./manage.py database create_tables
$ heroku run ./manage.py users create --admin "Admin" admin
アカウント作成時にはパスワードを聞かれるのでそれも入力します。
そしてワーカーを起動。
$ dokku ps:scale worker=1
これで Re:dash の起動は完了です。
あとは URL にアクセス・管理者としてログイン・Datasource の登録を行えば使えます。