Running @metabase on Dokku (open-source Heroku clone) is easy, it turns out :) https://t.co/6YqBqcWLwn
— Sandy Rogers (@sndyrgrs){' '} December 15, 2015
其實我原本是想用 dokku 的,雖然跟著範例跑,直接用 web: java -jar
的方式,dokku 似乎都無法辨識出 java app,然後 pom.xml
我也不熟,花了一些時間試不出來就放棄了。然後突然想到最近的新起之秀 zeit/now 有支援 Dockerfile 的方式,應該可以試試看,然後就...
echo 'FROM metabase/metabase' > Dockerfile && now deploy -n NAME
NAME 可換成你想要的 App name
等他跑完之後(註 1)進 https://YOUR-APP.now.sh/setup 就可以開始玩了(那我之前試這麼久是...0rz
database
基本上你不需要特別建一個新的 DB 就可以開始使用 metabase,因為他本身有內建一個叫 H2 的簡易型資料庫,不過如果你想到資料保存、備份的問題,使用獨立的資料庫還是比較好一點。
可以參考文件,metabase 預設是建議 postgresql,但是 mysql 也在支援範圍之內。
now 有支援環境變數和一些敏感資訊的處理,可以參考這篇
// 先用 now secrets
now secrets add dbname=""
...
// 然後可以透過 now -e @dbname 這種方始指定環境變數
now \
-e MB_DB_TYPE=postgres \
-e MB_DB_DBNAME=@dbname \
-e MB_DB_PORT=5432 \
-e MB_DB_USER=@dbuser \
-e MB_DB_PASS=@dbpass \
-e MB_DB_HOST=@dbhost
註一
這是目前覺得 zeit/now 很缺乏的一點,就是沒有好的介面能夠除錯或是看到 console 執行的狀態,完全瞎子摸象 XD(官方是說 coming soon,但是也不知道啥時才會出來)。目前的暫解,你可以用這種格式看到簡易的部署進度 https://zeit.co/{USER}/{APP}/{HASH}
部署完,如果打開網址看到 Error 502 or 500 的話就是還沒跑完安裝 (jar),等一會再試試。