#40 puma-dev replacement for pow and prax

Summary

Puma-dev is the emotional successor to pow. It provides a quick and easy way to manage apps in development on OS X; supporting web sockets and ssl.
development web server 6:24

Resources

puma-dev - https://github.com/puma/puma-dev

Summary

bashcurl get.pow.cx/uninstall.sh | sh
/usr/local/bin/pumad#!/bin/bash
if [ ! -f Gemfile ]; then
  echo "Are you sure you're in a Ruby on Rails app?"
else
  ln -s "$(pwd)" ~/.puma-dev/"$(basename `pwd`)"
  puma-dev -install
  echo "Your app should be available at http://$(basename `pwd`).dev and https://$(basename `pwd`).dev now!"
fi
/usr/local/bin/unpumadrm ~/.puma-dev/"$(basename `pwd`)"
bashchmod +x /usr/local/bin/pumad
chmod +x /usr/local/bin/unpumad
bashbrew install puma/puma/puma-dev
sudo puma-dev -setup
puma-dev -install

To stop all puma-dev apps.

bashpkill -USR1 puma-dev
kobaltz PRO said over 2 years ago:

puma-dev now supports the ability to map your application with a helper. This would replace the need to use the pumad script as shown in the video.

puma-dev link [-n name] [dir]

marklar PRO said over 2 years ago:

Thanks for the screencast. Do you know whether puma-dev works with foreman?

kobaltz PRO said over 2 years ago:

You may not need foreman with puma-dev since it will automatically start up your Rails app on the first request.

marklar PRO said over 2 years ago:

I use my procfile with foreman to start redis and resque, would these automatically start with puma-dev?

kobaltz PRO said over 2 years ago:

Puma-dev wouldn't automatically start those services. It will just start the Rails app.

frank004 said almost 2 years ago:

Im having the same problem Im using procfile with foreman. How can we implement the use of it.

blimey85 said over 1 year ago:

I got this working fine except I don't get any logging for the actual app that's running. It tells the the app has booted and then nothing.

* Directory for apps: /Users/gary/.puma-dev
* Domains: dev
* DNS Server port: 9253
* HTTP Server port: inherited from launchd
* HTTPS Server port: inherited from launchd
! Puma dev listening on http and https

Without being able to see the logging output it's not usable for me, which sucks because this seems rather nice.

Edit: turnning on debug mode shows minimal logging. Still haven't found how to enable full development logging.

kobaltz PRO said over 1 year ago:

You should be able to tail the development logs. You should be able to go into your app directory and tail the logs

tail -f log/development.log

After you run the puma dev install, it should not stay in your terminal, it should redirect you back to the command prompt.

blimey85 said over 1 year ago:

Well I'll be damned. That makes perfect sense. The other log file shows the puma-dev specific stuff and the stuff I need is where you indicated. That's perfect. Thanks for the help! I'm learning a lot from your great videos.

ramonrails said over 1 year ago:

I added a small script to manage puma-dev easily. Basically all scripts suggested above, in a bash script.

Here is the gist https://gist.github.com/ramonrails/d7056dd8af8c583f56493903fefbdb0c

Thank you.

PS: Nice video series. Keep going. Open source community is great! I hope my tiny contribution helps.

Navid Shafie said 23 days ago:

Thanks @kobaltz Great series. I have a issue here. I've done everything right. I've double/triple checked everything. When I run pumad, I get the message promted as web application can be accessible in http://app-name.test and when I run sudo puma-dev -setup I get: Changing '/etc/resolver/test' to be owned by UserName. So when I get the message that application can be viewed in http://app-name.test or https://app-name.test, when I go there in my browser, its loading for a minute or so and then I get error: didn't find IP-address for app-name.test. any help is appreciated and thanks in advance!

kobaltz PRO said 23 days ago:

Try rebooting. also you can tail -f ~/Library/Log/puma-dev.log to see what the bootup errors are

Navid Shafie said 23 days ago:

Thanks for your reply @kolbaltz, first in the app directory I ran rm ~/.puma-dev/"$(basename pwd)" to remove it from puma-dev, so when I go to ~/.puma-dev I can't see any folders and then I ran pkill -USR1 puma-dev to kill everything and than I ran pumad to start it again, but same issue.

Not sure what I did wrong at this point :/

Btw when I run which puma-dev I get this: /usr/local/bin/puma-dev

Im in rails 5.1

full message when I ran pumad:
* Use '/usr/local/Cellar/puma-dev/0.12/bin/puma-dev' as the location of puma-dev
* Installed puma-dev on ports: http 80, https 443
Your app should be available at http://appname.test and https://appname.test now!

Navid Shafie said 23 days ago:

I ran tail -f ~/library/Logs/puma-dev.log and this is the output:
* HTTPS Server port: inherited from launchd
! Puma dev listening on http and https
and bunch of
2018/12/28 20:25:21 Error listening: accept tcp 0.0.0.0:0: accept: invalid argument
* Directory for apps: /Users/UserName/.puma-dev
* Domains: test
* DNS Server port: 9253
* HTTP Server port: inherited from launchd
* HTTPS Server port: inherited from launchd
! Puma dev listening on http and https
2018/12/28 20:25:31 Error listening: accept tcp 0.0.0.0:0: accept: invalid argument

Navid Shafie said 22 days ago:

[SOLVED] For future reference for others if they had same issue as me. My problem was that I had programs running on port 80, so I ran ** lsof -t -i :80** and saw the programs running there, after that I ran ** lsof -t -i :81** (or lsof -t -i :YOUR-PORT) to check if anything running there and it wasn't so I did puma-dev -install -install-port 81 and that solved my issue.

Another issue some Mac (chrome) user can face is the certificate issue. What I did was to drag the certificate to my desktop and than drag it to my keychain and allow everything, quite and restart chrome and my problem was solved.

Thanks for great series @kobaltz

Login to Comment