DarthSim / overmind

Process manager for Procfile-based applications and tmux
MIT License
2.84k stars 79 forks source link

Optionally run processes on localhost or test TLD #48

Open samneely opened 5 years ago

samneely commented 5 years ago

I really love using Overmind for running my Procfiles and being able to use binding.pry to have nice debugging sessions! Thanks for that!

I have another problem I'm dealing with right now where I need to run a "suite" of Rails apps and services. The suite of apps and services also expect everything to run on the .localhost TLD, which creates some problems for me while I'm trying to use Overmind.

Do you have any plans of adding support for a use-case like this? From a user perspective, it seems like having an environment variable like OVERMIND_TLD could determine whether to use .test or .localhost, and not setting that environment variable means that Overmind will just default to the usual localhost:5000.

What do you think? Is there some other way to do this without manually editing my /etc/hosts file until a feature like this could become a reality?

DarthSim commented 5 years ago

Overmind doesn't deal with domains at all. If you need your services to be accessible on some domain, you need to specify this explicitly in /etc/hosts. You also would probably need to set up some proxy like nginx to make your services accessible on 80 port.

Did you use a tool that had been solving this for you?

samneely commented 5 years ago

I was previously using invoker to run these services and access them at app.localhost, but I haven't had as much success using pry/remote-pry with invoker as I have with Overmind.

I was a little worried about needing to manual edit and maintain /etc/hosts and an nginx proxy. Do you know of any other alternatives if this kind of feature won't be added to Overmind?

gee-forr commented 5 years ago

Hi @samneely - sounds like you could use puma-dev? We have something like this in our Procfile's.

app-1:     mkdir -p ~/.puma-dev/suite && echo 5000 > ~/.puma-dev/suite/app-1 && cd app-1 && bundle exec rails s --port 5000
app-2:     mkdir -p ~/.puma-dev/suite && echo 5005 > ~/.puma-dev/suite/app-2 && cd app-2 && bundle exec rails s --port 5005

And then those apps are available on actual resolvable names on a local domain of your choosing as per how you will have configured puma-dev.

Puma-dev is here: https://github.com/puma/puma-dev