thiagoesteves

thiagoesteves

DeployEx - A lightweight tool designed for managing deployments in Elixir applications

Hey There :wave:

Since 2021 I’ve been working on an easy way to deploy Elixir applications and after a few years and many approaches, I am proud to announce that DeployEx is available. It is a deployment tool that allows your project to extract the best of the Beam World using the mix release package to execute full deployments and/or hot-upgrades, depending on the package’s content, while leveraging OTP distribution for monitoring and data extraction, and much more. It also gives access to logs, iex terminal, and others without Cloud management.

DeployEx is currently using Phoenix Liveview for presenting settings and configuration on the UI side and erlexec to control and manage deployments.

I would love to hear feedback and/or ideas for features to add to this project.

It is still in the initial phase, but many more will come soon.

Check it out!

Most Liked

thiagoesteves

thiagoesteves

:rocket: DeployEx release - 0.5.1 - :rocket:

Exciting updates in the latest DeployEx release! If you haven’t been following along, here’s what you’re missing:
:fire: What’s New:
:right_arrow: Multi-Application Management: DeployEx now handles multiple BEAM applications simultaneously across different languages - mix and match Elixir, Erlang, and Gleam applications in a single distributed cluster.
:right_arrow: Advanced Monitoring: Built-in monitoring for host memory, application atoms, processes, and ports with configurable thresholds and automated actions - all managed through simple YAML configuration.
:right_arrow: BEAM-Native Features: Discover powerful capabilities you might not know the BEAM ecosystem offers.
:light_bulb: Why This Matters:
:play_button: Deploy applications without containers
:play_button: Leverage hot upgrades for zero-downtime deployments
:play_button: Skip the Kubernetes complexity
:play_button: Access comprehensive logs and metrics without cloud vendor lock-in
:play_button: Reduce infrastructure costs significantly
Ready to show your DevOps team a simpler way to deploy and manage applications?
Share this with your colleagues and explore what container-free, cloud-independent deployment looks like (you may love it).

:desktop_computer: DeployEx (0.5.1)
repo: GitHub - thiagoesteves/deployex: The ideal project to supervise your Elixir/Erlang/Gleam application

:desktop_computer: Jellyfish (0.2.2)
repo: GitHub - thiagoesteves/jellyfish: This library facilitates the creation and management of appup files and releases for Elixir applications, enabling seamless hot upgrades (hot code reloading)

:desktop_computer: Observer Web (0.1.10)
repo: GitHub - thiagoesteves/observer_web: Phoenix Liveview Dashboard for Observability including Ports and Processes details, Tracing with erlang debugger, Beam VM metrics and much more

thiagoesteves

thiagoesteves

:rocket: DeployEx v0.3.0 is Live! :rocket:

I’m excited to announce the launch of DeployEx v0.3.0! This release introduces amazing new features, including enhanced observability, tracing, logging, and much more! :tada:

Check out the full release notes to discover all the exciting updates since our last version:

DeployEx on GitHub

thiagoesteves

thiagoesteves

:rocket: DeployEx release - 0.4.0 - :rocket:

This release introduces easier configuration management via a YAML file. After installation, updating settings—such as replicas, environment variables, and more—is as simple as editing the file and restarting DeployEx. Also, starting with this release, DeployEx will include builds compiled for Ubuntu 24.04, supporting both OTP 26 and OTP 27.
Stay tuned—exciting features are on the way, including support for running multiple Beam applications on the same node, all connected.

Repo: GitHub - thiagoesteves/deployex: The ideal project to supervise your Elixir/Erlang/Gleam application
Releases Changelog: Releases · thiagoesteves/deployex · GitHub

thiagoesteves

thiagoesteves

Hi @cmo , thanks for taking a look and by the feedback. Regarding:

  • Cloud support: The current implementation was built on top of AWS+terraform, but I have already set up some changes to support multiple clouds, the next one the list is GCP. The changes required for this feature is to allow the Release adapter to support GCP storage instead S3 and for the secrets, to support GCP secrets instead aws secrets.
  • NGINX: You are right, I didn’t mentioned nginx in the docs of DeployEx, but the project doesn’t have any dependency for the reverse proxy, it can be any reverse proxy, up to the configuration. I have an example of setting up DeployEx+NGINX in the Calori project if you want to check. But in any case, I will be improving the documentation soon.

KR
Thiago Esteves

thiagoesteves

thiagoesteves

New DeployEx release - 0.3.2 - :rocket:

Check out the full release notes. It has moved all OTP features (including metrics) to Observer Web and embedded it using iFrame.

DeployEx on GitHub

Where Next?

Popular in Libraries Top

marcuslankenau
I feel kind of stuck with the absence of a proper xml library for Elixir. Currently I use SweetXML which was ok for me more or less to pa...
New
deadtrickster
I’ve just released stable versions of my Prometheus Elixir libs: Elixir client [docs]; Ecto collector [docs]; Plugs instrumenter/Export...
New
archan937
It is a well-know topic within the Elixir community: “To mock or not to mock? :)” Every alchemist probably has his / her own opinion con...
New
dbern
I’m excited to announce that TaxJar has developed and open-sourced DateTimeParser. We developed it because we found a need to parse user ...
New
riverrun
I’ve just released version 3 of Comeonin, a password hashing library. The following small changes have been made: changes to the NIF c...
New
MRdotB
I needed to reuse React components from my Chrome extension in my Phoenix/LiveView backend. I noticed that for Svelte/Vue, there are live...
New
wmnnd
Hi there, for my project DBLSQD, I needed a file storage solution that is a bit more flexible than Arc. Because I thought others might f...
New
bryanjos
Hi, I wanted share a small library we at Revelry Labs made for rendering react components from the server side. There are instructions fo...
New
gjaldon
As the title states, EctoEnum has just been updated after some time of hardly any activity in the repo. Here’s the latest release: https:...
New
mischov
import Meeseeks.CSS html = HTTPoison.get!("https://news.ycombinator.com/").body for story <- Meeseeks.all(html, css("tr.athing")) do...
New

Other popular topics Top

senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New
yawaramin
In the Dialyzer docs ( http://erlang.org/doc/man/dialyzer.html#requesting-or-suppressing-warnings-in-source-files ), there is a way to tu...
New
jerry
Good day to you all. I have been struggling to get a query involving like and ilike to work. Can anyone assist me on this, please? pro...
New
axelson
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!) This post collects co...
239 45766 226
New
vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
fayddelight
I tried installing elixir 1.11.2 erlang 23.3.4 via asdf in my zsh shell. Enabled the versions locally and globally. When I list them ...
New
baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New

Sub Categories:

We're in Beta

About us Mission Statement