Running as a system service
For an always-on operating position (a Pi in the shack, a shack PC), install the proxy as a service so it starts at boot and restarts if it crashes. Every server bundle ships the pieces for its platform.
All service setups below serve HTTPS on port 8080 with the auto-generated
self-signed certificate. The working directory matters: the certificate
(cert.pem / key.pem) is created in the working directory on first run,
so keeping it stable means browsers only see the certificate warning once.
Linux / Raspberry Pi (systemd)
The bundle contains podsdr-proxy.service. Install the bundle to
/opt/podsdr and enable the unit:
sudo cp -r podsdr-proxy-pi-bundle /opt/podsdr
sudo cp /opt/podsdr/podsdr-proxy.service /etc/systemd/system/
sudo systemctl enable --now podsdr-proxy
The unit runs:
/opt/podsdr/podsdr-proxy --static-dir /opt/podsdr/web --port 8080 --bind 0.0.0.0 --tls
with WorkingDirectory=/opt/podsdr and Restart=always. Check the User=
line matches an account that exists on your system (the Pi bundle uses pi,
the x86_64 bundle uses podsdr) and edit it if needed, then:
sudo systemctl status podsdr-proxy # is it running?
journalctl -u podsdr-proxy -f # live logs
Cloud uplink as a service: the shipped unit serves the LAN only. To run the broker uplink at boot, add the
--broker-url/--hub-public-key/--proxy-nameflags from the cloud chapter to theExecStartline. The pairing code (needed only once, while unclaimed) appears injournalctl -u podsdr-proxy | grep "with code:".
macOS (launchd)
The macOS bundle contains org.podsdr.proxy.plist, a LaunchDaemon that runs
the same command from /opt/podsdr:
sudo mkdir -p /opt/podsdr && sudo cp -r podsdr-proxy-macos-bundle/* /opt/podsdr/
sudo cp /opt/podsdr/org.podsdr.proxy.plist /Library/LaunchDaemons/
sudo launchctl load -w /Library/LaunchDaemons/org.podsdr.proxy.plist
Logs go to /opt/podsdr/proxy.log. Stop with
sudo launchctl unload -w /Library/LaunchDaemons/org.podsdr.proxy.plist.
If Gatekeeper blocks the binaries (they are ad-hoc signed, not notarized), clear the quarantine flag once after extracting:
xattr -dr com.apple.quarantine .
Windows (NSSM)
The proxy is a plain console program, so wrap it with a service manager such as NSSM:
nssm install PodSDRProxy "C:\podsdr\podsdr-proxy.exe" ^
--static-dir "C:\podsdr\web" --bind 0.0.0.0 --port 8080 --tls
nssm set PodSDRProxy AppDirectory "C:\podsdr"
nssm start PodSDRProxy
AppDirectory plays the role of the working directory — set it so the TLS
certificate persists across restarts.