• v0.6.1 4f89c37ec0

    feat(install): auto-pick free HTTP/Raft ports when defaults are taken
    Release / frontend (push) Canceled after 0s
    Release / linux (amd64) (push) Canceled after 0s
    Release / linux (arm64) (push) Canceled after 0s
    Release / windows (push) Canceled after 0s
    Release / macos (push) Canceled after 0s
    Release / release (push) Canceled after 0s
    Build and Push Docker Image / build-and-push (push) Canceled after 0s

    LastSkywalker released 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