93 lines
2.4 KiB
Plaintext
93 lines
2.4 KiB
Plaintext
## EMQX 5.x — конфиг для контейнера IoT на платформе Nubes.
|
|
## Вшит в образ naeel/iot-emqx. Auth/ACL URL переопределяются env-переменными
|
|
## (EMQX_AUTHENTICATION__1__URL, EMQX_AUTHORIZATION__SOURCES__1__URL) в deck-UI
|
|
## или kubectl set env — адрес монолита становится известен после его создания.
|
|
|
|
node {
|
|
name = "emqx@127.0.0.1"
|
|
cookie = "iot-emqx-cookie-mvp"
|
|
data_dir = "/opt/emqx/data"
|
|
}
|
|
|
|
## HTTP Auth — монолит проверяет устройства в PostgreSQL (iot_devices).
|
|
authentication = [
|
|
{
|
|
mechanism = password_based
|
|
backend = http
|
|
enable = true
|
|
method = post
|
|
url = "http://iot-service:9090/internal/mqtt/auth"
|
|
body {
|
|
username = "${username}"
|
|
password = "${password}"
|
|
clientid = "${clientid}"
|
|
}
|
|
headers {
|
|
"content-type" = "application/json"
|
|
}
|
|
connect_timeout = 5s
|
|
request_timeout = 5s
|
|
pool_size = 8
|
|
}
|
|
]
|
|
|
|
## ACL — монолит разрешает pub/sub по топикам устройств.
|
|
## no_match = deny: недоступность backend = запрет.
|
|
authorization {
|
|
no_match = deny
|
|
deny_action = disconnect
|
|
cache {
|
|
enable = true
|
|
max_size = 32
|
|
ttl = 1m
|
|
}
|
|
sources = [
|
|
{
|
|
type = http
|
|
enable = true
|
|
method = post
|
|
url = "http://iot-service:9090/internal/mqtt/acl"
|
|
body {
|
|
username = "${username}"
|
|
clientid = "${clientid}"
|
|
action = "${action}"
|
|
topic = "${topic}"
|
|
}
|
|
headers {
|
|
"content-type" = "application/json"
|
|
}
|
|
connect_timeout = 5s
|
|
request_timeout = 5s
|
|
pool_size = 8
|
|
}
|
|
]
|
|
}
|
|
|
|
mqtt {
|
|
max_packet_size = 1MB
|
|
max_topic_levels = 10
|
|
retain_available = false
|
|
}
|
|
|
|
## Listeners: WebSocket — единственный порт контейнера платформы (8083).
|
|
## TCP 1883 остаётся для диагностики (не экспонируется платформой).
|
|
listeners.tcp.default {
|
|
bind = "0.0.0.0:1883"
|
|
max_connections = 1024
|
|
}
|
|
|
|
listeners.ws.default {
|
|
bind = "0.0.0.0:8083"
|
|
websocket {
|
|
mqtt_path = "/mqtt"
|
|
}
|
|
max_connections = 512
|
|
}
|
|
|
|
## Dashboard — для диагностики через port-forward (наружу не экспонируется).
|
|
dashboard {
|
|
listeners.http {
|
|
bind = 18083
|
|
}
|
|
}
|