たとえばローカルで複数の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しなくてもよくなり、またターミナルの領域も節約できてとても作業が捗ります。 ぜひ試してみてください。