Install
Pick the desktop app when the radio is plugged into your computer. Pick the server when the radio sits somewhere else and you connect from a browser. Both run the same receiver.
| Installation | Best for |
|---|---|
| Desktop app | A radio on your computer |
| Portable server | A Raspberry Pi, home server, or remote receiver |
| Homebrew | macOS or Linux with Homebrew |
| APT | Debian and Ubuntu |
| DNF | Fedora |
| Nix | Linux managed with Nix |
| Container | Docker |
Desktop app
Download the installer from the download page and open SDRmm. The app starts its own server on a random port only this computer can reach. For a fixed port or access from other devices, run the server instead.
| Platform | Package |
|---|---|
| macOS | .dmg for Apple silicon or Intel |
| Linux | .deb, .rpm or .AppImage for x86-64 or ARM64 |
| Windows | .msi or .exe for x86-64, .exe for ARM64 |
Portable server
Download and unpack the sdrmm archive for your system from the download page,
then run it:
./sdrmm
On Windows, run sdrmm.exe. Open http://localhost:8080 on the server.
It only accepts this machine. To reach it from another computer, start it with
--bind 0.0.0.0:8080. It then makes a token and serves
HTTPS at https://<server>:8080.
Homebrew
App, macOS:
brew install sdrmm-app
Server, macOS or Linux:
brew install sdrmm
brew services start sdrmm
The cask installs into /Applications. The service starts the server at login. Open
http://localhost:8080.
APT
curl -fsSL https://downloads.sdrmm.com/packages/key.gpg \
| sudo tee /usr/share/keyrings/sdrmm.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/sdrmm.gpg] https://downloads.sdrmm.com/packages/deb stable main" \
| sudo tee /etc/apt/sources.list.d/sdrmm.list
sudo apt update
sudo apt install sdrmm-app
APT and DNF install the desktop app. For the sdrmm server, use Homebrew or the
portable server.
DNF
sudo dnf config-manager addrepo \
--from-repofile=https://downloads.sdrmm.com/packages/rpm/sdrmm.repo
sudo dnf install sdrmm-app
Nix
Install and launch the desktop app on x86_64 or aarch64 Linux from a release's source tarball, which carries the built web interface:
VERSION=1.2.3
nix --extra-experimental-features 'nix-command flakes' profile install \
"https://github.com/Newspicel/sdrmm/releases/download/v$VERSION/sdrmm-$VERSION-src.tar.gz"
sdrmm-desktop
The flake exports the desktop app as sdrmm-desktop, sdrmm, and default. From a checkout,
run pnpm --dir web build, then nix build path:. produces result/bin/sdrmm-desktop.
Radios without a built-in driver need SoapySDR modules, picked with soapyPlugins. For SDRplay,
enable services.sdrplayApi and pass the unfree pkgs.sdrplay as sdrplayApi. This NixOS
example assumes the flake input is named sdrmm:
environment.systemPackages = [
(inputs.sdrmm.packages.${pkgs.stdenv.hostPlatform.system}.sdrmm.override {
soapyPlugins = with pkgs; [ soapybladerf soapyremote ];
})
];
hardware.rtl-sdr.enable = true;
users.users.your-user.extraGroups = [ "plugdev" ];
Container
On Linux:
git clone https://github.com/Newspicel/sdrmm.git
cd sdrmm
docker compose pull
docker compose up -d
Without the pull, Compose builds the image from the checkout.
The container listens on every interface, so it makes a token on first start. Open the link
docker compose logs sdrmm | grep token shows. Data lives in the sdrmm-data volume. For USB
radios, tokens, and HTTPS, see Deployment.
Stable or nightly
Use a stable release. The desktop app checks for updates at startup and asks before installing.
On Linux only the AppImage updates itself; APT, DNF, and Nix installs update through the package
manager. The nightly release follows
main and never updates itself. A database a newer build has opened does not open in an older
one.
Next
- Plug in a radio and check Radios if it needs a driver.
- Build your first receiver.
- To build from source, see Build and test.