Server Deployment
This page provides documentation on bringing up a RemoteRF server for the first time, making it the first step in deploying RemoteRF in a research lab or on a university campus.
Prerequisites
Before proceeding, it is assumed that you have obtained the following hardware components:
- A Linux-based computer, such as a simple desktop computer, which will act as the RemoteRF server. We highly recommend Ubuntu 24.04 LTS, but other distributions should also work, though they have not been extensively tested. We recommend a fresh install.
- At least one supported SDR of your choice. For first-timers, we suggest starting with two ADALM-PLUTO SDRs. You can always add more (and other) SDRs later.
To confirm full functionality of RemoteRF after setup, you will eventually need another computer to act as the client. This can be a simple laptop or desktop computer with Linux, macOS, or Windows, and does not need to be a fresh install.
This guide will assume that the Linux computer satisfies the following:
- It has been installed with Python 3, ideally managed through
conda(or Miniconda). - It is reachable on its local network (e.g., university network) via a stable address, usually a static IP. This static IP may need to be obtained from your information technology (IT) department.
Quick Guide: If you need help setting up installing Linux, installing Python, or obtaining a static IP address, please refer to the following guides.
Configuration
After the above hardware prerequisites have been met, initial setup of the RemoteRF server can commence by executing the following steps.
To begin, launch a new terminal window and activate the remoterf-server environment using the following conda command.
conda activate remoterf-server
Use this single terminal to execute all of the steps that follow.
Installation
The first step is to install the RemoteRF server package in the active terminal, and then make sure the serverrf command is available before proceeding.
python -m pip install -U pip
python -m pip install remoterf-server
serverrf --help
serverrf --help should print a detailed list of available commands and options. If the command serverrf cannot be found, reactivate the correct environment and confirm that remoterf-server installed successfully.
Generate Certificates
Using the static IP and ports assigned to you by your network administrator, the next step involves generating networking certificates that will be used to establish a connection with clients.
192.168.1.50serverrf --gen-certs 192.168.1.50 --days 3650 --force
serverrf --show-certs
--days 3650 flag makes them long-lived, and --force replaces an older set if you need to regenerate them after changing the outward-facing address.
Configure Ports
Using the ports assigned to you by your network administrator, the next step is to set the outward-facing ports the server should use for its main service and certificate service.
6100561006serverrf --config --main-port 61005 --cert-port 61006
serverrf --config --show
serverrf --config --show should display the same port values you were provided by your network administrator.
Test on the Same Machine
Start the server in one terminal using serverrf --serve, and let it keep running. Then, open a second terminal on the same machine, and test the static IP and configured ports.
192.168.1.506100561006serverrf --serve
nc -vz 192.168.1.50 61005
nc -vz 192.168.1.50 61006
nc -vz commands report that the connection succeeded or that the port is open, then the server is functional and listening on the intended outward-facing address and ports.
Test from a Second Machine
Note: The nc command only works on Unix-based machines. To further confirm the server is reachable, use another computer that is on the same network as the server (e.g., connected to your university network). Then, run nc -vz commands like before.
192.168.1.506100561006nc -vz 192.168.1.50 61005
nc -vz 192.168.1.50 61006
If each step has been completed up to this point, then the initial setup of the RemoteRF server is complete and it should now be accessible from anywhere on your local network.
Command context: RemoteRF server commands are used in two places. Commands like serverrf --config ..., serverrf --gen-certs ..., and serverrf --serve are run from the normal operating-system terminal. These commands configure the server, inspect setup values, or start the server process.
Once serverrf --serve is running, RemoteRF opens its own server@remoterf: prompt. Commands entered there, such as status, devices list, users list, groups create, and reservations list, are runtime shell commands. Use this runtime shell to inspect and manage live server state while the server is running.
Next Steps
This is the natural next step for most deployments, especially first-timers. Use it to connect SDRs directly to the server and bring them online.
If you want to deploy distributed SDRs and connect them to the server over Wi-Fi, LAN, or VPN, then see this guide.
If you only want a reference view of ~/.config/remoterf/, see Advanced Configuration.