mirror of
https://github.com/pe1hvh/meshcore-gui.git
synced 2026-03-28 17:42:38 +01:00
119 lines
4.0 KiB
YAML
119 lines
4.0 KiB
YAML
# ============================================================================
|
|
# MeshCore Observer — Configuration
|
|
# ============================================================================
|
|
#
|
|
# Copy this file to observer_config.yaml and adjust settings as needed.
|
|
# All settings have sensible defaults — the observer will work without
|
|
# a config file.
|
|
#
|
|
# Author: PE1HVH
|
|
# SPDX-License-Identifier: MIT
|
|
# Copyright: (c) 2026 PE1HVH
|
|
# ============================================================================
|
|
|
|
# ── Observer settings ────────────────────────────────────────────────
|
|
|
|
observer:
|
|
# Path to archive directory (where meshcore_gui/bridge write JSON files)
|
|
archive_dir: "~/.meshcore-gui/archive"
|
|
|
|
# Seconds between archive directory polls
|
|
poll_interval_s: 2.0
|
|
|
|
# Maximum number of messages displayed in dashboard
|
|
max_messages_display: 100
|
|
|
|
# Maximum number of RX log entries displayed in dashboard
|
|
max_rxlog_display: 50
|
|
|
|
# ── GUI settings ─────────────────────────────────────────────────────
|
|
|
|
gui:
|
|
# Dashboard TCP port (GUI=8081, Bridge=9092, Observer=9093)
|
|
port: 9093
|
|
|
|
# Browser tab title
|
|
title: "MeshCore Observer"
|
|
|
|
# ── MQTT Uplink to LetsMesh ──────────────────────────────────────────
|
|
#
|
|
# Publishes RX log packet data to the LetsMesh analyzer
|
|
# (analyzer.letsmesh.net) via MQTT over WebSocket+TLS.
|
|
#
|
|
# DISABLED by default — set enabled: true and provide keys to activate.
|
|
#
|
|
# Required for MQTT:
|
|
# - Device public key (64-char hex)
|
|
# - Device private key (64-char hex) for Ed25519 JWT signing
|
|
# - IATA airport code (3 letters) for topic namespace
|
|
#
|
|
# Private key can be provided via:
|
|
# 1. MESHCORE_PRIVATE_KEY environment variable (recommended)
|
|
# 2. private_key_file path (permissions should be 600)
|
|
# 3. private_key inline (not recommended for production)
|
|
#
|
|
|
|
mqtt:
|
|
# Master enable switch — MUST be explicitly set to true
|
|
enabled: false
|
|
|
|
# 3-letter IATA airport code for your location (used in MQTT topic path)
|
|
# Examples: AMS (Amsterdam), JFK (New York), LHR (London)
|
|
iata: "AMS"
|
|
|
|
# Device identity (required when MQTT is enabled)
|
|
# Can also be set via MESHCORE_PUBLIC_KEY env var
|
|
public_key: ""
|
|
|
|
# Device name shown as 'origin' in published packets
|
|
device_name: "MeshCore Observer"
|
|
|
|
# Private key for Ed25519 JWT authentication
|
|
# SECURITY: prefer private_key_file or MESHCORE_PRIVATE_KEY env var
|
|
private_key: ""
|
|
|
|
# Path to file containing private key (more secure than inline)
|
|
# File should contain only the 64-char hex key, permissions 600
|
|
private_key_file: ""
|
|
|
|
# ── Broker endpoints ──
|
|
# Multiple brokers can be configured (e.g. EU + US)
|
|
brokers:
|
|
- name: "letsmesh-eu"
|
|
server: "mqtt-eu-v1.letsmesh.net"
|
|
port: 443
|
|
transport: "websockets"
|
|
tls: true
|
|
enabled: true
|
|
|
|
- name: "letsmesh-us"
|
|
server: "mqtt-us-v1.letsmesh.net"
|
|
port: 443
|
|
transport: "websockets"
|
|
tls: true
|
|
enabled: false
|
|
|
|
# ── Privacy filter ──
|
|
# Which packet types to upload. Empty list = upload ALL types.
|
|
# Packet types:
|
|
# 0=REQ, 1=RESPONSE, 2=TXT_MSG, 3=ACK, 4=ADVERT,
|
|
# 5=GRP_TXT, 6=GRP_DATA, 7=ANON_REQ, 8=PATH, 9=TRACE
|
|
#
|
|
# Examples:
|
|
# upload_packet_types: [] # Upload everything
|
|
# upload_packet_types: [4] # Only adverts
|
|
# upload_packet_types: [4, 5] # Adverts + group text
|
|
upload_packet_types: []
|
|
|
|
# Seconds between status topic republish (0 = only on connect)
|
|
status_interval_s: 300
|
|
|
|
# Seconds between reconnect attempts
|
|
reconnect_delay_s: 10
|
|
|
|
# Maximum reconnect retries (0 = infinite)
|
|
max_reconnect_retries: 0
|
|
|
|
# JWT token lifetime in seconds (auto-refreshed before expiry)
|
|
token_lifetime_s: 3600
|