# /etc/mosquitto/conf.d/c4rgo-scanner.conf
# Broker MQTT centrale degli scanner c4rgo, versione BARE-METAL (mosquitto di
# sistema, non docker). I device si collegano in TLS su 8883; il worker PHP
# app:scanner:listener gira sullo stesso host e usa il listener locale 1883.
#
# Richiede mosquitto >= 2. Verifica che nessun altro file in conf.d (o il
# /etc/mosquitto/mosquitto.conf principale) definisca gia' un listener in
# conflitto. La persistenza resta quella del config principale Debian
# (persistence_location /var/lib/mosquitto/).

per_listener_settings true

# --- Listener TLS per gli scanner (esterno, obbligatorio da remoto) -----------
listener 8883
protocol mqtt
# Cert firmato dalla C4rgo-CA, CN/SAN = my.c4rgo.cloud (vedi install-broker-baremetal.sh)
cafile   /etc/mosquitto/certs/ca.crt
certfile /etc/mosquitto/certs/my.c4rgo.cloud.crt
keyfile  /etc/mosquitto/certs/my.c4rgo.cloud.key
tls_version tlsv1.2
require_certificate false          # auth via username/password, non client-cert
allow_anonymous false
password_file /etc/mosquitto/c4rgo-scanner.passwd
acl_file      /etc/mosquitto/c4rgo-scanner.acl

# --- Listener locale in chiaro SOLO per il worker PHP sullo stesso host --------
# Qui 127.0.0.1 e' corretto (worker bare-metal in locale), a differenza della
# variante docker che usa 0.0.0.0 per il container separato.
listener 1883 127.0.0.1
allow_anonymous false
password_file /etc/mosquitto/c4rgo-scanner.passwd
acl_file      /etc/mosquitto/c4rgo-scanner.acl
