exfreeterのブログ

一念発起した。今日から頑張る。元ニートでもやれる。

Herokuの使い方まとめ(2013年12月時点、Rails使用)

Herokuの使い方は忘れやすい

Heroku、便利ですよね。
さくっとWebアプリ公開したりテスト用の環境作ったりするには最適ですよね。

今日僕も久しぶりにHeroku触ったんですが、半年ぶりくらいだったので使い方を忘れていて、色々ググるはめになりました。
たしか半年前も同じようなことをしていた気がするので、忘備録を兼ねてまとめておきます。

まずはHerokuのアカウントを取る

以下の公式サイトに行ってアカウントを取っておいて下さい。

Heroku | Cloud Application Platform

Heroku Toolbeltのインストール

次に、toolbeltをインストールしましょう。
ローカル端末からHerokuを操作するために必要なHerokuのCLIツールは、去年くらいまではgemとして提供されていました。
今は、Heroku Toolbeltというのを使ってインストールするようになっています。

インストールは簡単で、heroku toolbeltからダウンロードして普通に入れるだけです。
インストールが終わったら以下のコマンドで確認しておくと良いでしょう。

$heroku version

Railsプロジェクト作る

Herokuのインストールが終わったんで、次はHerokuにあげるRailsのプロジェクトをサクっと作っておきましょう。

$rails new YOUR_APP

続いて、Gemfileを変更します。
HerokuはデフォルトのDBがPostgreSQLなので、それに対応したものにしておきます。

gem 'sqlite3', :group => [:development, :test]

group :production do
  gem 'pg'
end

で、おなじみのbundle installですね。

$cd YOUR_APP
$bundle install

ここまでやったら、いったんGitにコミットしておきましょう。
HerokuはGitでPushすることでデプロイするのでGitは必須です。

$git init
$git add .
$git commit -m "COMMENT"

Heroku用の鍵を作る&登録する

次に、HerokuにSSH接続するための鍵を作ります。
アドレスの部分はHerokuに登録したものにして下さい。

$cd ~/.ssh
$ssh-keygen -t rsa -C "YOUR_MAILADDRESS" 

そして、そこで作られた鍵をHerokuに登録します。(以下はデフォルトの名前で鍵を作った場合。変更した場合は適宜修正が必要だと思います。)

$ heroku keys:add

Heroku上に自分のアプリを作る

ついにHeroku上に自分のアプリを作ります。
Railsプロジェクトのルートに移動して、

$heroku create YOUR_APP

YOUR_APP部分はRailsのプロジェクト名と同一にする必要はないですが、ここで決めたものがアプリのURLになるので、そこは注意して下さい。
その後、GitのリモートリポジトリにHerokuが自動登録されてるか確認しておきましょう。(便利!)

$git remote

HerokuにRailsアプリをデプロイ

最後です!
Railsアプリをデプロイしましょう。

$git push heroku master

無事push出来たら、ブラウザで以下のURLにアクセスして確認しましょう。
http://YOUR_APP.herokuapp.com/
Railsのデフォルトのindex.htmlが表示されればデプロイ成功しています。
お疲れ様でした。

この後は、Railsでゴリゴリ作っていけば良いかと思います。
コード書く→git commit→git push heroku masterの流れを楽しんで下さい。

多分、Asset Pipeline絡みでハマると思いますが、一度ハマってみましょう。
ネット上に腐るほど情報があるのでご安心を。

それでは、良いHerokuライフを。

(参考にしたサイト)

herokuコマンドをgemでインストールしたものからheroku toolbeltのものに置き換える - Qiita [キータ]

Railsで簡単なアプリをscaffoldで作ってHerokuにデプロイするまで - Qiita [キータ]

Rails4でheroku Pushまでの最短手順 [haml/bootstrap 3.0/postgresql or MySQL] - 酒と泪とRubyとRailsと