invoker: Invoker requires port `:9000`, or else will not work.

I’m trying to migrate from POW, but lets give Invoker the benefit of the doubt and greenfield a new app rails create newapp && cd newapp. I did…

gem install invoker

My invoker.ini says…

[whisper]
directory = /Users/mycomputer/Sites/newapp
command = bundle exec rails s

I run sudo invoker setup

I run the app with … invoker start invoker.ini

Looks like it’s booting up!

whisper : => Booting Thin
whisper : => Rails 4.0.13 application starting in development on http://0.0.0.0:9000
whisper : => Run `rails server -h` for more startup options
whisper : => Ctrl-C to shutdown server
whisper : Thin web server (v1.6.3 codename Protein Powder)
whisper : Maximum connections set to 1024
whisper : Listening on 0.0.0.0:9000, CTRL+C to stop

But… curl whisper.dev -> Operation Timeout. Strange. https://0.0.0.0:9000 -> This site can’t provide a secure connection 0.0.0.0 sent an invalid response. Weird. http://0.0.0.0:9000/ -> Boots up my homepage without SSL support. So anything CORS fails. Once I try and click on a subdomain. It’s a big fail.

About this issue

  • Original URL
  • State: open
  • Created 7 years ago
  • Comments: 64 (25 by maintainers)

Most upvoted comments

I have bumped into the same issue. I can access my app fine by visiting localhost:9000, but if I visit web.dev I’m greeted by the usual

Application not running Invoker did not get any response. Please check if the application is running.

I’m using the latest version (1.5.4) and these are my configuration files:

$ cat /etc/resolver/dev
nameserver 127.0.0.1
port 23400
$ cat ~/.invoker/config
---
:http_port: 23403
:https_port: 23404
:tld: dev
:dns_port: 23400
$ cat /Library/LaunchDaemons/com.codemancers.invoker.firewall.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.codemancers.invoker</string>
<key>ProgramArguments</key>
<array>
<string>sh</string>
<string>-c</string>
<string>echo "rdr pass on lo0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 23403
rdr pass on lo0 inet proto tcp from any to any port 443 -> 127.0.0.1 port 23404" | pfctl -a 'com.apple/250.InvokerFirewall' -f - -E</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>UserName</key>
<string>root</string>
</dict>
</plist>
$ head -1 Procfile
web: sleep 7 && zeus server -p $PORT

and here is the output of invoker list

$ invoker list
  +-----+-----+------+------------------+---------------------------------------------+
  | dir | pid | port | process_name     | shell_command                               |
  +-----+-----+------+------------------+---------------------------------------------+
  |     | 828 | 9000 | web              | sleep 7 && zeus server -p 9000              |
  +-----+-----+------+------------------+---------------------------------------------+

@Arkham I had the same and was resolved by running with binding 0.0.0.0 (e.g. rails s -b 0.0.0.0)

Hey @swanandp! I’ve tried every suggestion in the thread and the current situation is:

  • localhost:9000
  • web.dev 🔴 Invoker did not get any response. Please check if the application is running.
  • web.dev:9000 🔴 This site can’t be reached web.dev refused to connect.

Port forwarding has suddenly stopped working for me too. Bummer.

  • http://myapp.dev:9000/ works
  • http://myapp.dev/ doesn’t work

Resolver and firewall.plist are both in sync with ~/.invoker/config.

Invoker doesn’t care about web servers in general - so yeah it does support Thin.

I suspect, what is happening is - there is some left over pf filter rules by Pow and Invoker isn’t the one that is receiving the request when you access your service using https://braidio.dev. So there is another filter rule which is directing traffic on port 80 and port 443 to elsewhere. Make sure you uninstalled pow properly and restarted the network.

@gotoAndBliss not having .dev resolver explains it. Im successfully using invoker with https and subdomain support. I need following info:

Do you have these files present? If so, what are their contents?

  • /etc/resolver/dev
  • ~/.invoker/config
  • /Library/LaunchDaemons/com.codemancers.invoker.firewall.plist