kovpack
kovpack

Reputation: 5045

Start Phoenix app with cowboy server on different port

Is it possible to start locally a few Phoenix apps on different ports from the console using some command like mix phoenix.server --port=4001? This one does not work, of course, but, maybe, there is similar way.

Upvotes: 31

Views: 10933

Answers (3)

steakunderscore
steakunderscore

Reputation: 1116

Edit your config/dev.exs and change the Endpoint http port like the following:

config :my_app, MyApp.Endpoint,
  http: [port: System.get_env("PORT") || 4000],

This allows the port to be set, or left as the default 4000:

PORT=4002 mix phoenix.server # to run on port 4002
mix phoenix.server # to run on port 4000

This answer was described by @chris-mccord on github.

Upvotes: 41

Jason Rueckert
Jason Rueckert

Reputation: 681

This was needed for me as a solution since my issue was that I needed to let C9.io dictate the port, for me, adding this code to the dev.exs file solved the problem:

config :my_app, MyApp.Endpoint,
  http: [port: {:system, "PORT"}],

and then in the Terminal, I just needed to run the server as normal:

mix phoenix.server

Upvotes: 2

Chris McCord
Chris McCord

Reputation: 8120

Yep! Make sure you set the mix config to reference the env port, i.e.

config :my_app, MyApp.Endpoint,
  http: [port: {:system, "PORT"}],

Then from the terminal:

$ PORT=4001 mix phoenix.server
$ PORT=4002 mix phoenix.server
$ PORT=4003 mix phoenix.server

Upvotes: 47

Related Questions