All elixir releases, start epmd by default.
epmd is a small program that will coordinate different elixir/erlang releases. If you have an elixir app and rabbitmq running on the same network (on the same machine or different machines connected), epmd is what will enable those two services to communicate with each other (this is an oversimplification).
For every elixir release, if epmd is not found, the release will start epmd on its own. For all maintainers of pleroma and plausible, you can verify that indeed epmd is running on your machine with ps -fe | grep epmd. This hidden dependency is not ideal, this issue would like to propose to make the dependency explicit.
By default, systemd sockets (used in the epmd service) will listen on ipv6. If this is not desirable, you would need to set services.epmd.listenStream = "[127.0.0.1]:4369";. You might need to add the listenHost and epmdPort additional configurations in your service.
If this is implemented, there will be a need for a migration. Since an epmd process is currently running, before swithing to the new system you will need to kill the epmd process started by your service sudo pkill epmd.
I understand that this might be painful without bringing too much benefit.
The main advantage is that your service will play well with other elixir/erlang based services. If right now you try to enable rabbitmq for example, there will be an epmd activation failure. It's ok if you understand what that means, but that might not be the best user experience.
I leave this decision to the maintainers of each package. If you want to do the change, I am happy to make the PR and for you to test. If you would rather not, that is fine too. I just wanted to bring this to your attention.
maintainer for plausible service: @Ma27
maintianer for pleroma service: @NinjaTrappeur
@NixOS/beam might be interested or have an opinion.
All elixir releases, start epmd by default. epmd is a small program that will coordinate different elixir/erlang releases. If you have an elixir app and rabbitmq running on the same network (on the same machine or different machines connected), epmd is what will enable those two services to communicate with each other (this is an oversimplification).
For every elixir release, if epmd is not found, the release will start epmd on its own. For all maintainers of pleroma and plausible, you can verify that indeed epmd is running on your machine with
ps -fe | grep epmd
. This hidden dependency is not ideal, this issue would like to propose to make the dependency explicit.There is already an epmd service in nix. Rabbitmq for example relies on it https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/amqp/rabbitmq.nix#L146 Pleroma and plausible could do the same.
Drawback.
services.epmd.listenStream = "[127.0.0.1]:4369";
. You might need to add the listenHost and epmdPort additional configurations in your service.sudo pkill epmd
.I understand that this might be painful without bringing too much benefit. The main advantage is that your service will play well with other elixir/erlang based services. If right now you try to enable rabbitmq for example, there will be an epmd activation failure. It's ok if you understand what that means, but that might not be the best user experience.
I leave this decision to the maintainers of each package. If you want to do the change, I am happy to make the PR and for you to test. If you would rather not, that is fine too. I just wanted to bring this to your attention.
maintainer for plausible service: @Ma27 maintianer for pleroma service: @NinjaTrappeur
@NixOS/beam might be interested or have an opinion.
Notify maintainers
maintainers:
Note for maintainers
Please tag this issue in your PR.