The Platform is configured via parameters that can be provided via a Environment variables Config file,
Note |
---|
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.):
- Environment variables
- Config File
- Command line Flags
- Default values
Commandline and Environment Variables
Some options are only available via Environment Variables
Environment Variable | Commandline parameter | Description | Version |
---|---|---|---|
--config | Defile path of config file (default: lobaro-iot-platform.yml) | ||
LOB_JSON_LOGGING=1 | --json_logging=1 | Enable JSON Logging | >= 1.84.1 |
Configuration File
Code Block | ||
---|---|---|
| ||
# This is ana generated example config file for the Lobaro Backend # On production systems you can Plase change the default values as required # Enable debug log output Debugstay in maintenance mode even after DB updates MaintenanceMode = false # LicenseEnable keydebug for the Lobaro Backend to unlock certain features Licenselog 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. :808280 Bind = ':808280' # 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' # Deprecated:Postgres useDatabase BrandingConfigConfiguration [WhitelabelDatabase] PlatformNameDatabase = 'postgres' # Postgres Database Configuration [Database] Database Schema for the database, default is public. If empty string the search_path will be determined by the db Schema = 'postgrespublic' 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 inboundoutbound 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] DefaultRetentionDuration # 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 |