rel/env.sh.eex

main at 58e6347eeb72 · 950 B

#!/bin/sh
# Release environment, sourced by `bin/openagents` before boot (mix release).
#
# Distribution is opt-in and single-node-safe by construction: unless a node
# host is provided (the clustered fleet sets OPENAGENTS_NODE_HOST per node), we
# leave mix release's defaults untouched. On the fleet, OPENAGENTS_NODE_HOST +
# a shared RELEASE_COOKIE + a DNS_CLUSTER_QUERY that resolves to the peers is
# all that is needed to form a BEAM cluster.

if [ -n "${OPENAGENTS_NODE_HOST:-}" ]; then
  : "${RELEASE_COOKIE:?RELEASE_COOKIE is required for a distributed node}"
  export RELEASE_DISTRIBUTION="name"
  export RELEASE_NODE="${RELEASE_NODE:-openagents@${OPENAGENTS_NODE_HOST}}"
  # Pin Erlang distribution ports to a fixed range so firewall rules and
  # peer discovery stay stable across restarts.
  export ERL_AFLAGS="${ERL_AFLAGS:-} -kernel inet_dist_listen_min ${OPENAGENTS_DIST_PORT_MIN} inet_dist_listen_max ${OPENAGENTS_DIST_PORT_MAX}"
fi