たとえばローカルで複数のRuby on Railsアプリケーションを管理するとき、ターミナルからrails s
を実行したりすると思います。
hotelをつかうと、これらを一元管理することができます。
Railsアプリに限らずプロセス全般を管理できて便利なので、ここで紹介したいと思います。
hotelとは
hotelは開発者のためのプロセス管理ツールです。
Webブラウザからサーバを起動・停止したり、任意の名前の.dev
ドメインを割り当てたりできます。
たとえば、Railsのサーバを登録するのは次のコマンドで行ないます。 あとはブラウザのUIからボタンを切り替えるだけで、サーバを起動・停止することができます。
$ hotel add 'rails s -p $PORT' --name post.simplie
この場合、post.simplie.dev
にアクセスすると、普段localhost:3000
にアクセスするときと同じふるまいをします。
動作環境
この記事の内容は、次の各バージョンで動作を確認しています。 ここではRailsを例にとりますが、デバッグについては設定がすこし必要なので、pryについても表示しています。
- hotel v0.5.11
- rails v5.0.0.1
- pry-rails v0.3.4
- pry-remote v0.1.8
使い方
1. インストールする
まずは、npmをとおしてhotelをインストールします。
$ npm install -g hotel
2. hotelを起動する
次にhotelを起動します。
起動が完了するとlocalhost:2000
またはhotel.dev
で管理画面にアクセスできるようになります。
$ hotel start
※ .dev
ドメインによるアクセスには、後述する別途設定が必要です
3. サーバを追加する
あとは、必要に応じてサーバを追加していきます。
たとえばRailsアプリを追加するには、次のようなadd
コマンドを実行します。
$ hotel add 'rails s -p $PORT'
$ hotel add 'rails s -p $PORT' --name post.simplie # 名前を指定したい場合
--name
オプションは省略することができます。
この場合、コマンドを実行したディレクトリ名がデフォルトで設定されます。
4. サーバを起動する
hotelの管理画面はlocalhost:2000
でアクセスできますが、ここに3で追加したサーバが表示されます。
ここのボタンを切り替えると、サーバの起動・停止を行なえます。
起動したアプリケーションには、localhost:2000/(name)
または(name).dev
でアクセスすることができます。
以降は通常と同じフローでアプリケーションを開発していくことになります。
devドメインを有効にする
.dev
ドメインでアクセスするには設定が必要になります。
ここではmacOSについて書きますが、詳細は公式ドキュメントをご覧ください。
macOSでは、まず以下の設定画面を開き:
システム環境設定 > ネットワーク > 詳細 > プロキシ
プロキシ構成ファイルのURLにhttp://localhost:2000/proxy.pac
を設定します。
proxy.pac
はプロキシの設定ファイルで、これを設定することにより.dev
ドメインでアクセスできるようになります。
pryでデバッグする
Railsアプリ開発で必須ともいえるのがpryですが、hotelの管理画面で確認できるログはRead-onlyなのでコンソールは使えません。 pryでデバッグを行なうためには、pry-remoteをインストールする必要があります。
これをインストールすれば、あとはソースコードの適当なところで
binding.remote_pry
を仕込み、コンソールで
$ bundle exec pry-remote
とすると、通常と同じようにデバッグすることができます。
1点注意として、pry-remoteはpry-byebugをインストールしているとうまく動作しないことがあります。
この場合はpry-byebugをGemfile
から削除して試してみてください。
おわりに
hotelを導入すると、いちいちディレクトリにいってrails s
しなくてもよくなり、またターミナルの領域も節約できてとても作業が捗ります。
ぜひ試してみてください。