Editing
Distillery
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Distillery == [[File:DistilleryLogo.png|thumb|right|Distillery logo|200px]] Distillery is a powerful release management tool for Elixir applications. It provides a streamlined approach to building, deploying, and managing Elixir releases. With Distillery, developers can easily package their Elixir applications and run them seamlessly on various platforms and environments. == Features == * Simplified release creation process * Built-in support for hot code swapping * Flexible configuration options * Support for multiple deployment strategies * Comprehensive release management and versioning * Cross-platform compatibility == Installation == To use Distillery, you need to include it as a dependency in your Elixir project. Add the following line to your `mix.exs` file: ```elixir defp deps do [ {:distillery, "~> 2.1", runtime: false} ] end ``` After updating the project dependencies, you can fetch and compile the new dependency by running: ``` mix deps.get mix deps.compile ``` == Usage == Distillery simplifies the release creation process by providing a set of mix tasks. These tasks enable developers to generate standalone releases of their applications with all the necessary dependencies included. Here are some key tasks offered by Distillery: * `mix release.init`: Initializes a new release configuration file. * `mix release`: Builds a release of the application. * `mix release.clean`: Deletes all generated release artifacts. * `mix release.start`: Starts a release using the generated scripts. * `mix release.remote`: Deploys a release to a remote server. == Configuration == Distillery allows developers to configure various aspects of their release. The configuration file `rel/config.exs` provides a flexible way to customize the release process. Some commonly used configuration options include: * `project`: The name and version of the project. * `release_name`: The name of the release artifact. * `include_erts`: Whether to include an Erlang Run-Time System in the release. * `vm_args`: Additional Erlang VM arguments. * `pre_start`: Actions to be taken before starting the application. * `extended_start_script`: Enables extended mode, allowing custom scripts to be executed. == Deployment Strategies == Distillery supports multiple deployment strategies, giving developers the flexibility to deploy their releases in various ways. Some deployment strategies include: * **Copy**: Simply copy the release to the target machine and run it. * **Upgrade**: Upgrades an existing release on the target machine. * **Remote**: Deploys the release to a remote server using SSH. * **Docker**: Builds a Docker container with the release and dependencies. == Case Studies == <!--- Add case studies here, illustrating how Distillery was used in production environments. --> == See Also == * [[Elixir]] - A dynamic, functional programming language built on top of the Erlang VM. * [[Phoenix]] - A web framework for Elixir that enables building robust, scalable applications. * [[Mix]] - A build tool that ships with Elixir and provides tasks for creating, compiling, and testing Elixir projects. == External Links == * [https://github.com/bitwalker/distillery Distillery on GitHub] * [https://hexdocs.pm/distillery/ Distillery Documentation]
Summary:
Please note that all contributions to Elixir Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Elixir Wiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Page
Discussion
English
Views
Read
Edit
View history
More
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Tools
What links here
Related changes
Special pages
Page information