Skip to content

Commit

Permalink
Updated changelog and README
Browse files Browse the repository at this point in the history
  • Loading branch information
thiagoesteves committed Oct 31, 2024
1 parent ddb0b85 commit 745a920
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 7 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

### Enhancements
* [[`PR-77`](https://github.com/thiagoesteves/deployex/pull/77)] Adding Erlang support
* [[`PR-80`](https://github.com/thiagoesteves/deployex/pull/80)] Adding Erlang hot upgrade support


## 0.3.0-rc21 (2024-10-23)
Expand Down
15 changes: 9 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
![Development](https://img.shields.io/badge/STATUS-Development_v0.3.0-blue) [![Build Status](https://github.com/thiagoesteves/deployex/workflows/Deployex%20CI/badge.svg)](https://github.com/thiagoesteves/deployex/actions/workflows/pr-ci.yml)

DeployEx is a lightweight tool designed for managing deployments in Beam applications (Elixir, Gleam and Erlang) without relying on additional deployment tools like Docker or Kubernetes. Its primary goal is to utilize the release package for executing full deployments or hot-upgrades, depending on the package's content, while leveraging OTP distribution for monitoring and data extraction.
DeployEx is a lightweight tool designed for managing deployments for Beam applications (Elixir, Gleam and Erlang) without relying on additional deployment tools like Docker or Kubernetes. Its primary goal is to utilize the release package for executing full deployments or hot-upgrades, depending on the package's content, while leveraging OTP distribution for monitoring and data extraction.

DeployEx acts as a central deployment runner, gathering crucial deployment data such as the current version and release package contents. The content of the release package enables it to run for a full deployment or a hot-upgrade. Meanwhile, on the development front, your CI/CD pipeline takes charge of crafting and updating packages for the target release. This integration ensures that DeployEx is always equipped with the latest packages, ready to facilitate deployments.

Expand All @@ -21,13 +21,15 @@ Upon deployment, the following dashboard becomes available, offering access to l

## 🔉 Features

* Monitors multiple Elixir/Gleam application instances and automatically restarts them if they crash for any reason.
* Monitors multiple Beam application instances (Elixir/Erlang/Gleam) and automatically restarts them if they crash for any reason.
* Includes a backoff delay restart mechanism to prevent excessive restarts.
* Performs full deployments based solely on the release files generated by:
- `mix release` for Elixir.
- `gleam export` for Gleam.
- `rebar3 as prod tar` for Elixir.
* Supports hot code reloading for Elixir applications using the [Jellyfish](https://github.com/thiagoesteves/jellyfish) library.
- `rebar3 as prod tar` for Erlang.
* Supports hot code reloading for:
- Elixir applications using the [Jellyfish](https://github.com/thiagoesteves/jellyfish) library.
- Erlang applications using the [rebar3_appup_plugin](https://github.com/lrascao/rebar3_appup_plugin) plugin.
* Supports the following cloud providers:
- Amazon Web Services (AWS)
- Google Cloud Provisioning (GCP)
Expand All @@ -38,7 +40,7 @@ Upon deployment, the following dashboard becomes available, offering access to l
* Provides the ability to run pre-commans prior deployments for Database migrations or any other eval command.
* Provides a friendly UI that only authenticated users can access.
* Allows setting a previously configured version in the UI, enabling DeployEx to enforce deployment of a specific version.
* Supports individual application restarts via the UI.
* Supports individual application restarts via the UI, including DeployEx itself.
* Allows access to current log files (stdout and stderr) for both monitored apps and DeployEx.
* Provides access to the shell:
- IEx shell for monitored Elixir apps and DeployEx.
Expand All @@ -50,6 +52,7 @@ Upon deployment, the following dashboard becomes available, offering access to l
- Last deployment status
- Number of crash restarts
- Number of forced restarts
* And much more to come ...

> [!NOTE]
> All examples and deployments in this project use NGINX as a reverse proxy and load balancer. However, DeployEx does not depend on NGINX; it is used here purely for convenience.
Expand All @@ -60,7 +63,7 @@ Upon deployment, the following dashboard becomes available, offering access to l

- [X] 🚧 Add Gleam support.
- [X] 🚧 Add Erlang support.
- [ ] 🚧 Add Erlang hot upgrade support.
- [X] 🚧 Add Erlang hot upgrade support.

### Version 0.4.0

Expand Down
2 changes: 1 addition & 1 deletion lib/deployex/deployex.ex
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
defmodule Deployex do
@moduledoc """
DeployEx is a lightweight tool designed for managing deployments in Beam
DeployEx is a lightweight tool designed for managing deployments for Beam
applications (Elixir, Gleam and Erlang) without relying on additional
deployment tools like Docker or Kubernetes. Its primary goal is to utilize
the release package for executing full deployments or hot-upgrades, depending
Expand Down

0 comments on commit 745a920

Please sign in to comment.