This project provides an Ansible playbook for setting up and configuring an SDR (Software Defined Radio) station on a Raspberry Pi running Debian-based 64-bit OS (ARM architecture).
- Automated system updates and package upgrades
- Unattended updates configuration
- SSH key management with allow/block lists
- NTP synchronization using Chrony
- User creation and management
- Secure SSH configuration (password authentication disabled)
- RTL-SDR driver installation from source
- SDR++ (SDRPlusPlus) installation and setup
- SDR++ server systemd service configuration
- Ansible installed on your control machine
- SSH access to the target host
- Target host: Raspberry Pi running Debian-based 64-bit OS (ARM64)
-
Clone this repository:
git clone <repository-url> cd sdr-station
-
Configure your inventory in
inventory.ini:[sdr-station] your-host-ip ansible_user=your-user ansible_become=yes -
Set up SSH keys in the
keys/directory:- Add authorized public keys to
keys/allowed.pub(one per line) - Add keys to block to
keys/blocked.pub(one per line)
- Add authorized public keys to
Run the main playbook:
ansible-playbook --ask-become-pass -i inventory.ini playbook.yamlThis will execute the complete SDR station setup including:
- System updates and basic configuration
- RTL-SDR driver installation
- SDR++ installation and server setup
- Systemd service configuration for SDR++ server
The playbook automatically installs RTL-SDR drivers from source. For RTL-SDR V4 dongles or manual installation, refer to the official guide: RTL-SDR V4 Driver Installation
After running the playbook, SDR++ will be running as a systemd service on the target host. The server listens on port 5259 by default.
-
Install SDR++ on your local machine from https://github.com/AlexandreRouma/SDRPlusPlus
-
Launch SDR++ locally
-
In SDR++:
- Go to the "Source" menu
- Select "SDR++ Server"
- Enter the IP address of your SDR station and port 5259
- Connect to the server
- Once connected, select your SDR device from the available sources
The SDR++ server allows you to control the SDR hardware remotely while running the processing on your local machine.
playbook.yaml- Main Ansible playbook with SDR++ setupbasic-setup.yaml- Basic system setup tasks (SSH, NTP, unattended updates)rtl-sdr-install.yaml- RTL-SDR driver installation tasksinventory.ini- Ansible inventory filekeys/- SSH key management directoryutils/- Utility playbooks and tasks.devcontainer/- Development container configuration
This project includes a dev container configuration for VS Code. Open in VS Code with the Dev Containers extension for a ready-to-use Ansible development environment.
