From 59c24dd64ac2ada3801e4ddc75c21609febcc195 Mon Sep 17 00:00:00 2001 From: Louis King Date: Mon, 18 May 2026 16:41:46 +0100 Subject: [PATCH] Updated meshcore-packet-capture contrib example to support MeshRank --- contrib/packetcapture/.env.example | 38 ++++++++++++++---------- contrib/packetcapture/docker-compose.yml | 35 +++++++++++----------- 2 files changed, 41 insertions(+), 32 deletions(-) diff --git a/contrib/packetcapture/.env.example b/contrib/packetcapture/.env.example index 2ba372b..8687efb 100644 --- a/contrib/packetcapture/.env.example +++ b/contrib/packetcapture/.env.example @@ -44,26 +44,34 @@ ADVERT_INTERVAL_HOURS=11 # LetsMesh (optional) # --------------------------------------------------------------------------- # Contribute captured packets to the LetsMesh network. -# Enable one or both servers to share data for the public mesh map. # See https://letsmesh.net for more info. -ENABLE_LETSMESH_US=false -ENABLE_LETSMESH_EU=true + +# Enable LetsMesh MQTT endpoint +LETSMESH_ENABLE=false +# Specify LetsMesh MQTT region ("eu" or "us") +LETSMESH_REGION=eu + +# --------------------------------------------------------------------------- +# MeshRank (optional) +# --------------------------------------------------------------------------- +# Contribute captured packets to the MeshRank. +# See https://meshrank.net/become-an-observer for more info. + +# Enable MeshRank MQTT endpoint +MESHRANK_ENABLE=false +# Specify MeshRank MQTT configuration +MESHRANK_UPLINK_KEY= # --------------------------------------------------------------------------- # Community Hub MQTT Broker (required) # --------------------------------------------------------------------------- # Your community MeshCore Hub's MQTT broker. Captured packets are sent here # for your local network dashboard. -# -# TLS (production / reverse proxy): -CUSTOM_MQTT_HOST=mqtt.example.com -CUSTOM_MQTT_PORT=443 -CUSTOM_MQTT_TLS=true -# CUSTOM_MQTT_AUDIENCE must match the MQTT_TOKEN_AUDIENCE on your broker -CUSTOM_MQTT_AUDIENCE=mqtt.example.com -# Local network (no TLS) — uncomment and adjust these instead: -# CUSTOM_MQTT_HOST=192.168.1.100 -# CUSTOM_MQTT_PORT=1883 -# CUSTOM_MQTT_TLS=false -# CUSTOM_MQTT_AUDIENCE=mqtt.localhost +# Enable MeshCore Hub MQTT endpoint +MESHCOREHUB_ENABLE=false +# Specify MeshCore Hub MQTT credentials/configuration +MESHCOREHUB_MQTT_HOST=mqtt.example.com +MESHCOREHUB_MQTT_PORT=443 +MESHCOREHUB_MQTT_TLS=true +MESHCOREHUB_MQTT_AUDIENCE=mqtt.example.com diff --git a/contrib/packetcapture/docker-compose.yml b/contrib/packetcapture/docker-compose.yml index dc27158..80d846f 100644 --- a/contrib/packetcapture/docker-compose.yml +++ b/contrib/packetcapture/docker-compose.yml @@ -11,32 +11,33 @@ services: environment: - PACKETCAPTURE_CONNECTION_TYPE=${CONNECTION_TYPE:-serial} - PACKETCAPTURE_SERIAL_PORTS=${SERIAL_PORT:-/dev/ttyUSB0} - # MQTT Broker 1 - LetsMesh Analyzer (US) - - PACKETCAPTURE_MQTT1_ENABLED=${ENABLE_LETSMESH_US:-false} - - PACKETCAPTURE_MQTT1_SERVER=mqtt-us-v1.letsmesh.net + # MQTT Broker 1 - LetsMesh Analyzer + - PACKETCAPTURE_MQTT1_ENABLED=${LETSMESH_ENABLE:-false} + - PACKETCAPTURE_MQTT1_SERVER=mqtt-${LETSMESH_REGION:-eu}-v1.letsmesh.net - PACKETCAPTURE_MQTT1_PORT=443 - PACKETCAPTURE_MQTT1_TRANSPORT=websockets - PACKETCAPTURE_MQTT1_USE_TLS=true - PACKETCAPTURE_MQTT1_USE_AUTH_TOKEN=true - - PACKETCAPTURE_MQTT1_TOKEN_AUDIENCE=mqtt-us-v1.letsmesh.net + - PACKETCAPTURE_MQTT1_TOKEN_AUDIENCE=mqtt-${LETSMESH_REGION:-eu}-v1.letsmesh.net - PACKETCAPTURE_MQTT1_KEEPALIVE=120 - # MQTT Broker 2 - LetsMesh Analyzer (EU) - - PACKETCAPTURE_MQTT2_ENABLED=${ENABLE_LETSMESH_EU:-false} - - PACKETCAPTURE_MQTT2_SERVER=mqtt-eu-v1.letsmesh.net - - PACKETCAPTURE_MQTT2_PORT=443 - - PACKETCAPTURE_MQTT2_TRANSPORT=websockets + # MQTT Broker 2 - MeshRank.net + - PACKETCAPTURE_MQTT2_ENABLED=${MESHRANK_ENABLE:-false} + - PACKETCAPTURE_MQTT2_SERVER=meshrank.net + - PACKETCAPTURE_MQTT2_PORT=8883 + - PACKETCAPTURE_MQTT2_TRANSPORT=tcp - PACKETCAPTURE_MQTT2_USE_TLS=true - - PACKETCAPTURE_MQTT2_USE_AUTH_TOKEN=true - - PACKETCAPTURE_MQTT2_TOKEN_AUDIENCE=mqtt-eu-v1.letsmesh.net + - PACKETCAPTURE_MQTT2_TLS_VERIFY=true - PACKETCAPTURE_MQTT2_KEEPALIVE=120 - # IPNet MQTT Broker - - PACKETCAPTURE_MQTT3_ENABLED=true - - PACKETCAPTURE_MQTT3_SERVER=${CUSTOM_MQTT_HOST} - - PACKETCAPTURE_MQTT3_PORT=${CUSTOM_MQTT_PORT:-443} + - PACKETCAPTURE_MQTT2_TOPIC_PACKETS=meshrank/uplink/${MESHRANK_UPLINK_KEY}/{PUBLIC_KEY}/packets + - PACKETCAPTURE_MQTT2_TOPIC_STATUS=meshrank/uplink/${MESHRANK_UPLINK_KEY}/{PUBLIC_KEY}/status + # MQTT Broker 3 - MeshCore Hub + - PACKETCAPTURE_MQTT3_ENABLED=${MESHCOREHUB_ENABLE:-false} + - PACKETCAPTURE_MQTT3_SERVER=${MESHCOREHUB_MQTT_HOST} + - PACKETCAPTURE_MQTT3_PORT=${MESHCOREHUB_MQTT_PORT:-443} + - PACKETCAPTURE_MQTT3_TOKEN_AUDIENCE=${MESHCOREHUB_MQTT_AUDIENCE} + - PACKETCAPTURE_MQTT3_USE_TLS=${MESHCOREHUB_MQTT_TLS:-true} - PACKETCAPTURE_MQTT3_TRANSPORT=websockets - - PACKETCAPTURE_MQTT3_USE_TLS=${CUSTOM_MQTT_TLS:-true} - PACKETCAPTURE_MQTT3_USE_AUTH_TOKEN=true - - PACKETCAPTURE_MQTT3_TOKEN_AUDIENCE=${CUSTOM_MQTT_AUDIENCE} - PACKETCAPTURE_MQTT3_KEEPALIVE=120 # Area/Origin - PACKETCAPTURE_IATA=${IATA:-STN}