How to start Phoenix server when you are already in iex?

1.6k Views Asked by At

I know we can launch iex -S mix phoenix.server. But say I am already in iex -S mix. What can I do to get the server started?

Thank you.

3

There are 3 best solutions below

1
On BEST ANSWER

It's maybe not a great way of doing it, but I'm imagining you're only doing this in dev anyway. But one way of doing it would be to set the same config option mix phx.server sets then restarting your endpoint (this example stops it and lets the app supervisor restart it).

iex> Application.put_env(:phoenix, :serve_endpoints, true)
:ok
iex> GenServer.stop(MyAppWeb.Endpoint)
:ok
[info] Running MyAppWeb.Endpoint with cowboy 2.9.0 at 0.0.0.0:4000 (http)
1
On

I'm sorry to tell you that this cannot be done.

See this discussion for reference: https://elixirforum.com/t/mix-task-run-deps-compile-dep-name-force-not-compiling/12114/4

I quote:

Mix is not intended to be called from iex or inside of your application. The primary interface is the CLI and because of this tasks are allowed to only run once.

1
On

Just start running as iex -S mix phx.server, then both iex and your application will run together