Merge pull request #216 from ipnet-mesh/chore/packet-capture-tweaks

Updates
This commit is contained in:
JingleManSweep
2026-05-18 21:09:08 +01:00
committed by GitHub
2 changed files with 68 additions and 48 deletions
+27 -20
View File
@@ -4,12 +4,12 @@
# Copy this file to .env and update the values below.
#
# This observer captures MeshCore mesh traffic from a serial device and
# forwards decoded packets to one or more MQTT brokers. By default it sends
# to your community Hub and optionally to the LetsMesh network (US/EU).
# forwards decoded packets to one or more MQTT brokers.
# By default it sends to IPNet's MeshCore Hub MQTT broker.
# Optionally, it can send to LetsMesh (EU/US) and MeshRank.net
#
# Prerequisites:
# - A Meshtastic device connected via USB (or modify CONNECTION_TYPE for network)
# - Your community Hub's MQTT broker must be accessible (WSS with TLS recommended)
# - A MeshCore companion device connected via USB (or modify CONNECTION_TYPE for network)
#
# Quick start:
# cp .env.example .env # then edit .env
@@ -40,38 +40,45 @@ ORIGIN=observer
# Hours between self-advertisement broadcasts (default: 11).
ADVERT_INTERVAL_HOURS=11
# ---------------------------------------------------------------------------
# IPNet (required)
# ---------------------------------------------------------------------------
# Contribute packets to IPNet MeshCore Hub's MQTT broker.
# See: https://ipnt.uk/pages/join
# Enable IPNet MQTT endpoint
IPNET_ENABLE=true
# ---------------------------------------------------------------------------
# LetsMesh (optional)
# ---------------------------------------------------------------------------
# Contribute captured packets to the LetsMesh network.
# See https://letsmesh.net for more info.
# See: https://letsmesh.net
# Region: "eu" or "us"
# 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.
# See: https://meshrank.net/become-an-observer
# Enable MeshRank MQTT endpoint
MESHRANK_ENABLE=false
# Specify MeshRank MQTT configuration
MESHRANK_UPLINK_KEY=
# ---------------------------------------------------------------------------
# Community Hub MQTT Broker (required)
# Custom MQTT Endpoint (optional)
# ---------------------------------------------------------------------------
# Your community MeshCore Hub's MQTT broker. Captured packets are sent here
# for your local network dashboard.
# Contribute captured packets to a custom MQTT broker.
# 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
# CUSTOM_ENABLE=false
# CUSTOM_MQTT_SERVER=
# CUSTOM_MQTT_PORT=
# CUSTOM_MQTT_USE_TLS=
# CUSTOM_MQTT_TLS_VERIFY=
# CUSTOM_MQTT_USERNAME=
# CUSTOM_MQTT_PASSWORD=
# CUSTOM_MQTT_KEEPALIVE=
# CUSTOM_MQTT_TOPIC_PACKETS=
# CUSTOM_MQTT_TOPIC_STATUS=
+41 -28
View File
@@ -9,41 +9,54 @@ services:
volumes:
- data:/app/data
environment:
# Connection
- PACKETCAPTURE_CONNECTION_TYPE=${CONNECTION_TYPE:-serial}
- PACKETCAPTURE_SERIAL_PORTS=${SERIAL_PORT:-/dev/ttyUSB0}
# 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-${LETSMESH_REGION:-eu}-v1.letsmesh.net
- PACKETCAPTURE_MQTT1_KEEPALIVE=120
# 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_TLS_VERIFY=true
- PACKETCAPTURE_MQTT2_KEEPALIVE=120
- 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_AUTH_TOKEN=true
- PACKETCAPTURE_MQTT3_KEEPALIVE=120
# Area/Origin
- PACKETCAPTURE_IATA=${IATA:-STN}
- PACKETCAPTURE_ORIGIN=${ORIGIN:-observer}
# Schedule/Timeouts
- PACKETCAPTURE_ADVERT_INTERVAL_HOURS=${ADVERT_INTERVAL_HOURS:-11}
# MQTT Broker 1 - IPNet
- PACKETCAPTURE_MQTT1_ENABLED=${IPNET_ENABLE:-false}
- PACKETCAPTURE_MQTT1_SERVER=mqtt.ipnt.uk
- PACKETCAPTURE_MQTT1_PORT=443
- PACKETCAPTURE_MQTT1_TOKEN_AUDIENCE=mqtt.ipnt.uk
- PACKETCAPTURE_MQTT1_USE_TLS=true
- PACKETCAPTURE_MQTT1_TRANSPORT=websockets
- PACKETCAPTURE_MQTT1_USE_AUTH_TOKEN=true
- PACKETCAPTURE_MQTT1_KEEPALIVE=120
# MQTT Broker 2 - LetsMesh Analyzer
- PACKETCAPTURE_MQTT2_ENABLED=${LETSMESH_ENABLE:-false}
- PACKETCAPTURE_MQTT2_SERVER=mqtt-${LETSMESH_REGION:-eu}-v1.letsmesh.net
- PACKETCAPTURE_MQTT2_PORT=443
- PACKETCAPTURE_MQTT2_TRANSPORT=websockets
- PACKETCAPTURE_MQTT2_USE_TLS=true
- PACKETCAPTURE_MQTT2_USE_AUTH_TOKEN=true
- PACKETCAPTURE_MQTT2_TOKEN_AUDIENCE=mqtt-${LETSMESH_REGION:-eu}-v1.letsmesh.net
- PACKETCAPTURE_MQTT2_KEEPALIVE=120
# MQTT Broker 3 - MeshRank.net
- PACKETCAPTURE_MQTT3_ENABLED=${MESHRANK_ENABLE:-false}
- PACKETCAPTURE_MQTT3_SERVER=meshrank.net
- PACKETCAPTURE_MQTT3_PORT=8883
- PACKETCAPTURE_MQTT3_TRANSPORT=tcp
- PACKETCAPTURE_MQTT3_USE_TLS=true
- PACKETCAPTURE_MQTT3_TLS_VERIFY=true
- PACKETCAPTURE_MQTT3_KEEPALIVE=120
- PACKETCAPTURE_MQTT3_TOPIC_PACKETS=meshrank/uplink/${MESHRANK_UPLINK_KEY}/{PUBLIC_KEY}/packets
- PACKETCAPTURE_MQTT3_TOPIC_STATUS=meshrank/uplink/${MESHRANK_UPLINK_KEY}/{PUBLIC_KEY}/status
# MQTT Broker 4 - Custom
- PACKETCAPTURE_MQTT4_ENABLED=${CUSTOM_ENABLE:-false}
- PACKETCAPTURE_MQTT4_SERVER=${CUSTOM_MQTT_SERVER}
- PACKETCAPTURE_MQTT4_PORT=${CUSTOM_MQTT_PORT:-8883}
- PACKETCAPTURE_MQTT4_TRANSPORT=${CUSTOM_MQTT_TRANSPORT:-tcp
- PACKETCAPTURE_MQTT4_USE_TLS=${CUSTOM_MQTT_USE_TLS:-true}
- PACKETCAPTURE_MQTT4_TLS_VERIFY=${CUSTOM_MQTT_TLS_VERIFY:-true}
- PACKETCAPTURE_MQTT4_USERNAME=${CUSTOM_MQTT_USERNAME}
- PACKETCAPTURE_MQTT4_PASSWORD=${CUSTOM_MQTT_PASSWORD}
- PACKETCAPTURE_MQTT4_KEEPALIVE=${CUSTOM_MQTT_KEEPALIVE:-120}
- PACKETCAPTURE_MQTT4_TOPIC_PACKETS=${CUSTOM_MQTT_TOPIC_PACKETS}
- PACKETCAPTURE_MQTT4_TOPIC_STATUS=${CUSTOM_MQTT_TOPIC_STATUS}
restart: unless-stopped
volumes: