LoginSignup
0
1

More than 5 years have passed since last update.

Dokku に Re:dash をインストールする

Posted at

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 の登録を行えば使えます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1