Repository navigation
Section 8 1 start the server
sdroxide --server --port 4950
The server opens the configured radio, streams spectrum and audio, and accepts a
WebSocket control connection. The default port is 4950 and the default bind
address is all interfaces (0.0.0.0).
Set a username and password first — see § 7.3. Without one the server is open to anyone who can reach the port, and says so in its log at startup.
A station with more than one radio (2.17) serves all of them from the one port. Every radio in the roster is opened — each with its own engine, exactly as the GUI would — and each is reachable in its own right:
| Address | Reaches |
|---|---|
/ws |
the first radio in the roster |
/ws/<id> |
the radio with that roster id, the first one included |
/radios |
the list, as JSON: [{"id":0,"name":"RTL-SDR","path":"/ws/0"}, …]
|
The id is the one in radios.json, not a position in the list, so deleting a
radio never renumbers the others. The server logs which radio is on which
address at startup, and curl http://HOST:4950/radios answers the same question
from anywhere. A radio that is not plugged in right now still gets its address
and keeps trying to attach, the same way it would in the GUI.
One connection operates one radio: the single-client rule is per radio, so two people can work two radios of the same station at once — and a native client makes one connection per radio by itself, so one operator gets the whole station in tabs (8.2). A radio id that the station does not have is refused with a 404 rather than quietly answered by a different radio.
The roster can be changed from a client. A headless station's radios used to
be fixed at start-up: adding one meant editing radios.json on that machine and
restarting the server, which drops everyone on the air. A signed-in client can
now add a radio to the station and close one again — the + and Close on
station described in 2.17 — and the
station acts on it at once: the new radio gets its own configuration scope, its
own engine and its own address, and every client connected is told the roster
changed. It arrives with no interface, so the next step is the same as it is in
the shack: pick one on the Radio page and press Apply / reconnect. The
station's first radio cannot be closed this way; nothing else is protected, so
treat the sign-in as what it is — the key to the station, not to one radio.
The interlock applies across the whole station: only one of its radios can
transmit at a time, as in the shack. Note that each radio has its own
rigctld.json and tciserver.json in its own scope — if you enable those
built-in servers on more than one radio, give each a port of its own, or the
second one to start finds the address taken.
From the User Manual. Home.