Skip to content

Installation

Brian Keating edited this page Apr 29, 2026 · 5 revisions

Installation

OpenHPSDR Zeus ships in three forms. The simplest is to pick whichever installer matches your OS, but the PWA install path is also fully supported and is currently the slickest "feels like a real app" experience.

Platform File Notes
Windows (x64) Zeus-X.Y.Z-win-x64-setup.exe Inno Setup; opens browser on launch
macOS (Apple Silicon) Zeus-X.Y.Z-macos-arm64.dmg drag to Applications, see xattr below
Linux (x64) zeus-X.Y.Z-linux-x64.tar.gz extract and run ./zeus

Installers are published with every tagged release on the Releases page.

What's inside an installer

Each native installer ships Zeus.Server — a self-contained .NET 10 publish that serves the React UI, the SignalR hub, and the WDSP native library on http://localhost:6060 — wrapped in a tiny per-platform launcher.

The launcher's whole job is to start the backend, wait for port 6060 to listen, open your default browser at http://localhost:6060, and clean the backend up when you quit:

  • Windows — Start Menu, Desktop, and post-install shortcuts run zeus.cmd. A small console window appears showing Zeus.Server log output (handy on the first run while WDSP wisdom is being built — see below). Closing the console stops the server.
  • macOSZeus.app/Contents/MacOS/launch.sh is the bundle's main executable. Cmd-Q from the Dock gracefully terminates Zeus.Server.
  • Linux./zeus from the extracted tarball backgrounds Zeus.Server, opens the URL via xdg-open, and forwards termination to the backend.

OpenHPSDR Zeus first launch

That is what OpenHPSDR Zeus looks like on first launch. The Discover panel is centred on screen; pick your radio and the panadapter, waterfall, and meters go live.

First run — wait for WDSP wisdom

The first time Zeus.Server runs on a machine, WDSP/FFTW builds a one-shot "wisdom" cache that plans the FFT sizes OpenHPSDR Zeus uses. It takes 1–3 minutes on a modern CPU. You'll see lots of lines like:

Planning COMPLEX FORWARD  FFT size 64
Planning COMPLEX BACKWARD FFT size 64
... (many lines) ...

Don't click Discover or Connect until you see wdsp.wisdom ready result=1 (built) in the console. Connecting before wisdom completes will crash the backend with a native double-free.

The wisdom file is cached so subsequent launches come up instantly:

OS Path
macOS ~/Library/Application Support/Zeus/wdspWisdom00
Linux ~/.local/share/Zeus/wdspWisdom00
Windows %LOCALAPPDATA%\Zeus\wdspWisdom00

Install OpenHPSDR Zeus as a Progressive Web App

OpenHPSDR Zeus is a fully-featured PWA, so you can get the "feels like a native app" experience without any of the desktop installers — and right now this is arguably the cleanest path:

  1. Open http://localhost:6060 in Chrome, Edge, or Safari (Safari 17+).
  2. Click the Install icon in the address bar (Chrome / Edge) or File → Add to Dock… (Safari).
  3. OpenHPSDR Zeus now lives in the Dock / Start Menu / Application Launcher with its own window, no browser chrome, and works offline for the static shell.

The PWA path keeps a real browser engine underneath, so devtools and "open in tab" remain available — useful while OpenHPSDR Zeus is still in heavy active development. It also works against a Zeus.Server running on a different machine (e.g. a headless Pi), which the desktop installers can't do.

macOS — Removing the Gatekeeper warning

OpenHPSDR Zeus is not signed with an Apple Developer certificate, so macOS will block it on first launch. To clear the quarantine flag, open Terminal and run:

xattr -cr /Applications/Zeus.app

If you still see a security warning, go to System Settings → Privacy & Security and click Open Anyway.

Phase 2 — true single-window native shell (ETA TBD)

The current installers are deliberately minimal — a self-contained .NET app plus a launcher that opens your default browser. This is the same shipping pattern used by Jellyfin, Sonarr, and Plex. It works, but it flashes a console / shell window on launch and depends on the OS browser.

A Phase 2 packaging pass will replace the launcher with a native-window host (most likely Photino, which wraps WebView2 / WKWebView / WebKitGTK from C# and reuses the same self-contained .NET publish we already build). That gets us a single double-click app with no console pop-up and a real OS window.

It is not a current priority. The focus until then is on radio functionality — protocol coverage, TX behaviour, and DSP correctness. There is no ETA. Use the PWA install path above for a windowed, dock-friendly experience right now.

Next

Once OpenHPSDR Zeus is running, head to Getting Started for the first-minute walkthrough.

Clone this wiki locally