The Platform is configured via parameters that can be provided via a Environment variables Config file, 


Currently most servers are configures using .yaml files. We are planning to switch to .toml format. The support does support both format in all versions.


Each value is loaded from different locations (highest priority first, e.g. 1. overrides 2.):

  1. Environment variables
  2. Config File
  3. Command line Flags
  4. Default values


Commandline and Environment Variables

Some options are only available via Environment Variables 

Environment VariableCommandline parameterDescriptionVersion

--configDefile path of config file (default: 
lobaro-iot-platform.yml)

LOB_JSON_LOGGING=1--json_logging=1Enable JSON Logging>= 1.84.1


Configuration File


lobaro-backend.toml (Default Configuration)
# This is a generated example config file
# Plase change the default values as required

# stay in maintenance mode even after DB updates
MaintenanceMode = false
# Enable debug log output
Debug = false
# TCP port for Tekelek devices
TekelekTcpPort = 54345
# TCP port for Dragino devices
DraginoTcpPort = 5600
# Enable Hardware Provisioning
EnableProvisioning = false
# DevEUI Blocks for Hardware Provisioning
DevEUIBlocks = []
# IMEI Blocks for Hardware Provisioning. The check digit can be omitted; if present, it will be verified.
ImeiBlocks = []

# Logging related configuration parameters
[Logging]

# Frontend HTTP Server Configuration
[Server]
# Frontend URL without trailing slash (not needed when using a single domain)
FrontendUrl = ''
# Port to listen on, deprecated in favour of Bind. When Bins is set Port is ignored
Port = 0
# Address to bind to, e.g. :80
Bind = ':80'
# Enable development mode. Not safe for production!
# Authentication might be disabled.
DevMode = false
# Token secret to encrypt API Tokens. When changed, all existing Tokens are invalidated.
ApiTokenSecret = ''
# Token secret to encrypt User Tokens. When changed, all existing Tokens are invalidated.
OauthTokenSecret = ''
# Token secret to encrypt User Refresh Tokens. When changed, all existing Tokens are invalidated.
OauthRefreshTokenSecret = ''
# Directory where all file based data is stored
DataDir = './data'
# Timeout for HTTP requests in milliseconds
RequestTimeoutMs = 600000

# DTLS Configuration, used by CoAPs Server
[Server.DtlsConfig]
DtlsCertDir = ''
DtlsCertName = ''
AcceptPoolSize = 10000

# Customer specific branding configuration
[Branding]
PlatformName = 'IoT Platform'
FrontendBaseUrl = ''
DefaultLogoUrl = '/static/branding/logo.svg'
LegalDisclosureUrl = 'https://www.lobaro.com/contact/'
ParserDocUrl = 'https://doc.lobaro.com/x/Y4B5'
DisplayDocLinks = true
IntegrationDocUrl = 'https://doc.lobaro.com/x/YIB5'
AllowRegistration = false
Favicon = '/static/img/favicon.ico'

# Postgres Database Configuration
[Database]
Database = 'postgres'
# Schema for the database, default is public. If empty string the search_path will be determined by the db
Schema = 'public'
Username = 'postgres'
Password = 'admin'
Host = 'localhost'
Port = 5432
SslMode = 'disable'
MaxOpenConns = 90
MaxIdleConns = 20
# Enable debug log output for the database
Debug = false
AutoFixMigration = false
# Threshold for slow queries in milliseconds
SlowQueryThresholdMs = 5000
# Run DB updates before starting the core services
MigrateBeforeMaintenance = false

# Cache Configuration
[Database.Cache]
# Expiration time for the device cache in seconds, 0 = no cache
DeviceExpirationSec = 600
# Disable the local cache
LocalCacheDisabled = false
# Expiration time for the local cache in seconds
LocalCacheExpirationSec = 3600
# Purge time for the local cache in seconds
LocalCachePurgeSec = 3600

# Email Server settings
[Email]
Server = ''
Tls = false
Username = ''
Password = ''
Sender = ''

