1. Timebase Knowledge Base
  2. Timebase Services Starter

Timebase Services Starter for Windows

Provides an overview of the Timebase Services Starter for Windows and includes instructions for adding additional services like Collectors

Upon completion, the installer will automatically launch the Timebase Services Starter in the browser of your choosing. This can be found manually by navigating to localhost:4510 in a web browser.

Editing the Configuration

Select the Config tab.

Below is the default config for a new installation. Editing this file will update the appsettings.json file, which by default can be found in C:\Program Files\Flow Software\Timebase\Service Starter\.

{
  "Stacks": {
    "Timebase": {
      "Historians": {
        "Historian": {
          "Active": false,
          "Kestrel": {
            "Endpoints": {
              "Http": {
                "Url": "http://0.0.0.0:4511"
              }
            }
          }
        }
      },
      "Collectors": {
        "Simulator": {
          "Active": false,
          "Kestrel": {
            "Endpoints": {
              "Http": {
                "Url": "http://0.0.0.0:4521"
              }
            }
          }
        }
      },
      "Explorers": {
      "Explorer": {
          "Active": false,
          "Kestrel": {
            "Endpoints": {
              "Http": {
                "Url": "http://0.0.0.0:4531"
              }
            }
          }
        }
      }
    }
  }
}

 

Modify the Historian

It is unlikely you will need to change anything other than possibly adjusting the port.

The default is http://0.0.0.0:4511 for accepting connections on all network interfaces.

These settings take priority over the appsettings.json file that can be found in C:\Program Files\Flow Software\Timebase\Historian\. Modifying the location of where either the Historian Data or the Historian Logs are stored should be done using the following article.

Add a Collector

You can add additional Collectors, but will need to give them unique names and unique port numbers. You may copy and paste the configuration below, just be sure to remove the comments // at the beginning of each line and give a new name and port number to the Collector.

Save your changes when you are finished.

Click on the Control tab and verify your new Collector has been added to your list of services.

{
  "Stacks": {
    "Timebase": {
      "Historians": {
        "Historian": {
          "Active": true,
          "Kestrel": {
            "Endpoints": {
              "Http": {
                "Url": "http://0.0.0.0:4511"
              }
            }
          }
        }
      },
      "Collectors": {
        "Simulator": {
          "Active": true,
          "Kestrel": {
            "Endpoints": {
              "Http": {
                "Url": "http://0.0.0.0:4521"
              }
            }
         }  //For additional Collectors, uncomment the beginning of each of the following lines and then change the name and port number of the new Collector Instance. Save changes.
//      },
//        "CollectorNameToBeChanged": {     //Provide a unique name for this Collector instance
//          "Active": true,
//          "Kestrel": {
//            "Endpoints": {
//              "Http": {
//                "Url": "http://0.0.0.0:XXXX"  //Provide a unique port number for this Collector instance
//              }
//            }
//          }
        }
      },
      "Explorers": {
       "Explorer": {
          "Active": true,
          "Kestrel": {
            "Endpoints": {
              "Http": {
                "Url": "http://0.0.0.0:4531"
              }
            }
          }
        }
      }
    }
  }
}

Adding HTTPS and certificates

Need to have a secured https configuration? Well, you would need to add an https endpoint to your configuration.

This can be done by extending your Kestrel Endpoint to include an https endpoint.

The following snippet adds an additional endpoint and binds a certificate to the endpoint:

"Https": {
 "Url": "https://0.0.0.0:4512",
  "Certificate": {
          "Subject": "localhost",
           "Store": "My",
           "Location": "CurrentUser",
           "AllowInvalid": true
           }
          }
         }

The following example config can be copied and pasted into your configuration. This will include all different collectors as well as Pulse. What do you need to change? You would need to change the certificate details to match your provided certificate.

