Anything as easy as 'Amber Deploy' for Phoenix?

deployment
Tags: #<Tag:0x00007f1142dc07f8>

#1

Hi everyone!

Today I watched a video on youtube, which used Amber Deploy to deploy an Amber (Crystal) app to DigitalOcean.
Following is the video.

Is there something as easy as that for Phoenix?

Thank You!


#2

I deploy to Heroku, and it’s a lot easier than what the video shows. I just merge my code to my master branch on Github, and it automatically deploys. If I wanted, I could make it manual, deploying with the one-liner:

git push heroku master

I even configure my tests to run automatically when I push to GitHub - and Heroku will wait for them to pass before pulling the commit and re-deploying it.


#3

Didn’t watch the video but agree with the above… Heroku’s a pretty darn easy deployment. There are other reasons not to use it (daily reboots, lack of private networking between dynos) but deployment isn’t one of them.


#4

Nanobox is a pretty easy deploy, and runs on your own boxes like DO/Linode.

nanobox deploy dry-run

Dry-run will let you test your deploy as it would be on production (container / settings wise)

nanobox deploy

Will perform the deploy.

Free to deploy and cheap ($25/m) once you need to scale. Link to pricing.


#5

I had a lot of trouble getting nanobox to work even in a dry-run scenario earlier in the fall. I know there were some issues around the docker images they pulled from that were causing them a lot of headaches. Are those pretty much resolved at this point? I remember seeing some announcement around the need to support custom images that gave me the impression there were still some finicky parts.


#6

I’ve been deploying since ~October with no issues, and yes they did have issues in fall but they seem to be resolved as far as I can see (YMMV).


#7

Another option is to go the Docker + Digital Ocean route, which is what’s happening in the video. I’ve got a development-oriented Docker configuration that can be adapted for production. Then you could deploy on Digital Ocean or any number of other places.


#8

There is also Gigalixir. :slight_smile:


#9

It might be more expensive being a PaaS, like heroku. I asked the question, because I was looking for some solution based on DO or Linode etc.


#10

Founder of gigalixir here in case anyone has any questions. I’m also happy to give out free credits if the free tier isn’t sufficient for evaluation.


#11

I think there is ongoing work on a tool that DockYard is funding


#12

Here is the post about that tool. I wish it completes soon!


#13

There is also a new Google app engine deploy package, supposed to be badass.


#14

GAE blocks websockets, and I couldn’t get the channels LongPoll transport working either. So not ready for Phoenix apps just yet.


#15

Unfortunately Gigalixir is intentionally crippled/prevented from being run on Windows, despite having been written in Python.


#16

Uh what? Gigalixir runs on Google’s Cloud Infrastructure… o.O


#17

It crashes on login specifically due to platform detection error:

  File "d:\lib\python\python36-32\lib\site-packages\gigalixir\__init__.py", line 78, in cli
    raise Exception("Unknown platform: %s" % PLATFORM)
Exception: Unknown platform: b'mingw64_nt-10.0'

The frustrating part is that I have a fully working dev setup (for VS C++, Python, JS and Elixir) as well as git bash on my machine. It’s truly sad given how well the Python ecosystem is supported on Windows.

Many other tools I have can work with things on Google’s Cloud Infrastructure… this isn’t really their issue. It’s Gigalixir.


#18

Oh you are talking about on the client side! Yeah no clue there, submit a PR? :slight_smile:


#19

I just installed Nanobox and deployed to Digital Ocean instead :grinning:


#20

I hear digital ocean is pretty good, you should document your overall results and how it works! :slight_smile:

Also, do websockets work? That seems to be the big thing of many providers is no support for websockets, so I’m curious if digital ocean does?

Also, what is nanobox? ^.^;