Community API Data Sharing Policy

Meshtastic Dashboard: Community API Data Sharing

Your Privacy and Control are Our Priority. This document transparently explains how your Meshtastic Dashboard instance can optionally interact with a Community API (default: https://meshdash.co.uk/api.php). The purpose of this interaction is to help build a collective, publicly viewable map of the Meshtastic network, identify active public nodes, and gather general, non-personally-identifying statistics to understand network growth and health for the benefit of the Meshtastic community.

You are in complete control. Data is shared only if you explicitly enable specific features, primarily through the "Operating Mode" selection during initial setup or later in your dashboard's configuration. This policy details the data involved for each setting, so you can make informed choices. By choosing to enable Community API features, you consent to the data sharing practices outlined for your specific configuration. The default settings are designed with privacy in mind.

Key Configuration Settings

These settings, found in your .mesh-dash_config file, give you granular control over data sharing with the Community API. While the "Operating Mode" selected during setup (or in the UI) often manages these for you, understanding these individual keys is useful for advanced configuration or manual adjustments:

  • COMMUNITY_API_ENABLED: (Boolean) This is the master switch.
    • If false, no data is ever sent. Your dashboard operates in complete isolation.
    • If true, data sharing is governed by the settings below.
  • HEARTBEAT_REMOTE_API_URL: (String) The URL of the community API. Default: https://meshdash.co.uk/api.php.
  • HEARTBEAT_INTERVAL_MINUTES: (Integer) How often heartbeat data is sent. Default: 1.
  • SEND_LOCAL_NODE_LOCATION: (Boolean) Controls if your primary node's location is shared.
    • If true, location can be shared (subject to offset).
    • If false, your node's specific location is not shared.
  • SEND_OTHER_NODES_LOCATION: (Boolean) Determines if location data for other nodes (peers) seen by your local node is relayed.
    • If true, peer location data can be shared (subject to offset).
    • If false, peer location data is not shared by your instance.
  • LOCATION_OFFSET_ENABLED: (Boolean) Key privacy feature.
    • If true, a random offset (fuzzing) is applied to all shared GPS coordinates.
    • If false, any shared locations are sent with the precision received.
  • LOCATION_OFFSET_METERS: (Float) If LOCATION_OFFSET_ENABLED is true, this value (e.g., 500.0) determines the approximate maximum random offset distance.

Data Sent in a Heartbeat (heartbeat_v2 payload)

When community features are enabled that involve sending data, the following base information is typically included in the heartbeat_v2 payload. The specific inclusion of location data is determined by your chosen "Operating Mode" and underlying configuration settings:

  • type: Always "heartbeat_v2".
  • fetched_at_utc: An ISO format UTC timestamp of when the data was gathered by your dashboard.
  • local_node_info: Information about your dashboard's primary Meshtastic node:
    • Node ID, Long Name / Short Name, Hardware Model, Firmware Version, Role, Uptime.
    • Battery Level, Channel Utilization, Air Util TX, and other available metrics.
    • Location Data (Latitude/Longitude): Shared only if enabled by your settings (see "Operating Modes Explained").
  • stats_data: General aggregated statistics (e.g., uptime, device metrics, packet counts).
  • other_nodes_data: An array of data for other Meshtastic nodes (peers) your local node has seen:
    • Node ID, Long Name / Short Name, Last Heard Timestamp, SNR, RSSI, Hop Limit.
    • Location Data (Latitude/Longitude): Shared only if enabled by your settings for peer data (see "Operating Modes Explained").
  • fetch_errors: Any errors encountered by your dashboard while fetching data. Usually null or empty.

Operating Modes Explained

During setup, you select an "Operating Mode." This choice configures several underlying settings to achieve a specific data sharing behavior. Here's what each mode means:

Offline Mode (Isolated)

If you choose this mode:

  • Your MeshDash installation will operate in complete isolation.
  • No data whatsoever (including location, telemetry, or any community-related data) will be sent from your dashboard to the MeshDash Community API or any other external service via the heartbeat mechanism.
  • All community features requiring external data sharing are effectively disabled.
  • This mode sets COMMUNITY_API_ENABLED to false internally.

Device Count & Telemetry Only Mode

If you choose this mode:

  • MeshDash will share anonymous, non-location-specific data to help the community understand network statistics and device usage.
  • This includes: anonymous device counts, general system telemetry (e.g., device hardware model, firmware version, uptime, channel utilization). This data is aggregated and not tied to specific users or precise locations.
  • No personal data or specific node location data (neither yours nor other detected nodes) will be shared.
  • This mode sets COMMUNITY_API_ENABLED to true, but SEND_LOCAL_NODE_LOCATION and SEND_OTHER_NODES_LOCATION are set to false.

Community Access with Location Offset

If you choose this mode:

  • You enable participation in the MeshDash community map with an added layer of privacy for precise locations.
  • Your node's location will be shared, but it will be offset (fuzzed) by a random amount up to the distance you specify during setup (e.g., 500 meters). This allows your node to appear in the correct general area on maps without revealing its exact spot.
  • Location data for other nodes detected by your device will also be shared and similarly offset. This is automatically enabled in this mode to contribute to a richer, privacy-conscious map.
  • Other shared data (heartbeats, anonymized metrics) is similar to "Online Mode."
  • This mode sets COMMUNITY_API_ENABLED, SEND_LOCAL_NODE_LOCATION, and SEND_OTHER_NODES_LOCATION to true. Crucially, it also sets LOCATION_OFFSET_ENABLED to true and uses your specified LOCATION_OFFSET_METERS.

Online Mode (Full Community Participation)

If you choose this mode:

  • You enable full participation in the MeshDash community, sharing data to help build a comprehensive public network map and gather statistics.
  • Your node's exact location will be shared for display on community maps (unless you later manually enable location offset in the config file).
  • Community participation heartbeats and anonymized operational metrics will be shared.
  • You will have an option during setup to also share anonymized location data of other detected nodes. If you enable this, their exact locations (as received by your node) will be shared.
    • If you opt-in: SEND_OTHER_NODES_LOCATION becomes true.
    • If you opt-out: SEND_OTHER_NODES_LOCATION remains false.
  • This mode sets COMMUNITY_API_ENABLED and SEND_LOCAL_NODE_LOCATION to true. LOCATION_OFFSET_ENABLED is typically false by default in this mode to allow for exact mapping, but can be manually changed in the config file.

Important Considerations for You

  • Data Security: While the default Community API (meshdash.co.uk) is operated with the intention of handling data responsibly and uses HTTPS for data in transit, the security of your data ultimately depends on the practices of the API operator. If you change HEARTBEAT_REMOTE_API_URL to a third-party service, you become subject to their privacy policy and security measures. Always ensure you trust the API endpoint you are sending data to.
  • Understanding Anonymization vs. Obfuscation:
    • Choosing an "Operating Mode" that disables location sharing (like "Offline" or "Telemetry Only") means specific location coordinates for relevant nodes are not sent.
    • Choosing "Community Access with Location Offset" or manually enabling LOCATION_OFFSET_ENABLED = true makes shared locations less precise (obfuscated/fuzzed). This is a strong privacy-enhancing measure if you choose to share locations.
  • Your Control and Responsibility: You are in full control of these settings via the "Operating Mode" selection and direct configuration file edits. We encourage you to choose settings that match your comfort level and to understand the implications of the data you share. This policy aims to provide the necessary transparency. The Meshtastic Dashboard software itself does not collect or store your data beyond what's needed for its local operation and what you configure it to send.
  • Purpose of Data Collection by Community API: The data shared with the default Community API (meshdash.co.uk) is intended for public benefit: creating community maps, understanding network statistics, and aiding in the development and improvement of the Meshtastic ecosystem. It is not intended for commercial sale or unrelated tracking.
  • Changes to Policy: If this software or the default Community API's data handling practices change significantly, efforts will be made to update this information. However, it's good practice to review your configuration and this policy periodically.

How to Configure Your Settings

While the initial "Operating Mode" selection during setup configures these settings for you, you can make advanced adjustments by editing the .mesh-dash_config file. This file is typically located in the directory where the Meshtastic Dashboard application is run from. Please refer to the main application's documentation for the precise lookup order.

Below is an example of how these lines might look in your .mesh-dash_config file, reflecting choices made via an "Operating Mode" or manual edits:


# Main switch for all community API features
COMMUNITY_API_ENABLED=true

# URL of the community API
HEARTBEAT_REMOTE_API_URL=https://meshdash.co.uk/api.php

# Interval in minutes for sending heartbeats
HEARTBEAT_INTERVAL_MINUTES=5

# Share your local node's location?
SEND_LOCAL_NODE_LOCATION=true

# Share locations of other nodes your node sees?
SEND_OTHER_NODES_LOCATION=true

# Enable location obfuscation/fuzzing? (Recommended for privacy)
LOCATION_OFFSET_ENABLED=true

# Approximate max offset in meters if fuzzing is enabled
LOCATION_OFFSET_METERS=500
                    

Remember to save the file after making changes. The dashboard will typically pick up these changes on its next scheduled heartbeat or upon restart.

Policy Last Updated: May 18, 2025. Aligned with Setup UI Operating Modes.