Core Configuration
INX-MQTT uses a JSON standard format as a config file. If you are unsure about JSON syntax, you can find more information in the official JSON specs.
You can change the path of the config file by using the -c
or --config
argument while executing inx-mqtt
executable.
For example:
inx-mqtt -c config_defaults.json
You can always get the most up-to-date description of the config parameters by running:
inx-mqtt -h --full
1. Application
Name | Description | Type | Default value |
---|---|---|---|
checkForUpdates | Whether to check for updates of the application or not | boolean | true |
shutdown | Configuration for shutdown | object |
Shutdown
Name | Description | Type | Default value |
---|---|---|---|
stopGracePeriod | The maximum time to wait for background processes to finish during shutdown before terminating the app | string | "5m" |
log | Configuration for log | object |
Log
Name | Description | Type | Default value |
---|---|---|---|
enabled | Whether to store self-shutdown events to a log file | boolean | true |
filePath | The file path to the self-shutdown log | string | "shutdown.log" |
Example:
{
"app": {
"checkForUpdates": true,
"shutdown": {
"stopGracePeriod": "5m",
"log": {
"enabled": true,
"filePath": "shutdown.log"
}
}
}
}
2. Logger
Name | Description | Type | Default value |
---|---|---|---|
level | The minimum enabled logging level | string | "info" |
disableCaller | Stops annotating logs with the calling function's file name and line number | boolean | true |
disableStacktrace | Disables automatic stacktrace capturing | boolean | false |
stacktraceLevel | The level stacktraces are captured and above | string | "panic" |
encoding | The logger's encoding (options: "json", "console") | string | "console" |
outputPaths | A list of URLs, file paths or stdout/stderr to write logging output to | array | stdout |
disableEvents | Prevents log messages from being raced as events | boolean | true |
Example:
{
"logger": {
"level": "info",
"disableCaller": true,
"disableStacktrace": false,
"stacktraceLevel": "panic",
"encoding": "console",
"outputPaths": ["stdout"],
"disableEvents": true
}
}
3. INX
Name | Description | Type | Default value |
---|---|---|---|
address | The INX address to which to connect to | string | "localhost:9029" |
maxConnectionAttempts | The amount of times the connection to INX will be attempted before it fails (1 attempt per second) | uint | 30 |
targetNetworkName | The network name on which the node should operate on (optional) | string | "" |
Example:
{
"inx": {
"address": "localhost:9029",
"maxConnectionAttempts": 30,
"targetNetworkName": ""
}
}
4. MQTT
Name | Description | Type | Default value |
---|---|---|---|
bufferSize | The size of the client buffers in bytes | int | 0 |
bufferBlockSize | The size per client buffer R/W block in bytes | int | 0 |
subscriptions | Configuration for subscriptions | object | |
websocket | Configuration for websocket | object | |
tcp | Configuration for TCP | object |
Subscriptions
Name | Description | Type | Default value |
---|---|---|---|
maxTopicSubscriptionsPerClient | The maximum number of topic subscriptions per client before the client gets dropped (DOS protection) | int | 1000 |
topicsCleanupThresholdCount | The number of deleted topics that trigger a garbage collection of the subscription manager | int | 10000 |
topicsCleanupThresholdRatio | The ratio of subscribed topics to deleted topics that trigger a garbage collection of the subscription manager | float | 1.0 |
Websocket
Name | Description | Type | Default value |
---|---|---|---|
enabled | Whether to enable the websocket connection of the MQTT broker | boolean | true |
bindAddress | The websocket bind address on which the MQTT broker listens on | string | "localhost:1888" |
advertiseAddress | The address of the websocket of the MQTT broker which is advertised to the INX Server (optional). | string | "" |
TCP
Name | Description | Type | Default value |
---|---|---|---|
enabled | Whether to enable the TCP connection of the MQTT broker | boolean | false |
bindAddress | The TCP bind address on which the MQTT broker listens on | string | "localhost:1883" |
auth | Configuration for auth | object | |
tls | Configuration for TLS | object |
Auth
Name | Description | Type | Default value |
---|---|---|---|
enabled | Whether to enable auth for TCP connections | boolean | false |
passwordSalt | The auth salt used for hashing the passwords of the users | string | "0000000000000000000000000000000000000000000000000000000000000000" |
users | The list of allowed users with their password+salt as a scrypt hash | object | [] |
TLS
Name | Description | Type | Default value |
---|---|---|---|
enabled | Whether to enable TLS for TCP connections | boolean | false |
privateKeyPath | The path to the private key file (x509 PEM) for TCP connections with TLS | string | "private_key.pem" |
certificatePath | The path to the certificate file (x509 PEM) for TCP connections with TLS | string | "certificate.pem" |
Example:
{
"mqtt": {
"bufferSize": 0,
"bufferBlockSize": 0,
"subscriptions": {
"maxTopicSubscriptionsPerClient": 1000,
"topicsCleanupThresholdCount": 10000,
"topicsCleanupThresholdRatio": 1
},
"websocket": {
"enabled": true,
"bindAddress": "localhost:1888",
"advertiseAddress": ""
},
"tcp": {
"enabled": false,
"bindAddress": "localhost:1883",
"auth": {
"enabled": false,
"passwordSalt": "0000000000000000000000000000000000000000000000000000000000000000",
"users": null
},
"tls": {
"enabled": false,
"privateKeyPath": "private_key.pem",
"certificatePath": "certificate.pem"
}
}
}
}
5. Profiling
Name | Description | Type | Default value |
---|---|---|---|
enabled | Whether the profiling plugin is enabled | boolean | false |
bindAddress | The bind address on which the profiler listens on | string | "localhost:6060" |
Example:
{
"profiling": {
"enabled": false,
"bindAddress": "localhost:6060"
}
}
6. Prometheus
Name | Description | Type | Default value |
---|---|---|---|
enabled | Whether the prometheus plugin is enabled | boolean | false |
bindAddress | The bind address on which the Prometheus HTTP server listens on | string | "localhost:9312" |
mqttMetrics | Whether to include MQTT metrics | boolean | true |
goMetrics | Whether to include go metrics | boolean | false |
processMetrics | Whether to include process metrics | boolean | false |
promhttpMetrics | Whether to include promhttp metrics | boolean | false |
Example:
{
"prometheus": {
"enabled": false,
"bindAddress": "localhost:9312",
"mqttMetrics": true,
"goMetrics": false,
"processMetrics": false,
"promhttpMetrics": false
}
}