{
  "Stacks": {
    "Timebase": {
      "Historians": {
        "Historian": {
          "Active": true,
          "Kestrel": {
            "Endpoints": {
              "Http": {
                "Url": "http://0.0.0.0:4511"
              },
              "Https": {
                "Url": "https://0.0.0.0:4512",
                "Certificate": {
                  "Subject": "localhost",
                  "Store": "My",
                  "Location": "CurrentUser",
                  "AllowInvalid": true
                }
              }
          }
          }
        }
      },
      "Collectors": {
        "MQTT": {
          "Active": false,
          "Config": "C:\\ProgramData\\Flow Software\\Timebase\\Collector\\MQTT\\Config",
          "Data": "C:\\ProgramData\\Flow Software\\Timebase\\Collector\\MQTT\\Data",
          "Logs": "C:\\ProgramData\\Flow Software\\Timebase\\Collector\\MQTT\\Logs",
          "Settings": "C:\\ProgramData\\Flow Software\\Timebase\\Collector\\MQTT\\Settings",
          "Kestrel": {
            "Endpoints": {
              "Http": {
                "Url": "http://0.0.0.0:4527"
              },
              "Https": {
                "Url": "https://0.0.0.0:4528",
                "Certificate": {
                  "Subject": "localhost",
                  "Store": "My",
                  "Location": "CurrentUser",
                  "AllowInvalid": true
                }
              }
          }
          }
        },
        "MQTT Sparkplug": {
          "Active": false,
          "Config": "C:\\ProgramData\\Flow Software\\Timebase\\Collector\\MQTT Sparkplug\\Config",
          "Data": "C:\\ProgramData\\Flow Software\\Timebase\\Collector\\MQTT Sparkplug\\Data",
          "Logs": "C:\\ProgramData\\Flow Software\\Timebase\\Collector\\MQTT Sparkplug\\Logs",
          "Settings": "C:\\ProgramData\\Flow Software\\Timebase\\Collector\\MQTT Sparkplug\\Settings",
          "Kestrel": {
            "Endpoints": {
              "Http": {
                "Url": "http://0.0.0.0:4525"
              },
              "Https": {
                "Url": "https://0.0.0.0:4526",
                "Certificate": {
                  "Subject": "localhost",
                  "Store": "My",
                  "Location": "CurrentUser",
                  "AllowInvalid": true
                }
              }
          }
          }
        },
        "OPCUA": {
          "Active": false,
          "Config": "C:\\ProgramData\\Flow Software\\Timebase\\Collector\\OPCUA\\Config",
          "Data": "C:\\ProgramData\\Flow Software\\Timebase\\Collector\\OPCUA\\Data",
          "Logs": "C:\\ProgramData\\Flow Software\\Timebase\\Collector\\OPCUA\\Logs",
          "Settings": "C:\\ProgramData\\Flow Software\\Timebase\\Collector\\OPCUA\\Settings",
          "Kestrel": {
            "Endpoints": {
              "Http": {
                "Url": "http://0.0.0.0:4523"
              },
              "Https": {
                "Url": "https://0.0.0.0:4524",
                "Certificate": {
                  "Subject": "localhost",
                  "Store": "My",
                  "Location": "CurrentUser",
                  "AllowInvalid": true
                }
              }
          }
          }
        },
        "Simulator": {
          "Active": true,
          "Config": "C:\\ProgramData\\Flow Software\\Timebase\\Collector\\Simulator\\Config",
          "Data": "C:\\ProgramData\\Flow Software\\Timebase\\Collector\\Simulator\\Data",
          "Logs": "C:\\ProgramData\\Flow Software\\Timebase\\Collector\\Simulator\\Logs",
          "Settings": "C:\\ProgramData\\Flow Software\\Timebase\\Collector\\Simulator\\Settings",
          "Kestrel": {
            "Endpoints": {
              "Http": {
                "Url": "http://0.0.0.0:4521"
              },
              "Https": {
                "Url": "https://0.0.0.0:4522",
                "Certificate": {
                  "Subject": "localhost",
                  "Store": "My",
                  "Location": "CurrentUser",
                  "AllowInvalid": true
                }
              }
          }
          }
        }
      },
      "Explorers": {
        "Explorer": {
          "Active": true,
          "Kestrel": {
            "Endpoints": {
              "Http": {
                "Url": "http://0.0.0.0:4531"
              },
              "Https": {
                "Url": "https://0.0.0.0:4532",
                "Certificate": {
                  "Subject": "localhost",
                  "Store": "My",
                  "Location": "CurrentUser",
                  "AllowInvalid": true
                }
              }
          }
          }
        }
      },
      "Pulses": {
        "Pulse": {
          "Active": true,
          "Kestrel": {
            "Endpoints": {
              "Http": {
                "Url": "http://0.0.0.0:4541"
              },
              "Https": {
                "Url": "https://0.0.0.0:4542",
                "Certificate": {
                  "Subject": "localhost",
                  "Store": "My",
                  "Location": "CurrentUser",
                  "AllowInvalid": true
                }
              }
          }
          }
        }
      }
    }
  }
}