lessless
Hi guys,
Since for some strange reason people are still using Edeliver I suppose we can talk about what we want it truly to be.
During 2018 two things happen that in my opinion gives us more flexibility to reshape in a more user-friendly tool:
- Distillery added appups
- Edeliver supports only Mix now
Thus now it’s possible to focus on the core deployment tasks:
- Building release
- Storing it somewhere
- Copying it to a designated servers
- Updating/upgrading an app
From this perspective there are two questions that should be solved:
- What are alternatives to bash scripting?
- How we decouple environments and deployment targets?
As you can now Edeliver supports two environments - staging and production. That’s a very basic scenario. Here is a latest example where it simply doesn’t fit Add support for multiple production environments by meox · Pull Request #301 · edeliver/edeliver · GitHub
I guess what we really want is to specify an environment and where (which hosts group) we want release to be deployed. Maybe also where it should be built. - What deployment guarantees do we want to achieve?
This is mostly about deployment to a multiple machines. What should happen if deploy fails? Do we want a retry or fallback mechanism for it? This might not be something of an immediate need but keeping it mind can be very useful since it can affect library design.
Please notice, that I’m not talking about deprecating Edeliver due to the respect to the amount of work that was invested into it and since it’s still being used despite being in decay state.
Let’s get a good discussion folks ![]()
Trending in Announcing
Hey everyone!
Req is an HTTP client for Elixir that I’ve been working on for quite some time. There is already a lot of HTTP clients out...
New
Samly can be used to enable SAML 2.0 Single Sign On in a Plug/Phoenix application.
This library uses Erlang esaml to provide
plug enabl...
New
Flop is an Elixir library that applies filtering, ordering and pagination parameters to your Ecto queries.
offset-based pagination with...
New
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
Hobbes is a low-level distributed database for the Elixir programming language.
Hobbes provides a simple, safe, and scalable storage lay...
New
Hi there! We created Gust: A task orchestrator inspired by Airflow.
For those who have never heard about Aiflow, it’s a Python-based wor...
New
Hi all!
I want to present a small library which provides a mix task for generating an Entity-Relationship Diagram for Ecto schemas.
You...
New
Other Trending Topics
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
I am seeing a lot of aplications of Argumentum ad Vericundiam in software discussions. They do link some piece of writing and point us to...
New
This showed up on my feed.. anyone heard of it? Just hype?
Ox Alpha is a reasoning model designed for coding, sustained ag...
New
It’s not that it’s vocabulary is too advanced. It’s something worse.
I get lost trying to follow even a paragraph written by Claude. It’...
New
Today we’re releasing Oban for Python. Not an Oban client in Python. Not a pythonx wrapper embedded in Elixir. Nope, it’s a fully operati...
New
@hugobarauna, Dr. Dimitrios Koutmos (my brother) and I (Alex Koutmos) have been hard at work on writing a book on how you can use Elixir ...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #blog-post
- #elixirconf-us
- #elixir-ls
- #ai
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #hex
- #security
- #metaprogramming











Showing Posts 1 to 10- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
romul
Ruby, Python, Elixir itself.. Everything is better than bash scripts
OvermindDL1
Not always, bash scripts are succinct, readable, and load fast. ^.^
lessless
I guess we can rewrite most of the BASH scripts through the Mix Tasks
sanswork
I feel like every reply to this post could be split off to a new thread debating bash.
I am using edeliver at the moment and honestly it just works and I don’t really have any complaints which is why I continue to use it. I don’t use upgrades always releases. Actually only complaint is the verbosity of the commands required to do a release.
mix edeliver build release && mix edeliver deploy release to production && mix edeliver restart production && mix edeliver migrate production
That is kind of a drag and I tend to just create a one liner shell script in each new project called like deploy with that in it.
Dream changes/questions(all are low priority):
Failed deploys should rollback in my opinion.
rodrigues
Agree with @sanswork. It just works, and its setup is simple. I don’t use a lot of it, but it helps quite a bit. I wrap edeliver steps together with our own in one
mix APP.deploytask.These are not necessarily things that really need to become part of edeliver, but I think some of it could simplify deployment:
lessless
I think
updateshould do the job.Are you guys doing a single server deploy?
rodrigues
@lessless thanks, nice, didn’t know update did that
We have apps with single or multiple hosts per env, building and deploying is called locally atm…
sanswork
Hadn’t noticed that before thanks.
Only single server on any of my projects at the moment. Mostly deployed from local but I’ve started migrating over to using circleci.
lessless
Thanks for your replies guys, it’s great that it works as a turn key solution for you.
sanswork
No worries, thanks for your work on it.