Invoker – HTTP Service Manager

Pow is good. Its easy and simple to setup. Recently I faced issue with Pow that suddenly broke due to node update or whatever reason that I couldn’t still figure out. I rebooted the mac, brew updates, node updates, uninstalled and installed it back. But dunno it refused to serve my working development app.

This gave me an opportunity to switch to Invoker. (To be honest, I am not in favor of updating tools or switching to new tools that break our years together work sometimes. We always stick to the version that works until and unless there is a requirement.)

Invoker supports not only Ruby/Rack, but any web-service written in PHP or Python or Java or Django or express.js. So that’s a good news for PHP, Python, JAVA, Django and express.js developers to run web applications on different local domains without /etc/hosts hacks.(+1)

To start off with Invoker, its just three steps process (+1)

gem install invoker
sudo invoker setup
invoker start local.ini

The installation alone requires Ruby >=1.9.3 and it works with any version of app like even ruby 1.8.7 app or any other language app on HTTP service. (+1)

Refer if you are migrating from Pow

Before running the last step listed above, you need to make sure to add all your working app paths to local.ini file. Thereby, keeping track of all the apps in one place.(+1)

Here are some useful process management commands (+1)

# List currently running processes managed by invoker
~> invoker list

# Will try to stop running delayed job by sending SIGINT to the process
~> invoker remove app_name

# If Process can’t be killed by SIGINT send a custom signal
~> invoker remove app_name -s 9

# add and start running
~> invoker add app_name

# Restart process given by command Label
~> invoker reload app_name

# Restart process given by command label using specific signal for killing
~> invoker reload app_name -s 9

Last but not least, Logs at one place though you have 3 or 5 or 10 services running at same time. Invoker takes away the pain to look into different terminals for logs of your multiple services.
(+1 * number of apps) 😀

It’s a cool journey of Invoker ! Try it out.