LoginSignup
9
8

More than 5 years have passed since last update.

FlynnをHerokuの代替に使おうとしてはまったのでメモ

Last updated at Posted at 2015-07-28

はじめに

Flynn

Open PaaSとしてHerokuに似たものを探していて、FlynnとDeisというものがあることを知った。
FlynnでもDeisでもどちらもでもよかったのだけど、FlynnにDokkuの作者が関わっており、Dokkuの名前は聞いたことがあったのでFlynnの環境を一つ作ってみた。

Flynnの環境作成はわりと簡単にできたけど、手持ちのRailsアプリをデプロイするのに一苦労したので、メモ代わりにQiitaに投稿してみる。

目次

  • SSH公開鍵の登録
  • アプリケーションの作成
  • PostgreSQL用の設定が必要
  • 環境変数
  • rails_12factor
  • flynnへのデプロイ
  • rake db:migrate

SSH公開鍵の登録

gitでアプリをpushする所謂Herokuスタイルを実現するために、まずはSSH公開鍵の登録が必要。
flynn key add [<public-key-file>]

アプリケーションの作成

flynn create <app_name>

PostgreSQL用の設定が必要

Herokuを使っているとDB周りは自動で設定してくれるので気付かなかったけど、Flynnを使う場合はPostgreSQLの設定が必要。
FlynnにはPostgreSQLのインスタンスを作るコマンドがあるのでそれを使用する。

flynn resource add postgres を実行して以下を編集

config/database.yml
production:
  adapter: postgresql
  encoding: unicode
  pool: 5
  url: <%= ENV['DATABASE_URL'] %>

DATABASE_URLは以下のコマンドを実行して環境変数にセットする。

flynn env set DATABASE_URL=$(export $(flynn env | xargs); echo "postgres://$PGUSER:$PGPASSWORD@$PGHOST:5432/$PGDATABASE")

(実際は一行)

環境変数

前節のDATABASE_URLもそうだけど、環境変数の設定が必要。

  • RAILS_ENV=production
  • SECRET_KEY_BASE=rake secretで得られる値

あたりが必須であろうか。以下のように設定する。
flynn env set RAILS_ENV=production

rails_12factor

これもHeorkuの場合は自動でGemを追加してくれるので気付かなかったのだが、Flynnの場合は手動でGemfileに記載する必要がある。
rails_12factorをGemfileに記載していない場合Warningが出る。そしておそらくAsset Pipelineがうまく動かない。

flynnへのデプロイ

git push flynn master

rake db:migrate

これもHerokuの場合は自動ででやってくれるので気付かなかったのだが、Flynnの場合は手動で行う必要がある。といっても簡単にできる。

flynn run rake db:migrate

9
8
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
9
8