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:

  1. mix deploy.setup, setup a deployment environment for the current mix application.
  2. mix deploy.service, run exrm application script on remote (eg: mix deploy.service start).
  3. mix deploy.mix, run a Mix task on remote (eg: mix deploy.mix ecto.migrate).
  4. 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.

config :dex, DeployManager,
  server: "your.server.com",
  username: "your_username",
  deploy_to: "/var/www/your_app",
  link_files: ["config/prod.secret.exs", ".env"]