Host Phoenix on Windows Server

I’ve done quite a bit of googling and I can find plenty on deploying to most operating systems other than Windows, does anyone have any experience of this?

Thanks in advance,

I happen to do exactly this (for now, we are finally getting a new RedHat server soon though, whoo!).

I build builds with exrm (I hear distillery works on windows now but untested yet, I’m in a crunch too much to test right now) and mount them as a windows process. What do you need help with?

1 Like

You can make releases with, it will generate a .bat file than you need to run (when generate it it shows the command to run as well) and thats it just open the port you have selected to the release, in the firewall (windows server, and your service provider (GCP, AWS etc…) if avalaible)

To generate the release just follow this guide to configure
and run mix release --env=prod instead of MIX_ENV=prod mix release --env=prod

In windows open the console and run _build/prod/rel/your_app/bin/your_app.bat foreground inside the release folder

I have tested on GCP (also I code on windows) sometime ago and works very well (with ssl too), you dont need iis or things like those

Also, don’t try hosting it behind IIS (as I have to do), IIS adds an overhead of ~200ms to every communication because it is trying to cache things internally and such. I hear newer versions are better at that, but on IIS7 there is no choice.

With IIS 8+ they have the HttpPlatformHandler module which makes the overhead much lower while still getting the IIS benefits.

At least that’s what they say, I’ve never actually used it.

Ah yep, that is it! I forgot the name. :slight_smile:

On IIS7 you are sunk though… ^.^;

You just helped a lot, I’ve been searching as I sad, but had not found a direction to proceed, will check out exrm, to see how I get on!


Guys, I appreciate the input will check them both out and see how it goes.

Thanks again.

OK, I’m getting somewhere,

←[1m←[36m==> Assembling release..←[0m
←[1m←[36m==> Building release static_blog:1.0.0 using environment prod←[0m
←[1m←[36m==> Including ERTS 8.0 from c:/Program Files/erl8.0/erts-8.0←[0m
←[1m←[36m==> Packaging release..←[0m
←[1m←[32m==> Release successfully built!
    You can run it in one of the following ways:
      Interactive: _build/prod/rel/static_blog/bin/static_blog.bat console
      Foreground: _build/prod/rel/static_blog/bin/static_blog.bat foreground
      Daemon: _build/prod/rel/static_blog/bin/static_blog.bat start←[0m

However when I run using the specified command (fixing the slashes),

_build\prod\rel\static_blog\bin\static_blog.bat console

I get:
The system cannot find the batch label specified - pre_start

1 Like

Here is the solution: