Repository navigation
Building and Contributing
BUILDING.md has the prerequisites per platform. The short form on Debian or Ubuntu:
git clone --recursive https://github.com/adecarolis/wfweb.git
cd wfweb
qmake wfweb.pro
make -j$(nproc)--recursive matters: the FT8/FT4 decoder (resources/ft8ts) and the RADE codec (resources/radae_nopy) are submodules. Already cloned without it: git submodule update --init.
Build wfweb.pro, not wfview.pro: the latter is the upstream desktop project.
The Standalone bundle needs no toolchain: tools/build-static.sh dist/ and serve dist/ over HTTPS (or tools/serve-static.py locally). See Standalone.
The C++ under src/ and include/ is wfview's radio engine plus wfweb's web server (webserver.cpp), rigctld, logbook, and the server-side modems (FreeDV, RADE, Direwolf, AX.25). The browser page lives in three sibling directories: resources/web/ (Server only), resources/web-standalone/ (Standalone only: the Web Serial transport, the in-browser CI-V codec, the WASM modems) and resources/web-shared/ (everything both use: the theme, the CW keyer and decoder, the JS8 panel, the packet stack, the recorder, the jitter buffer). Rig definitions are the .rig files under rigs/; the Standalone build gets them as civ/rig-caps.js, generated by tools/extract-rig-caps.py.
pytest tests/ runs the suite: unit tests of the pure C++ helpers, node simulations of the browser modules (CW keyer and paddle, jitter buffer, MIDI), the packet modem loopback, and server tests against a mocked IC-7300. The two-rig bench (tools/virtualrig on the server, /?virtual=1&id=N in Standalone) runs whole QSOs in FT8, JS8, CW and packet between two virtual rigs with no radio and nothing on the air.
Nothing in the tests keys a real radio, and nothing you contribute should either.
- Rig reports and menu settings are the most useful thing a non-programmer can add: this wiki's Rig Compatibility and Troubleshooting pages are open to edit.
-
Rig files. A radio that misbehaves on one command usually needs one line in its
.rigfile. Quote the CI-V frame from the debug log and the manual's page in the issue or the pull request. -
Pull requests go against
dev. Keep the upstream delta small: wfweb tracks wfviewmasterand keeps its changes to the web server, the page, and the headless build. Engine fixes that are not web-specific are better sent upstream to wfview, where everyone gets them. - The project's callsign handling is deliberately shared: one station callsign in the gear dialog feeds CW, FT8/FT4, JS8, FreeDV Reporter, APRS, the AX.25 link and the logbook. Do not add a per-mode one.
wfweb exists because of wfview by Elliott Liggett W6EL, Phil Taylor M0VSE and contributors, whose engine does the radio work. If wfweb is useful to you, support them: https://www.patreon.com/wfview.
Getting started
- Choosing a Build
- Standalone
- Installing the Server
- Docker
- Rig Compatibility
- Icom Menu Settings
- Troubleshooting and FAQ
Operating
Reference