Akd v0.3.0 Akd View Source

A framework that makes elixir deployments a breeze. It's highly configurable, yet easy to set up.

Although Akd is mainly written for deploying elixir apps, it can be used for any server automation process or deploying non-elixir apps.

Akd comes with DSL which make writing automated deployments much simpler, and mix tasks with generators which allow the use of that DSL easier.

Akd, by default, has multiple phases for deploying an application:

  • fetch: This is where akd attempts to fetch the source-code which corresponds to a release (deployed app). This can be done by using git, svn or just scp.

  • init: In this phase akd initializes and configures the libraries required for the rest of the deployment process. For an elixir app, it can be configuring distillery or docker.

  • build: In this phase akd produces a deployable entity. It can be a binary produced by distillery or source code itself or even a docker image.

  • publish: In this phase akd publishes/deploys the app to the desired destination. This can be done by scp, cp etc.

  • stop: In this phase akd stops a previously running instance of the app. (This is not required for zero downtime apps)

  • start: In this phase akd starts a newly deployed instance of the app.

Each of these phases accomplish what they do through Akd.Hook and Akd.Dsl.FormHook.

Link to this section Summary

Functions

:build can be set as a runtime config in the config.exs file

:fetch can be set as a runtime config in the config.exs file

:init can be set as a runtime config in the config.exs file

:publish can be set as a runtime config in the config.exs file

:start can be set as a runtime config in the config.exs file

:stop can be set as a runtime config in the config.exs file

Link to this section Functions

:build can be set as a runtime config in the config.exs file

Examples

when no build config is set, it returns Akd.Build.Distillery

iex> Akd.build
Akd.Build.Distillery

:fetch can be set as a runtime config in the config.exs file

Examples

when no fetch config is set, it returns Akd.Fetch.Git

iex> Akd.fetch
Akd.Fetch.Git

:init can be set as a runtime config in the config.exs file

Examples

when no init config is set, it returns Akd.Init.Distillery

iex> Akd.init
Akd.Init.Distillery

:publish can be set as a runtime config in the config.exs file

Examples

when no publish config is set, it returns Akd.Publish.Distillery

iex> Akd.publish
Akd.Publish.Distillery

:start can be set as a runtime config in the config.exs file

Examples

when no start config is set, it returns Akd.Start.Distillery

iex> Akd.start
Akd.Start.Distillery

:stop can be set as a runtime config in the config.exs file

Examples

when no stop config is set, it returns Akd.Stop.Distillery

iex> Akd.stop
Akd.Stop.Distillery