Repository navigation
Working with Other Programs
The Server build can be the hub of a station rather than the whole of it.
wfweb can expose a Hamlib rigctld TCP interface so anything that speaks the Hamlib net protocol drives the rig through it. Off by default; enable it on the conventional port:
wfweb --rigctld-port 4532Point the client at Hamlib NET rigctl (rigctl -m 2 -r 127.0.0.1:4532). PTT requests go through the same path as the web UI, so RADE EOO synthesis and packet TX coordination stay intact; frequency and mode changes show in every browser at once. Pat (Winlink) works through it as well.
The listener binds to 127.0.0.1 only, because the Hamlib protocol has no authentication. --rigctld-bind-all opens it to the LAN, PTT included: do that only on a network you trust. Standalone has no rigctld (a browser cannot open a TCP listener).
The audio for those programs is a separate matter: WSJT-X on the same machine as the server uses the radio's USB codec directly, as it would without wfweb. Whether two programs can hold the codec at once depends on the OS's audio server (PipeWire and PulseAudio mix, bare ALSA does not); do not run the page's FT8 panel and WSJT-X on the same radio at the same time in any case.
wfweb --remote-log 192.168.1.50 # port 2237 if omitted
wfweb --remote-log 192.168.1.50:2237 --remote-log-decodesEvery QSO logged in wfweb (FT8/FT4, JS8, CW, by hand) is sent as a WSJT-X "QSO logged" UDP message, which those programs already understand. --remote-log-decodes forwards FT8/FT4 decodes too, which is what GridTracker needs to draw the map. The setting lives on the server only (flags, or [RemoteLog] in the settings file), never in a browser. See Logbook.
The page takes a frequency and mode in the URL, so a hyperlink can tune the radio:
https://your-server:8080/?f=14250&m=USB
https://your-server:8080/?f=7024.5&m=CW
https://wfweb.k1fm.us/?f=14236&m=RADE
-
fin kHz, decimals allowed (the DX-cluster convention). -
mis a rig mode (USB,LSB,CW,CW-R,AM,FM,RTTY…, case-insensitive, matched against the modes the rig has) or an app mode:FT8,FT4,JS8,RADE,PKT, which opens that panel and switches the rig to what the panel needs.
Both are optional and work in both builds (Standalone tunes once the rig is connected). The jump happens once per page load; a reconnect does not re-tune. App panels open after the first click on the page (browsers want a gesture before audio).
Port 8081 (one above the web port) is a plain-HTTP JSON API for scripts and microcontrollers: frequency, mode, VFO, PTT, meters, gains, RX and TX settings, the station identity, CW macros and the logbook (paged listing, ADIF import and export). It is documented in REST_API.md. It has no authentication either; keep 8081 on the LAN.
curl http://your-server:8081/api/v1/radio/frequency
curl -X PUT -H 'Content-Type: application/json' -d '{"frequency": 14074000}' http://your-server:8081/api/v1/radio/frequencyWith -S (--no-web) wfweb runs as a wfview-style rig server with no web UI, for wfview clients on the LAN. With the web on, the radio is wfweb's alone over USB; over LAN, Icom radios take several clients, and --no-autoconnect keeps a restarted wfweb from grabbing the radio while another client has it.
The web UI has no login, and neither do REST or rigctld. Do not forward 8080, 8081 or 4532 to the Internet. Put the server behind a VPN (WireGuard, Tailscale, ZeroTier) and open the page through it; the self-signed certificate is accepted once per browser as on the LAN.
Getting started
- Choosing a Build
- Standalone
- Installing the Server
- Docker
- Rig Compatibility
- Icom Menu Settings
- Troubleshooting and FAQ
Operating
Reference