Do I need Git in order to use edeliver?

I am trying to deploy a Phoenix application to a VPS using edeliver with a relx.config. However, I am not using Git. Instead I am using fossil (fossil-scm.org). In the README for edeliver (in the install section), it states that git is at least required on the build server, which I can get around by building on localhost, which is the same system/architecture as the VPS (Arch Linux, x86_64).

Does edeliver use Git to deploy the finished release to production?

If edeliver does require Git, what other options do I have? It seemed for automated deployment most other tools ultimately rely on edeliver or edeliver and Distillery and the Distillery repository on GitHub clearly says it is deprecated and most of the functionality is now a part of mix releases.

Could I simply create a mix release and copy and paste the release to production? I do not require hot code reloading or similar features.

Hey, @mcode10 :wave: welcome to our community :slightly_smiling_face:

Could I simply create a mix release and copy and paste the release to production?

Yes, you definitely can. Once you build release with mix release (don’t forget to run it with MIX_ENV=prod env var) you’ll get the built release in ./_build/prod just deliver it somehow to your VPS and run there with _build/prod/rel/app_name/bin/app_name start

More about mix release — Mix v1.15.7

1 Like

Make sure you understand the requirements for being able to do so:

https://hexdocs.pm/mix/Mix.Tasks.Release.html#module-requirements

2 Likes

Thank you for the help with mix releases and for the welcome :slightly_smiling_face: . I will certainly try that now, and post here about how that works out. For now, I will not mark a solution in case anyone can answer specifically about Git and edeliver.

I use a Github action to do my deploys, it builds the release, copies it to the server and restarts the app.
I wrote a blog article about it some time ago, maybe that can help too. I know you don’t use git and most likely neither github. But the flow remains.

I have been trying to get mix releases working and I am struggling with Postgrex currently, although thank you to @Hermanverschooten for the blog post. It errors out with the complaint that ssl is not enabled on my postgresql server, so the postgrex process crashes continually.

I have tried all of the ways I know to configure it: Adding the ssl: false option to config/runtime.exs and config/prod.exs (in the $APP.Repo config) and by having the database_url option include the “?ssl=false” option as well.

Is there some configuration that I’m missing to tell Postgrex to ignore ssl status? I want to avoid complicating the setup further by adding the complexitites of managing a certificate for a purely localhost interaction.