Skip to content

Node Configuration

The node configuration file config/nodeconf.yml defines which networks this node joins.

Fields

The fields live under networks[]

Field Type Default What it does
directory string Directory under config/networks/ used to locate config.yml and keys.
node_id string (lowercase) Your node's ID inside this network. Must appear in the network's node_config or the network is skipped.
config_type enum: git local Where to load config/keys from. local: uses config/networks/<directory>/. git: clones/updates git_repo into that directory.
git_repo string null Git URL used when config_type=git. On pull failure, repo will be removed then cloned on next load.
discord_webhook map[name→url] null If set, MeshMon posts node/monitor status transitions to these webhooks once the cluster is consistent.

Discord Webhooks and Notification Clusters

You can enable notifications per network by adding a discord_webhook map to that network’s entry in nodeconf.yml. The key is a human-friendly name, and the value is the Discord webhook URL.

Notification Cluster

A notification cluster is formed when the same webhook (sharing a name and value) is used by two or more nodes on the same network. MeshMon will select a leader to emit the notification. This stops single points of failures and duplicated notifications.

Example

Example (in config/nodeconf.yml):

networks:
  - directory: local-test
    node_id: node1
    config_type: local        # default: local; alternatives: git
    git_repo: null            # required only when config_type: git
    discord_webhook:          # optional; map of name -> webhook URL
      infra-alerts: https://discord.com/api/webhooks/xxx/yyy
  - directory: meshmon-public-network
    node_id: observer
    config_type: git
    git_repo: https://github.com/your-org/meshmon-public-network