# CoAP(s) Server Configuration
[CoapServer]
# CoAP port
CoapPort = 5683
# CoAPs port
CoapsPort = 5684
# Defines in milliseconds the maximal duration how long the server will process a CoAP request before returning a result or an error
CoapRequestTimeoutMs = 30000
# Defines in milliseconds how long the server will wait to resolve a pending downlink before sending an ACK without downlink information. Does not override CoapRequestTimeoutMs. Explanation: Under load the db could take longer to find a possible scheduled downlink. In this case the server would abandon the downlink query and send an ACK to the requesting device.
CoapDownlinkTimeoutMs = 10000

# Digimondo Platform specific settings
[Digimondo]
ApiKey = ''

# MQTT Broker Configuration for outbound MQTT Integrations
[Mqtt]
Name = ''
ClientId = ''
Broker = ''
Username = ''
Password = ''

# Internal MQTT Broker Configuration
[MqttBrokerConfig]
StartBroker = false
AdminUsername = 'admin'
AdminPassword = 'admin'
# port used for broker
Port = 1883

# DevEUI Provisioning Configuration
[DevEUIConfig]
# When set to true, the server will assign a new DevEUI when a device with that DevEUI already exists in the platform
CheckDeviceExistOnNewEui = false

# Allows to enable/disable single features
[FeatureToggle]
HardwareActivationEnabled = true
WmbusParserApiTabEnabled = true
WmbusParserApiPublic = false

# JavaScript Device Parser Configuration
[Parser]
TimeoutMs = 250

# Device Data Storage related Configuration
[Data]
# Default retention time for data in days, If 0 = no default retention time
DefaultRetentionDays = 0

# Organisation related Configuration
[Organisation]
DefaultUserLimit = 0
DefaultMaxSubOrganisations = 0
MaxDepthSubOrganisations = 10

# NATS related Configuration. NATS is used as the internal Message Broker
[Nats]
# Start the internal nats server, with settings from nats.server
StartNatsServer = true
# Url represents a single NATS server url to which the client will be connecting
Url = ''
# Deprecated: Use url instead
Host = 'localhost'
# NATS server port to connect to
Port = 4222
# Deprecated: Use url instead
Username = ''
# Deprecated: Use url instead
Password = ''
# Seed for the Nkey user as base32
NkeySeed = ''
# Enable NATS for CoAP and CoAPs datasource
EnableCoapDatasource = true
# Size of the NATS client pool for publishing messages
ClientPoolSize = 1000
# Hostname or IP address of the config companion
ConfigCompanionHost = 'localhost'
# Port of the config companion
ConfigCompanionPort = 8099
# Number of workers for the uplink handler queue
UplinkHandlerWorkers = 2
# Number of workers for the integrations queue
IntegrationHandlerWorkers = 4
# Disable the parser service, useful when running external parser services
DisableParser = false

# NATS client configuration
[Nats.Server]
Host = 'localhost'
Port = 4222
HTTPPort = 8222
# Maximum memory (RAM) size of JetStream streams in bytes
JetStreamMaxMemory = 1073741824
# Maximum memory (disk) usage of JetStream streams in bytes
JetStreamMaxStore = 0
# Path to store JetStream data
JetStreamStoreDirectory = './data/jetstream'
# Can be used to set up NATS users and permissions to access and/or monitor the internal NATS server. Can use either User/Password or Nkeys.
InternalUser = []

# general Config regarding the REST API offered by the platform
[RestApiConfig]
LogBodyOnPanic = false
LogHttpHeaderOnPanic = false

# Integration related Configuration
[Integration]
# Default timeout for MQTT integrations in milliseconds
MqttDefaultTimeoutMs = 10000
# Default timeout for HTTP integrations in milliseconds
HttpDefaultTimeoutMs = 10000
# Rate limit for updating logging in case if success Seconds, 0 for no limit
LoggingSuccessRateLimitSeconds = 10
# Rate limit for updating logging in case of error/failur in Seconds, 0 for no limit
LoggingErrorRateLimitSeconds = 10





  • No labels