Upgrading Timebase
Overview
Upgrading Timebase is straightforward. On Windows you stop the services and run the new installer. On Docker you pull updated images. Configuration files are preserved across upgrades. This article covers both paths and lists any version-specific steps you need to take.
How to upgrade
Before you start — back up your configuration
Configuration files are not modified by the installer, but it is good practice to take a copy before upgrading. Back up the following before proceeding:
Windows:
C:\ProgramData\Flow Software\Timebase\— back up the entireConfigandSettingsfolder for each component (Historian, Collector, Explorer, Pulse, Service Starter)C:\Program Files\Flow Software\Timebase\— back up theappsettings.jsonfile for each component
Docker:
- Back up the folder your
ConfigDocker Volume references, or run a Volume backup using thetarmethod described in the Disaster Recovery article
Upgrade on Windows
- Open the Timebase Services Starter (
localhost:4510) and stop all running components by clicking the Stop icon for the Timebase Stack. - Download the latest Windows Installer from the Software Releases page.
- Run
Timebase.msiand follow the installation steps. The installer detects and upgrades existing components. - After installation completes, the Services Starter opens automatically. Start all components using the Play icon.
- Apply any version-specific configuration changes listed in the Version-Specific Notes section below.
Upgrade on Docker
- Pull the latest images:
docker compose -f docker-compose.yml pull - Restart the containers with the updated images:
docker compose -f docker-compose.yml up --detach - Confirm all containers are running:
docker ps - Apply any version-specific configuration changes listed in the Version-Specific Notes section below.
Your Docker Volumes persist all data, settings, and configuration across upgrades. You do not need to recreate Volumes when upgrading images.
Version-specific notes
Upgrading to 1.3.4
Collector Serilog namespace change — The logging namespace for the Collector changed from Timebase.Historian.Collector to Timebase.Collector. If you have a Collector settings.config with the old namespace, update it or you will see no log output from the Collector after upgrading.
Update the Serilog.MinimumLevel.Override section in each Collector's settings.config:
From:
"Override": {
"Timebase.Historian.Collector": "Information"
}
To:
"Override": {
"Timebase.Collector": "Information"
}
Upgrading to 1.3.2
Automatic TLS certificate management — 1.3.2 introduces Pulse as a Root CA with automatic certificate generation and distribution. This is opt-in.
- If you want to enable automatic TLS, set
"Cert": { "Enabled": true }in each component'ssettings.configand add a Kestrel HTTPS endpoint. See the Automatic TLS Certificate Management article. - If you are already running with manually configured TLS certificates, you do not need to change anything. Manual certificates continue to work.
- All component-to-Pulse connections now use TLS by default (
Pulse:UseTls: true). If you are connecting components to Pulse over HTTP, update yoursettings.configto either enable TLS on Pulse or explicitly setUseTls: falsein the component's Pulse connection settings.
Upgrading to 1.3.0
Late Data Tolerance — Datasets now have a configurable "Late Data Tolerance" setting (in milliseconds). Review this setting for your datasets after upgrading if you have data sources that send out-of-order data. See the Late Data Handling article.
Upgrading to 1.1
Settings file location change — From 1.1 onwards, component settings moved from appsettings.json in the install directory to a separate settings.config file in the ProgramData path. If you have configuration in the old appsettings.json, copy it to the new settings.config location. See the Component Settings article for the correct paths.
Troubleshooting
| Symptom | Likely cause | What to do |
|---|---|---|
| A component does not start after upgrading — Services Starter shows it as stopped | A configuration change required by the new version was not applied, or a port conflict appeared after the upgrade | Click the component in the Services Starter to see its log output. Check the Version-Specific Notes above for any required configuration changes for the version you upgraded to |
| Collector produces no log output after upgrading to 1.3.4 | The Serilog namespace changed from Timebase.Historian.Collector to Timebase.Collector |
Update the Serilog.MinimumLevel.Override section in the Collector's settings.config as described in the 1.3.4 version notes above |
| Components cannot connect to Pulse after upgrading to 1.3.2 | Components-to-Pulse connections now default to TLS (UseTls: true) but Pulse may not have TLS configured yet |
Either enable TLS on Pulse by adding a Kestrel HTTPS endpoint and enabling certificate management, or explicitly set "UseTls": false in each component's Pulse connection settings until you are ready to enable TLS |
| Data files or configuration are missing after a Docker upgrade | The Docker Volumes were not attached when the new containers started, or the Compose file was not used | Confirm you are using docker compose up with the same docker-compose.yml file that defines the named Volumes. Do not use docker run without bind mounts — this creates containers without persistent storage |
| Windows installer shows components as already installed but does not upgrade them | The previous version was not stopped before running the installer | Stop all Timebase services using the Services Starter before running the installer. The installer cannot replace files that are in use by running processes |