# mosquitto-cloud.conf — broker MQTT centrale del cloud c4rgo.
# Monta in un container (vedi compose-mqtt.yml). I device vi si collegano in TLS.

per_listener_settings true
persistence true
persistence_location /mosquitto/data/
log_dest stdout
log_type warning
log_type notice

# --- Listener TLS per gli scanner (obbligatorio da remoto) --------------------
listener 8883
protocol mqtt
# Cert del broker firmato dalla C4rgo-CA, CN/SAN = my.c4rgo.cloud
cafile   /mosquitto/certs/ca.crt
certfile /mosquitto/certs/my.c4rgo.cloud.crt
keyfile  /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 /mosquitto/config/passwd
acl_file /mosquitto/config/acl

# --- Listener in chiaro SOLO per i servizi cloud sulla stessa rete docker
# (worker PHP, script di test dentro la rete symfony). Ascolta su tutte le
# interfacce del container perche' il worker gira in un CONTAINER SEPARATO e
# raggiunge il broker come `mqtt:1883` sulla rete `symfony`: un bind su
# 127.0.0.1 lo rifiuterebbe. Resta comunque interno: il compose pubblica solo
# 8883 sull'host, la 1883 non e' mai esposta fuori dalla rete docker; auth
# obbligatoria (password_file + acl) anche qui.
listener 1883 0.0.0.0
allow_anonymous false
password_file /mosquitto/config/passwd
acl_file /mosquitto/config/acl
