Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Install SDR--

Choose a desktop app for local use or a server to control from a browser. Both provide the same receiver and interface.

InstallationBest for
Desktop applicationA radio connected to your computer
Portable serverA Raspberry Pi, home server, or remote receiver
HomebrewPackage management on macOS or Linux
NixLinux systems managed with Nix
ContainerA persistent server with Docker

Desktop application

Download your platform's installer from GitHub Releases, install it, and open SDR--. The app starts its server automatically on a private local port.

PlatformPackage
macOS.dmg for Apple silicon or Intel
Linux.deb or .AppImage
Windows.msi or .exe

Portable server

Download and unpack the sdrmm archive for your operating system and processor from GitHub Releases. Run the binary:

./sdrmm

On Windows, run sdrmm.exe. Open http://localhost:8080 on the server or http://<server>:8080 from another computer.

The server listens on all network interfaces without authentication by default. Configure a shared token and HTTPS before allowing untrusted network access.

Homebrew

Add the tap:

brew tap newspicel/tap

For the macOS desktop app:

brew install --cask sdrminusminus

For the server on macOS or Linux:

brew install sdrmm
brew services start sdrmm

The cask installs into /Applications. The service runs the server in the background and starts it at login. Open http://localhost:8080.

Nix

With flakes enabled, install and launch the desktop app on x86_64 or aarch64 Linux:

nix --extra-experimental-features 'nix-command flakes' \
  profile install github:Newspicel/sdrminusminus
sdrmm-desktop

The flake exposes the desktop package as sdrmm-desktop, sdrmm, and default. To build it from a checkout:

nix --extra-experimental-features 'nix-command flakes' build

The result is result/bin/sdrmm-desktop.

The Nix package uses SoapySDR for local radios. Select their modules with soapyPlugins. This NixOS example assumes the repository is declared as the sdrminusminus flake input:

environment.systemPackages = [
  (inputs.sdrminusminus.packages.${pkgs.stdenv.hostPlatform.system}.sdrmm.override {
    soapyPlugins = with pkgs; [ soapyrtlsdr soapyremote ];
  })
];

hardware.rtl-sdr.enable = true;
users.users.your-user.extraGroups = [ "plugdev" ];

Keep only the modules and hardware options you need. The package provides the SoapySDR core; modules and USB permissions come from your configuration.

Container

On Linux, start the supplied Docker Compose service:

git clone https://github.com/Newspicel/sdrminusminus.git
cd sdrminusminus
docker compose pull
docker compose up -d

Open http://localhost:8080. The service persists its database and recordings in sdrmm-data. For USB radios, set group_add to the host group that owns the device. See container setup for permissions, authentication, and HTTPS.

Connect your radio

Open a Device node and select your receiver. Many radios work with the built-in drivers; others need a vendor library or SoapySDR module. The hardware guide lists the requirements for each receiver and package.

If a radio is missing, select Check hardware on an unbound Device node or run sdrmm --doctor.

Stable and nightly builds

Use a stable release for regular use. Desktop apps check for stable updates at startup. The rolling nightly release follows main and may change saved-data formats without migration support. Stable apps do not automatically update to nightlies.

Build from source

Follow Build and test to develop SDR-- or choose custom backends.

Next step

Follow Your first receiver to listen to broadcast FM with an RTL-SDR.