[general] # Log level # # debug=5, info=4, warning=3, error=2, fatal=1, panic=0 log_level=4 # PostgreSQL settings. # # Please note that PostgreSQL 9.5+ is required. [postgresql] # PostgreSQL dsn (e.g.: postgres://user:password@hostname/database?sslmode=disable). # # Besides using an URL (e.g. 'postgres://user:password@hostname/database?sslmode=disable') # it is also possible to use the following format: # 'user=loraserver dbname=loraserver sslmode=disable'. # # The following connection parameters are supported: # # * dbname - The name of the database to connect to # * user - The user to sign in as # * password - The user's password # * host - The host to connect to. Values that start with / are for unix domain sockets. (default is localhost) # * port - The port to bind to. (default is 5432) # * sslmode - Whether or not to use SSL (default is require, this is not the default for libpq) # * fallback_application_name - An application_name to fall back to if one isn't provided. # * connect_timeout - Maximum wait for connection, in seconds. Zero or not specified means wait indefinitely. # * sslcert - Cert file location. The file must contain PEM encoded data. # * sslkey - Key file location. The file must contain PEM encoded data. # * sslrootcert - The location of the root certificate file. The file must contain PEM encoded data. # # Valid values for sslmode are: # # * disable - No SSL # * require - Always SSL (skip verification) # * verify-ca - Always SSL (verify that the certificate presented by the server was signed by a trusted CA) # * verify-full - Always SSL (verify that the certification presented by the server was signed by a trusted CA and the server host name matches the one in the certificate) dsn="postgres://loraserver_ns:loraserver_ns@postgresql/loraserver_ns?sslmode=disable" # Automatically apply database migrations. # # It is possible to apply the database-migrations by hand # (see https://github.com/brocaar/loraserver/tree/master/migrations) # or let LoRa App Server migrate to the latest state automatically, by using # this setting. Make sure that you always make a backup when upgrading Lora # App Server and / or applying migrations. automigrate=true # Redis settings # # Please note that Redis 2.6.0+ is required. [redis] # Redis url (e.g. redis://user:password@hostname/0) # # For more information about the Redis URL format, see: # https://www.iana.org/assignments/uri-schemes/prov/redis url="redis://redis:6379" # Network-server settings. [network_server] # Network identifier (NetID, 3 bytes) encoded as HEX (e.g. 010203) net_id="010203" # Time to wait for uplink de-duplication. # # This is the time that LoRa Server will wait for other gateways to receive # the same uplink frame. Valid units are 'ms' or 's'. # Please note that this value has influence on the uplink / downlink # roundtrip time. Setting this value too high means LoRa Server will be # unable to respond to the device within its receive-window. deduplication_delay="200ms" # Device session expiration. # # The TTL value defines the time after which a device-session expires # after no activity. Valid units are 'ms', 's', 'm', 'h'. Note that these # values can be combined, e.g. '24h30m15s'. device_session_ttl="744h0m0s" # Get downlink data delay. # # This is the time that LoRa Server waits between forwarding data to the # application-server and reading data from the queue. A higher value # means that the application-server has more time to schedule a downlink # queue item which can be processed within the same uplink / downlink # transaction. # Please note that this value has influence on the uplink / downlink # roundtrip time. Setting this value too high means LoRa Server will be # unable to respond to the device within its receive-window. get_downlink_data_delay="100ms" # LoRaWAN regional band configuration. # # Note that you might want to consult the LoRaWAN Regional Parameters # specification for valid values that apply to your region. # See: https://www.lora-alliance.org/lorawan-for-developers [network_server.band] # LoRaWAN band to use. # # Valid values are: # * AS_923 # * AU_915_928 # * CN_470_510 # * CN_779_787 # * EU_433 # * EU_863_870 # * IN_865_867 # * KR_920_923 # * RU_864_870 # * US_902_928 name="EU_863_870" # Enforce 400ms dwell time # # Some band configurations define the max payload size for both dwell-time # limitation enabled as disabled (e.g. AS 923). In this case the # dwell time setting must be set to enforce the max payload size # given the dwell-time limitation. For band configuration where the dwell-time is # always enforced, setting this flag is not required. dwell_time_400ms=false # Enforce repeater compatibility # # Most band configurations define the max payload size for both an optional # repeater encapsulation layer as for setups where a repeater will never # be used. The latter case increases the max payload size for some data-rates. # In case a repeater might used, set this flag to true. repeater_compatible=false # LoRaWAN network related settings. [network_server.network_settings] # Installation margin (dB) used by the ADR engine. # # A higher number means that the network-server will keep more margin, # resulting in a lower data-rate but decreasing the chance that the # device gets disconnected because it is unable to reach one of the # surrounded gateways. installation_margin=10 # Class A RX1 delay # # 0=1sec, 1=1sec, ... 15=15sec. A higher value means LoRa Server has more # time to respond to the device as the delay between the uplink and the # first receive-window will be increased. rx1_delay=1 # RX1 data-rate offset # # Please consult the LoRaWAN Regional Parameters specification for valid # options of the configured network_server.band.name. rx1_dr_offset=0 # RX2 data-rate # # When set to -1, the default RX2 data-rate will be used for the configured # LoRaWAN band. # # Please consult the LoRaWAN Regional Parameters specification for valid # options of the configured network_server.band.name. rx2_dr=-1 # RX2 frequency # # When set to -1, the default RX2 frequency will be used. # # Please consult the LoRaWAN Regional Parameters specification for valid # options of the configured network_server.band.name. rx2_frequency=-1 # Enable only a given sub-set of channels # # Use this when ony a sub-set of the by default enabled channels are being # used. For example when only using the first 8 channels of the US band. # # Example: # enabled_uplink_channels=[0, 1, 2, 3, 4, 5, 6, 7] enabled_uplink_channels=[] # Extra channel configuration. # # Use this for LoRaWAN regions where it is possible to extend the by default # available channels with additional channels (e.g. the EU band). # The first 5 channels will be configured as part of the OTAA join-response # (using the CFList field). # The other channels (or channel / data-rate changes) will be (re)configured # using the NewChannelReq mac-command. # # Example: # [[network_server.network_settings.extra_channels]] # frequency=867100000 # min_dr=0 # max_dr=5 # [[network_server.network_settings.extra_channels]] # frequency=867300000 # min_dr=0 # max_dr=5 # [[network_server.network_settings.extra_channels]] # frequency=867500000 # min_dr=0 # max_dr=5 # [[network_server.network_settings.extra_channels]] # frequency=867700000 # min_dr=0 # max_dr=5 # [[network_server.network_settings.extra_channels]] # frequency=867900000 # min_dr=0 # max_dr=5 # Class B settings [network_server.network_settings.class_b] # Ping-slot data-rate. ping_slot_dr=0 # Ping-slot frequency (Hz) # # Set this to 0 to use the default frequency plan for the configured region # (which could be frequency hopping). ping_slot_frequency=0 # Network-server API # # This is the network-server API that is used by LoRa App Server or other # custom components interacting with LoRa Server. [network_server.api] # ip:port to bind the api server bind="0.0.0.0:8000" # ca certificate used by the api server (optional) ca_cert="" # tls certificate used by the api server (optional) tls_cert="" # tls key used by the api server (optional) tls_key="" # Gateway API # # This API is used by the LoRa Channel Manager component to fetch # channel configuration. [network_server.gateway.api] # ip:port to bind the api server bind="0.0.0.0:8002" # CA certificate used by the api server (optional) ca_cert="" # tls certificate used by the api server (optional) tls_cert="" # tls key used by the api server (optional) tls_key="" # JWT secret used by the gateway api server for gateway authentication / authorization jwt_secret="verysecret" # Gateway statistics settings. [network_server.gateway.stats] # Create non-existing gateways on receiving of stats # # When set to true, LoRa Server will create the gateway when it receives # statistics for a gateway that does not yet exist. create_gateway_on_stats=true # Aggregation timezone # # This timezone is used for correctly aggregating the statistics (for example # 'Europe/Amsterdam'). # To get the list of supported timezones by your PostgreSQL database, # execute the following SQL query: # select * from pg_timezone_names; # When left blank, the default timezone of your database will be used. timezone="" # Aggregation intervals to use for aggregating the gateway stats # # Valid options: second, minute, hour, day, week, month, quarter, year. # When left empty, no statistics will be stored in the database. # Note, LoRa App Server expects at least "minute", "day", "hour"! aggregation_intervals=["minute", "hour", "day"] # MQTT gateway backend settings. # # This is the backend communicating with the LoRa gateways over a MQTT broker. [network_server.gateway.backend.mqtt] # MQTT topic templates for the different MQTT topics. # # The meaning of these topics are documented at: # https://docs.loraserver.io/lora-gateway-bridge/use/data/ # # The default values match the default expected configuration of the # LoRa Gateway Bridge MQTT backend. Therefore only change these values when # absolutely needed. # Use "{{ .MAC }}" as an substitution for the LoRa gateway MAC. uplink_topic_template="gateway/+/rx" downlink_topic_template="gateway/{{ .MAC }}/tx" stats_topic_template="gateway/+/stats" ack_topic_template="gateway/+/ack" # MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws) server="tcp://mosquitto:1883" # Connect with the given username (optional) username="" # Connect with the given password (optional) password="" # Quality of service level # # 0: at most once # 1: at least once # 2: exactly once # # Note: an increase of this value will decrease the performance. # For more information: https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels qos=0 # Clean session # # Set the "clean session" flag in the connect message when this client # connects to an MQTT broker. By setting this flag you are indicating # that no messages saved by the broker for this client should be delivered. clean_session=true # Client ID # # Set the client id to be used by this client when connecting to the MQTT # broker. A client id must be no longer than 23 characters. When left blank, # a random id will be generated. This requires clean_session=true. client_id="" # CA certificate file (optional) # # Use this when setting up a secure connection (when server uses ssl://...) # but the certificate used by the server is not trusted by any CA certificate # on the server (e.g. when self generated). ca_cert="" # TLS certificate file (optional) tls_cert="" # TLS key file (optional) tls_key="" # Default join-server settings. [join_server.default] # hostname:port of the default join-server # # This API is provided by LoRa App Server. server="http://appserver:8003" # ca certificate used by the default join-server client (optional) ca_cert="" # tls certificate used by the default join-server client (optional) tls_cert="" # tls key used by the default join-server client (optional) tls_key="" # Network-controller configuration. [network_controller] # hostname:port of the network-controller api server (optional) server="" # ca certificate used by the network-controller client (optional) ca_cert="" # tls certificate used by the network-controller client (optional) tls_cert="" # tls key used by the network-controller client (optional) tls_key=""