FAQs

Port Binding

Enable dxflow to bind to privileged ports (below 1024) when running as non-root user

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:

FlagPortProtocol
--http80HTTP
--https443HTTPS

Both are configurable per profile, which is the simplest way out of the problem entirely:

Terminal
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:

Terminal
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:

Terminal
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:

PowerShell
# 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.