|
1 |
| -# epmdless |
| 1 | +# Epmdless |
2 | 2 |
|
3 |
| -An OTP library |
| 3 | +If you run distributed services such like pubsubs or message brokers between datacenters with EPMD, all your nodenames and ports are exposed over the internet, and you've probably got more ports open in your firewalls than actual services running behind them. Yuck. |
4 | 4 |
|
5 |
| -### Build |
| 5 | +Don't you wish you could just decide on a port, append it to the nodename and ditch EPMD altogether? |
| 6 | + |
| 7 | +## Elixir |
| 8 | + |
| 9 | + # mix.exs |
| 10 | + {:epmdless, "> 0.0.0"} |
| 11 | + |
| 12 | + # flags (put in --erl "..." when running with iex) |
| 13 | + -pa _build/(dev|prod)/lib/epmdless/ebin \ |
| 14 | + -proto_dist epmdless_(inet|inet6)_(tcp|tls)_dist \ |
| 15 | + -no_epmd |
| 16 | + |
| 17 | +## Erlang (Hex) |
| 18 | + |
| 19 | + # rebar.config |
| 20 | + {deps, [epmdless]}. |
| 21 | + {plugins, [rebar3_hex]}. |
| 22 | + |
| 23 | + # flags |
| 24 | + -pa _build/default/lib/epmdless/ebin |
| 25 | + -proto_dist epmdless_(inet|inet6)_(tcp|tls)_dist |
| 26 | + -no_epmd |
| 27 | + |
| 28 | +## Build & Test Locally |
6 | 29 |
|
7 | 30 | $ rebar3 compile
|
| 31 | + $ epmd -kill |
| 32 | + |
| 33 | + $ erl --name [email protected]:8080 \ |
| 34 | + -pa _build/default/lib/epmdless/ebin \ |
| 35 | + -proto_dist epmdless_inet_tcp \ |
| 36 | + -no_epmd |
| 37 | + |
| 38 | + $ erl --name mynode@::1:8080 \ |
| 39 | + -pa _build/default/lib/epmdless/ebin \ |
| 40 | + -proto_dist epmdless_inet6_tcp \ |
| 41 | + -no_epmd |
| 42 | + |
| 43 | + $ erl --name [email protected]:8080 \ |
| 44 | + -pa _build/default/lib/epmdless/ebin \ |
| 45 | + -proto_dist epmdless_inet_tls \ |
| 46 | + -ssl_dist_opt server_certfile cert.pem \ |
| 47 | + -ssl_dist_opt server_secure_renegotiate true client_secure_renegotiate true \ |
| 48 | + -no_epmd |
| 49 | + |
| 50 | + $ erl --name mynode@::1:8080 \ |
| 51 | + -pa _build/default/lib/epmdless/ebin \ |
| 52 | + -proto_dist epmdless_inet6_tls \ |
| 53 | + -ssl_dist_opt server_certfile cert.pem \ |
| 54 | + -ssl_dist_opt server_secure_renegotiate true client_secure_renegotiate true \ |
| 55 | + -no_epmd |
0 commit comments