Are there any free or very low cost vps solution to build Elixir app releases with distillery?

This is not really an elixir question but maybe someone can help me ?

I deployed with success my first phoenix app on a Digital Ocean VPS, just following Phoenix and Distillery docs. I find that very simple even if I spent a lot of time trying and trying again the process until all went fine. ^^

Now my concern is that each time I made a new release or rebuild one, I have to upload it from my computer to the production VPS. Currently the whole release archive is just about some 30 Mb, but that could grow in the future, plus I could deploy the same release many times.

Long story short, I’m using a slow and expensive (for me at least) mobile data for all internet mater.
So instead of building my apps releases locally, if I can do it on a free or almost free VPS host, that will be very great.

I already tested the process on a $5/month Digital Ocean VPS, but I’m searching for something even cheaper if possible. All I have to do on this VPS is to setup elixir, phoenix, npm, webpack and git.
Then periodically I will pull a project from a git repository, then compile for production and build a release that will be sent to the production VPS. All the remaining time this VPS will be inactive.

1 Like

Personally, I build everything on gitlab-ci, where I also have hosted my sources.

Currently I do SSH into the hosting server and download the release from there using curl and deploy manually that way.

But since it does not use my regular slowish internet connection (upload is capped at 1Mbit/s) but some much faster lane with 100Mbit/s (or even more?), it is currently worth the effort. Unless you stay below 2000 minutes a month across all private repos CI is even free for private repos in the free tier.

Currently I’m evaluating some tools that would check gitlab on a regular basis for new releases and deploy automatically. But until I have done that, it will take some time…

It will take me even some time to get my current set up back online, as messed up with a lot of stuff recently while experimenting around with some config management tool…


edit

You can get some insight to the gitlab side of things in a recent project of mine which I started publicly:

6 Likes

Thanks for sharing your strategy. I will give it a try.

This use case seems like a potential fit for “serverless” e.g. AWS Lambda.

1 Like

Memory and execution caps on AWS Lamba, may or may not exceed those.

2 Likes