Elixir Deploy Manager
A set of Mix tasks to deploy your Elixir Application
Usage
You can deploy your Elixir Application with the deploy task:
mix deploy
This task deploys the complete release for you. It will upload your project with rsync, download Elixir and NodeJS dependencies, compile Elixir & JavaScript source files, then build a release with exrm.
For your convenience, there're also some more tasks you can work with:
mix deploy.setup, setup a deployment environment for the current mix application.mix deploy.service, runexrmapplication script on remote (eg:mix deploy.service start).mix deploy.mix, run a Mix task on remote (eg:mix deploy.mix ecto.migrate).mix deploy.clean, Ccean the deployment environment for the current mix application.
Installation
Like exrm, this project's goal is to make deployments with Elixir projects a breeze. It is composed of a mix task, and build your Elixir project with exrm, then deploy it to your server. All you have to do to get started is the following:
Add dex to your list of dependencies in mix.exs:
def application do
[applications: [:dex]]
end
def deps do
[{:dex, "~> x.x.x"}]
end
There are a number of options you can tweak to customize the way dex is used. All of the options described below should be put into your config.exs file, or prod.secret.exs if you don't want it upload to your scm.
config :dex, DeployManager,
server: "your.server.com",
username: "your_username",
deploy_to: "/var/www/your_app",
link_files: ["config/prod.secret.exs", ".env"]