Skip to content

Using Server Defaults

Dave Hayes edited this page May 28, 2026 · 1 revision

What are Server Defaults?

When a new client loads SolidSDR for the first time, their preferences are initialized with a set of defaults. If you would like to customize those default settings, Server Defaults provides a way to do that.

Creating a Server Defaults file

The recommended way to create a server defaults file is to use the Export button in the App Settings dialog (click the gear icon in the right side of the status bar and select App Settings, then scroll down to the Import / Export card):

image

This will give you a file named something like solid-sdr-settings-{guiClientId}-{currentDate}.json. You can edit this file using a text editor (if you're not sure what to use, try Notepad on Windows or TextEdit on macOS). Manually changing values in this file is not recommended (it's better to change the configuration in the app and then export again), but you should remove everything but the specific settings you're trying to control.

There may be several hundred lines in the file, but many of the settings should be relatively self-explanatory. For example, if I wanted all new clients to have transparency effects disabled, "prevent screensaver" enabled, and peak style set to line by default, I would remove everything but those 3 items:

{
  "peakStyle": "line",
  "enableTransparencyEffects": false,
  "preventScreenSleep": true
}

Note, the last item doesn't have a comma at the end. The file must be valid JSON, so you might want to verify/fix after making changes with a tool like https://jsonformatter.curiousconcept.com/ if your text editor doesn't have validation features built in.

GUI Client ID

You'll need to pay special attention to the guiClientId. It's recommended that you remove the guiClientId entirely for server defaults, but there may be some scenarios where you want to keep it. The GUI Client ID is used by the radio to uniquely identify a client, and it's how the radio remembers your settings the next time you reconnect.

At first, this might seem like a good way to have all clients using the same radio settings, and it will accomplish that. However, the radio only allows one client to connect with a given guiClientId at a time. So, if you have a radio that supports multiFLEX, having all clients using the same guiClientId will prevent you from having multiple clients connected, since connecting to the radio with a guiClientId that's already in use will cause the other client using it to be disconnected.

If that's not an issue for you, and you want all clients to be treated as if they were the same one, then you might want to include the guiClientId in your server defaults. If you need multiple connections, or you want the radio to remember settings independently for different clients (especially helpful for mobile devices vs desktop), then you'll want to omit the guiClientId.

Configuring the Server

Once you have your server defaults file, you need to tell the server where to find it. As with all the server configuration options, there are 3 ways to do it:

Command Line

Here's the relative entry from the help message for solid-sdr-server:

--defaults-file string   Path to JSON file served as server defaults (optional)

So you can just run the server with that flag:

solid-sdr-server --defaults-file /path/to/defaults.json

Config File

If you're using a solid-sdr-server.yaml then uncomment and edit or add the relevant line:

# Path to a JSON file of partial preferences to serve as server-defined defaults.
# Clients merge these into their hardcoded defaults before applying saved preferences.
# If unset, /defaults.json returns {}. If set but the file is missing, clients receive a 404.
defaults-file: /path/to/defaults.json

Environment Variable

You can also use the FLEX_DEFAULTS_FILE environment variable, which is useful if you're running SolidSDR in Docker.

Testing

When you run solid-sdr-server, it will output the path to the defaults file it's using so you can verify that it's configured correctly:

2026/05/28 08:48:17 [config] http=:8080 static="" ice=50313..50313 api-log="messages.txt" defaults="server-defaults.json"

As long as you don't move the file, the server will pick up any changes automatically, you don't need to restart it after making changes.

Use an Incognito/Private Browsing window to connect to the server and verify that your server defaults are applied as expected. If something went wrong loading the server defaults, you will see an error message on page load. For example, if the server is configured to use a server defaults file, but the file doesn't exist:

image

Or if the file exists but contains invalid JSON:

image

These errors won't prevent you from using SolidSDR, it will still work normally with the standard defaults.

Console Warnings

You might also want to check to see if there any warnings about serverDefaults in the browser console. You can open the console with a key combination:

OS Keyboard Shortcut
Windows/Linux Ctrl + Shift + C
macOS Cmd + Option + C

Look for messages shown in yellow that say something like:

Unknown key in serverDefaults: fictionalKey

This means your server defaults has some option that doesn't exist and will be ignored. This might happen after updating SolidSDR if a particular settings was renamed, moved, or removed since you created your server defaults.

Including guiClientId in your server defaults will also generate a warning, which you can safely ignore if you included it intentionally:

serverDefaults contains guiClientId, which is not recommended!

Clone this wiki locally