一分一秒真剣勝負!

Ruby, Railsなど。Web系の技術ネタを充実させたい・・が、そうなるかは分からない。

Railsの開発用サーバをPowからPuma-devへ乗り換えた

Rails5からデフォルトRackサーバがPumaになりました。開発用のサーバとして自分はずっとPowを使っていましたが、Pumaを使っているのであればPowではなくpuma-devが主流になっていると知って調べてみたところ、PowからPuma-devへの乗り換えを即決しました。 個人的にいいなと思ったのは以下の点。

  • Pow同様「zero-config Rack server」である
  • Websocketsをサポート
  • Linux対応(全機能を使うには追加のインストールが必要)
  • 開発が活発(Powは実質開発が止まっている)
  • powder相当のコマンドがPuma-devにはデフォルトで組み込まれている(puma-dev link)

Macでのインストール手順は以下のとおり。

$ curl get.pow.cx/uninstall.sh | sh # Powのuninstall
$ brew install puma/puma/puma-dev
$ sudo puma-dev -setup
$ puma-dev -install

これだけ。使い方は基本的にPowを踏襲していて、移行はスムーズにいけます。

$ cd /path/to/my/app; puma-dev link -n appname  #  Rackアプリを登録(~/.puma-devへシンボリックリンクを貼る)
+ App ‘appname' created, linked to '/Users/hoge/.puma-dev/appname'

http://appname.dev or https://appname.dev へアクセスできるようになります。 サーバの再起動もPowのままで、tmp/restart.txtをtouchするだけ。 また、puma-devにシグナルを送れば全アプリを一気に再起動できる。

$ touch tmp/restart.txt # サーバ再起動(Rackアプリの直下で実行)
$ pkill -USR1 puma-dev # 全アプリを再起動

しかしPowもそうだったけど「zero-config」で快適に使えるソフトって素晴らしいですね。 例えばfish shellもデフォルトの設定でかなり使えるという触れ込みなので、zshから移行しようかなと思ってたりします。

github.com