Port Binding
Binding a port below 1024 requires root. Run dxflow with sudo, move it to an unprivileged port, or grant it the permission it needs — the per-platform options are below.
Default ports
The engine only opens a port when a boot flag asks for one:
| Flag | Port | Protocol |
|---|---|---|
--http | 80 | HTTP |
--https | 443 | HTTPS |
Both are configurable per profile, which is the simplest way out of the problem entirely:
dxflow config set http-port 8080
dxflow config set https-port 8443
Keeping the privileged port
Linux
Run with sudo, or grant the bind capability once so the binary can use privileged ports as a normal user:
sudo dxflow boot up --console # simplest
sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/dxflow # recommended
dxflow boot up --console # then no sudo
setcap applies to the binary at that path. Re-run it after dxflow engine update, which replaces the file.macOS
setcap has no macOS equivalent. Run with sudo, or serve on an unprivileged port and forward the privileged one to it:
sudo dxflow boot up --console # simplest
# Or: serve on 8080 and forward 80 to it
dxflow config set http-port 8080
echo "rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080" | sudo pfctl -ef -
The pfctl rule is not persistent — it is lost on reboot unless you add it to /etc/pf.conf.
Windows
Run the terminal as Administrator, or add URL ACLs so any user can bind the ports:
# As Administrator, once:
netsh http add urlacl url=http://+:80/ user=Everyone
netsh http add urlacl url=https://+:443/ user=Everyone
Then dxflow boot up --console works from an ordinary terminal.