Regarding documentation, those concerns aren’t solved right now (it is too soon) but I believe it will be solved in the short term as, by being part of core, more people will use it, battle test it, document it, write guides, etc. For example, [latest Ecto ships with functions(https://github.com/elixir-ecto/ecto_sql/pull/113) that make running Ecto tasks inside a release very straightforward]. Phoenix guides will also be updated to cover it.
Phoenix will ship with guides for this (it also does for distillery though).
There is a well-documented path for this in Elixir releases (TL;DR - there is a
config/releases.exs that runs on release boot).
Custom code is still necessary for Elixir but you don’t need shell scripts. Only a module with functions you will invoke. See the Ecto link above and the official guides. The Hex migration (which is a Phoenix app) covered this too: http://blog.plataformatec.com.br/2019/05/updating-hex-pm-to-use-elixir-releases/
Same as above other environments variables: just put it in
config/releases.exs. In fact, for Phoenix v1.4 projects, getting it to work is a matter of renaming