Skip to content

Migrating to OpenWebRX 1.0

Jakob Ketterl edited this page May 8, 2021 · 7 revisions

Configuration system

The configuration system in OpenWebRX has been completely overhauled in OpenWebRX 1.0. It doesn't offer many new settings, the main change is that most configuration can now be performed from the new web configuration interface, meaning that editing configuration files should be a thing of the past for normal usage now.

The new configuration system also has a new storage implementation that will replace the familiar config_webrx.py file. To facilitate the transition, OpenWebRX will still search for and read existing configuration files in the established locations, alongside the new storage system, and will combine the two at runtime, with the new configuration system taking precedence.

It will not update the old configuration files, but instead write all changes to the new storage system. In combination, that means that as soon as you start editing the configuration using the new web configuration, your existing settings, along with the modifications, will be written to the new storage system, and your previous configuration files will become obsolete. This should ensure an implicit, seamless and transparent migration of existing configurations.

Future versions of OpenWebRX will eventually drop the support for the old config files. At this point, the transition to the new config system will be complete.

Hot-wired settings

Most of the settings in the new web configuration have been reconnected in a way that makes them take effect immediately. This is especially useful when adjusting device or profile parameters, since this allows you to open receiver and config alongside each other and immediately see the effect of your adjustments.

Introduction of openwebrx.conf

Some very fundamental settings that would be hard to change at runtime have been moved to a new configuration file openwebrx.conf. This file will be located in /etc/openwebrx in most installations, but given the nature of these settings, they should not need to be modified very frequently, if at all.

The settings in this file are not available in the web configuration. They will not be migrated automatically but must be migrated manually. The corresponding keys of the former config_webrx.py were:

temporary_directory
aprs_symbols_directory
web_port

This new configuration also supports a configuration directory structure in /etc/openwebrx/openwebrx.conf.d, where you can place configuration overrides. This allows customization of these parameters without overriding the packaged configuration file.

Individual files and their migration

config_webrx.py is effectively migrated in slices, since its settings are spread across the multiple sections of the web configuration. Every section will migrate the settings it contains when it is saved, so by the time all sections have been edited once, all settings should be migrated, and the file config_webrx.py is no longer used.

bookmarks.json will be migrated as soon as you start editing bookmarks with the new bookmark editor.

bands.json will not be migrated at this point and will remain in /etc/openwebrx for now.

users.json will not be migrated. Any existing users will need to be recreated for security reasons. Most installations should not be affected by this since the web config was previously considered experimental and its use was discouraged.

Special information for docker installations

The new configuration system is using a different storage location to write its information to, so to actually persist the changes you make in the web configuration, you will need to mount an additional volume for the path /var/lib/openwebrx.

Once the migration is complete, the existing volume for /etc/openwebrx is only used for the remaining bands.json and openwebrx.conf. If you don't have any modifications to these files, you should be able to run without this volume.

Explicit migration

If you want to migrate your configuration right away, or want to make sure that all settings have been transferred to the new configuration system, you can run an explicit migration using the command openwebrx config migrate. OpenWebRX should not be running during this step.

Red Pitaya support

The existing "red_pitaya" device type has been dropped in favor of the new HPSDR support, which also covers Red Pitaya devices.

rtltcp_compat changes

The former settings for the rtltcp_compat feature may not be migrated automatically. If this happens, add the new "Port for rtl_tcp compatible data" setting to the device and set it to the port number accordingly.

Clone this wiki locally