Skip to content
Open source, multi-user SDR receiver software with a web interface
Python JavaScript CSS HTML Shell
Branch: develop
Clone or download
Pull request Compare This branch is 742 commits ahead, 5 commits behind ha7ilm:master.
Latest commit dc1fb3b Jan 29, 2020
Type Name Latest commit message Commit time
Failed to load latest commit information.
csdr avoid using preexec_fn in the other places, too Jan 17, 2020
debian update digiham dependency Jan 9, 2020
docker update dependencies in docker Jan 25, 2020
htdocs include digital demods in hash Jan 25, 2020
owrx Fix PlutoSDR support Jan 22, 2020
systemd add systemd; add dependencies Dec 8, 2019
.dockerignore use explicit revisions so i can use the docker build cache Dec 29, 2019
.gitignore switch file loading to pkg_resources Dec 8, 2019 update changelog, closes #47 Jan 29, 2020
LICENSE.txt Create LICENSE.txt Nov 29, 2015 more readme updates Jan 29, 2020
bands.json add scaffolding for pocsag decoding Jan 6, 2020
bookmarks.json add scaffolding for pocsag decoding Jan 6, 2020 add rtlsdr via soapy to the docker builds; clean up Jan 17, 2020 restructure project for packaging Dec 8, 2019 add rtlsdr via soapy to the docker builds; clean up Jan 17, 2020 restructure project for packaging Dec 8, 2019 update legal information Jan 9, 2020


OpenWebRX is a multi-user SDR receiver software with a web interface.


It has the following features:

  • csdr based demodulators (AM/FM/SSB/CW/BPSK31/BPSK63)
  • filter passband can be set from GUI
  • it extensively uses HTML5 features like WebSocket, Web Audio API, and Canvas
  • it works in Google Chrome, Chromium and Mozilla Firefox
  • currently supports RTL-SDR, HackRF, SDRplay, AirSpy, LimeSDR, PlutoSDR
  • Multiple SDR devices can be used simultaneously
  • digiham based demodularors (DMR, YSF, Pocsag)
  • dsd based demodulators (D-Star, NXDN)
  • wsjt-x based demodulators (FT8, FT4, WSPR, JT65, JT9)


Raspberry Pi SD Card Images

Probably the quickest way to get started is to download the latest Raspberry Pi SD Card Image. It contains all the depencencies out of the box, and should work on all Raspberry Pis. It is based off the Raspbian Lite distribution, so their installation instructions apply.

You can find the latest images here. You can also checkout the nightly folder, which has the most recent builds, albeit untested.

Once you have booted a Raspberry with the SD Card, it will appear in your network with the hostname "openwebrx", which should make it available as https://openwebrx/ on most networks. This may vary depending on your specific setup.

For Digital voice, the minimum requirement right now seems to be a Rasbperry Pi 3B+. I would like to work on optimizing this for lower specs, but at this point I am not sure how much can be done.

Docker Images

For those familiar with docker, I am providing recent builds and Releases for both x86 and arm processors on the Docker hub. You can find a short introduction there.

Manual Installation

OpenWebRX currently requires Linux and python >= 3.6 to run.

First you will need to install the dependencies:

Optional dependencies if you want to be able to listen do digital voice:

Optional dependency if you want to decode WSJT-X modes:

Detailed installation instructions in the Wiki

After cloning this repository and connecting an RTL-SDR dongle to your computer, you can run the server:


You can now open the GUI at http://localhost:8073.

Now the next step is to customize the parameters of your server in

Actually, if you do something cool with OpenWebRX, please drop me a mail:
Jakob Ketterl, DD5JFK <>

Usage tips

You can zoom the waterfall display by the mouse wheel. You can also drag the waterfall to pan across it.

The filter envelope can be dragged at its ends and moved around to set the passband.

However, if you hold down the shift key, you can drag the center line (BFO) or the whole passband (PBS).


OpenWebRX is available under Affero GPL v3 license (summary.

OpenWebRX is also available under a commercial license on request. Please contact me at the address <> for licensing options.

You can’t perform that action at this time.