eDeliver
eDeliver automates the deployment of Elixir applications. Behind the scenes it uses exrm to package a release, and then uses SSH tunnels to execute remote commands.
Install it in your Phoenix project by adding it to both deps and applications. It should be the last item in your applications list.
mix.exs
Compile the new dependency.
mix do deps.get, compile
eDeliver requires a configuration file. This config tells it where the build and production/staging servers are, and can be configured further for special needs. For example, at the bottom of this config is a hook to symlink the secret configs you created on the build server into the project before building.
Create an eDeliver config (replace "example" with your project name, replace the server addresses with your own addresses or IPs).
Important
Up until now this guide assumes you only have one app server. Assuming that's all you have, put the same server in STAGING_HOSTS and PRODUCTION_HOSTS.
eDeliver will create a releases directory to store your packaged app. These can be quite large. Add this to your gitignore.
echo ".deliver/releases/" >> .gitignore