Simple release deliverer for Elixir.
Dicon gets most of the information needed to deploy and manage releases from
the configuration of the :dicon application. For example, in your
application's configuration (my_app/config/config.exs):
config :dicon,
target_dir: "/home/deploy/my_app"Configuration options
:otp_app- an atom that specifies the name of the application being deployed.:target_dir- a binary that specifies the directory where the release tarball will be extracted into.:hosts- a list ofhost_nameatoms that specifies which servers the release should be deployed to. Each host should be then configured under the:diconapplication. See the "Configuration for hosts" section below.authoritys should be "authorities" according to this RFC, i.e., binaries with an optional userinfo followed by@, an hostname, and an optional port preceded by:. For example,me:mypassword@example.com:22.:executor- a module that will be used to execute commands on servers. By default, it'sDicon.SecureShell.
Configuration for hosts
Each host listed in the :hosts configuration option mentioned above can be
configured under the :dicon application. For example, take this configuration:
config :dicon,
hosts: [:app01, :app02]Now the :app01 and :app02 hosts can be configured like this:
config :dicon, :app01,
authority: "myuser@app01.example.net"These are the supported host configuration options:
:authority- (binary) an "authority" according to this RFC, that is, a binary with an optional userinfo followed by@, an hostname, and an optional port preceded by:. For example,"me:mypassword@example.net:22".:os_env- (map) a map of environment variable name (as a binary) to value (as a binary). These environment variables will be used when running commands on the target host.:apps_env- (keyword list) a keyword list of application to configuration that can be used to override the configuration for some applications on the target host.
Configuration for executors
Each executor can be configured differently; to configure an executor, specify
the configuration for that executor under the configuration for the :dicon
application.
config :dicon, Dicon.SecureShell,
dir: "..."