-
feat(install): auto-pick free HTTP/Raft ports when defaults are taken
Release / frontend (push) Canceled after 0sRelease / linux (amd64) (push) Canceled after 0sRelease / linux (arm64) (push) Canceled after 0sRelease / windows (push) Canceled after 0sRelease / macos (push) Canceled after 0sRelease / release (push) Canceled after 0sBuild and Push Docker Image / build-and-push (push) Canceled after 0sreleased this
2026-06-11 14:18:23 +03:00 - install.sh: port_busy (ss -> /proc/net/tcp[6] -> /dev/tcp probe) +
pick_free_port (busy default scans +100 upward; an explicitly
env-pinned busy port dies loudly) + pick_ports (fresh installs only —
an existing .env keeps its ports). The /proc fallback lists only
readable files: a missing /proc/net/tcp6 (IPv6-disabled hosts) made
awk exit 2 even on a match, reporting every port as free. - the Raft pick avoids the port just chosen for HTTP (no listener yet,
so port_busy can't see it). - compose: pass NODE_STATS_RAFT_PORT into the container; setup wizard
bind/advertise defaults follow it instead of hardcoded 7000. - agent-join.sh: read the actual ports back from the stack .env after
install, so join/wait/advertise use what the installer really picked.
Fixes 'Bind for 0.0.0.0:7000 failed: port is already allocated' when
another service already owns a default port on the target host.Downloads
- install.sh: port_busy (ss -> /proc/net/tcp[6] -> /dev/tcp probe) +