Jellyfish is a library designed to streamline the management of appup and release files, enabling hot-upgrades for Elixir applications. Born from the integration of concepts and functionalities from three influential repositories, Jellyfish empowers developers with efficient tools for maintaining and deploying their Elixir projects with confidence.
- Distillery - While currently deprecated, its appup generation remains a valuable asset within Jellyfish, ensuring compatibility and reliability in managing upgrades.
- Forecastle - Offering robust capabilities for release package management.
- Relx - Providing crucial insights into storing, unpacking, and executing hot upgrades using release files
If available in Hex, the package can be installed
by adding jellyfish
to your list of dependencies in mix.exs
:
def deps do
[
{:jellyfish, "~> 0.1.2"}
]
end
You also need to add the following lines in the mix project
def project do
[
...
compilers: Mix.compilers() ++ [:gen_appup, :appup],
releases: [
your_app_name: [
steps: [:assemble, &Jellyfish.Releases.Copy.relfile/1, :tar]
]
],
...
]
end
Once the mix release file is generated, it will contain all the appup/release files to execute a hot-upgrade or full deployment.
Explore Deployex, an Elixir application showcasing Jellyfish's capabilities in deployment with hot-upgrades.
Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/jellyfish.