205 lines
5.6 KiB
TOML
205 lines
5.6 KiB
TOML
# Logging.
|
|
[logging]
|
|
|
|
# Log level.
|
|
#
|
|
# Options are: trace, debug, info, warn error.
|
|
level="info"
|
|
|
|
|
|
# PostgreSQL configuration.
|
|
[postgresql]
|
|
|
|
# PostgreSQL DSN.
|
|
#
|
|
# Format example: postgres://<USERNAME>:<PASSWORD>@<HOSTNAME>/<DATABASE>?sslmode=<SSLMODE>.
|
|
#
|
|
# SSL mode options:
|
|
# * disable - Do not use TLS
|
|
# * prefer - Attempt to connect with TLS but allow sessions without
|
|
# * require - Require the use of TLS
|
|
dsn="postgres://chirpstack:chirpstack@$POSTGRESQL_HOST/chirpstack?sslmode=disable"
|
|
|
|
# Max open connections.
|
|
#
|
|
# This sets the max. number of open connections that are allowed in the
|
|
# PostgreSQL connection pool.
|
|
max_open_connections=10
|
|
|
|
# Min idle connections.
|
|
#
|
|
# This sets the min. number of idle connections in the PostgreSQL connection
|
|
# pool (0 = equal to max_open_connections).
|
|
min_idle_connections=0
|
|
|
|
|
|
# Redis configuration.
|
|
[redis]
|
|
|
|
# Server address or addresses.
|
|
#
|
|
# Set multiple addresses when connecting to a cluster.
|
|
servers=[
|
|
"redis://$REDIS_HOST/",
|
|
]
|
|
|
|
# TLS enabled.
|
|
tls_enabled=false
|
|
|
|
# Redis Cluster.
|
|
#
|
|
# Set this to true when the provided URLs are pointing to a Redis Cluster
|
|
# instance.
|
|
cluster=false
|
|
|
|
|
|
# Network related configuration.
|
|
[network]
|
|
|
|
# Network identifier (NetID, 3 bytes) encoded as HEX (e.g. 010203).
|
|
net_id="10204"
|
|
|
|
# Enabled regions.
|
|
#
|
|
# Multiple regions can be enabled simultaneously. Each region must match
|
|
# the 'name' parameter of the region configuration in '[[regions]]'.
|
|
enabled_regions=[
|
|
# "as923",
|
|
# "as923_2",
|
|
# "as923_3",
|
|
# "as923_4",
|
|
# "au915_0",
|
|
# "cn470_10",
|
|
# "cn779",
|
|
# "eu433",
|
|
"eu868"
|
|
# "in865",
|
|
# "ism2400",
|
|
# "kr920",
|
|
# "ru864",
|
|
# "us915_0",
|
|
# "us915_1",
|
|
]
|
|
|
|
|
|
# API interface configuration.
|
|
[api]
|
|
|
|
# interface:port to bind the API interface to.
|
|
bind="0.0.0.0:8080"
|
|
|
|
# Secret.
|
|
#
|
|
# This secret is used for generating login and API tokens, make sure this
|
|
# is never exposed. Changing this secret will invalidate all login and API
|
|
# tokens. The following command can be used to generate a random secret:
|
|
# openssl rand -base64 32
|
|
secret="7E7bNXrmFoFznYKTqWBUrz5lGBpHx3N2zdabP1jCd5s="
|
|
|
|
|
|
# Global gateway configuration.
|
|
# Please note that backend configuration can be found in the per-region
|
|
# configuration.
|
|
[gateway]
|
|
|
|
# CA certificate and key file (optional).
|
|
#
|
|
# If setting the CA certificate and key file options, ChirpStack
|
|
# will generate client certificates which can be used by the gateway for
|
|
# authentication and authorization. The Common Name of the certificate will
|
|
# be set to the Gateway ID.
|
|
#
|
|
# The ca_key is expected to be in PKCS#8 format (you can use openssl to
|
|
# convert to PKCS#8).
|
|
ca_cert="/etc/chirpstack/certs/ca.pem"
|
|
ca_key="/etc/chirpstack/certs/ca-key.pem"
|
|
|
|
# Certificate lifetime.
|
|
#
|
|
# This defines how long (after generating) the certificate remains valid.
|
|
client_cert_lifetime="365days"
|
|
|
|
# Allow unknown gateways.
|
|
#
|
|
# If set to true, then uplinks received from gateways not configured in
|
|
# ChirpStack will be allowed.
|
|
allow_unknown_gateways=false
|
|
|
|
# RX timestamp max. drift.
|
|
#
|
|
# If the delta between the gateway reported RX timestamp vs ChirpStack
|
|
# server time is bigger than the configured value, then ChirpStack will
|
|
# ignore it. ChirpStack will then use the RX timestamp from the other
|
|
# receiving gateways, or failing that, will fall back onto the current
|
|
# server time.
|
|
rx_timestamp_max_drift="30s"
|
|
|
|
|
|
[integration]
|
|
enabled=["mqtt"]
|
|
|
|
[integration.mqtt]
|
|
# Event topic template.
|
|
event_topic="application/{{application_id}}/device/{{dev_eui}}/event/{{event}}"
|
|
|
|
# Command topic.
|
|
#
|
|
# This is the topic on which the MQTT subscribes for receiving (enqueue) commands.
|
|
command_topic="application/{{application_id}}/device/{{dev_eui}}/command/{{command}}"
|
|
|
|
# Use JSON encoding instead of Protobuf (binary).
|
|
json=true
|
|
|
|
# MQTT server (e.g. scheme://host:port where scheme is tcp, ssl or ws)
|
|
server="ssl://$MQTT_BROKER_HOST:8883/"
|
|
|
|
# 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=false
|
|
|
|
# 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. If left blank,
|
|
# a random id will be generated by ChirpStack.
|
|
client_id="chirpstack"
|
|
|
|
# Keep alive interval.
|
|
#
|
|
# This defines the maximum time that that should pass without communication
|
|
# between the client and server.
|
|
keep_alive_interval="30s"
|
|
|
|
# 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="/etc/chirpstack/certs/ca.pem"
|
|
|
|
# TLS certificate file (optional)
|
|
tls_cert="/etc/chirpstack/certs/client.pem"
|
|
|
|
# TLS key file (PKCS#8) (optional)
|
|
tls_key="/etc/chirpstack/certs/client.key"
|
|
|