Skip to content
Snippets Groups Projects
▓██   ██▓ ▄▄▄       ███▄ ▄███▓  ██████ 
 ▒██  ██▒▒████▄    ▓██▒▀█▀ ██▒▒██    ▒ 
  ▒██ ██░▒██  ▀█▄  ▓██    ▓██░░ ▓██▄   
  ░ ▐██▓░░██▄▄▄▄██ ▒██    ▒██   ▒   ██▒
  ░ ██▒▓░ ▓█   ▓██▒▒██▒   ░██▒▒██████▒▒
   ██▒▒▒  ▒▒   ▓▒█░░ ▒░   ░  ░▒ ▒▓▒ ▒ ░
 ▓██ ░▒░   ▒   ▒▒ ░░  ░      ░░ ░▒  ░ ░
 ▒ ▒ ░░    ░   ▒   ░      ░   ░  ░  ░  
 ░ ░           ░  ░       ░         ░  
 ░ ░                                   

Yet Another Meshtastic Server

Inspired slightly by MeshInfo, MeshSense, Network-Managment-Client, and others

I was unhappy with all of these in some way. They're really good for getting a awesome overview. but I'm a bit of a whore for nice stats and data. This project serves as all that + a full historical backend of a meshtastic network.

What it does (currently)

  • Logs meshtastic packets
  • Saves them to a database
  • Shows nodes in a ugly egui frontend
    • Shows distance to the connected node

What it doesn't (currently)

Rough order of how much I want to add support.

  • Working tiling UI (in progress!)
  • Shows Historical Data as a nice graph
    • SNR (both individual neighbours and overall)
      • RSSI is done per packet, instead of in nodeinfo. this seems... clunky.
      • We're gonna have to log packets coming directly from neighbours, and store the rssi. it seems like that might be the only way to actually get neighbours?
      • potentially show helpful guides on why each node is bad quality. (https://sensing-labs.com/f-a-q/a-good-radio-level/) ?
    • Messages per day?
    • Number of Nodes seen
    • Channel Util
    • any valid SQLite query?
    • Location History
    • Battery
    • Sensor Statisics
  • Live Map of positions
    • Can we show the potential nodes that don't have GPS?
    • Can we use heard traceroutes to map out neighbours in the mesh?
      • Can we send out some traceroutes every few hours to map it if we don't? (some people don't like meshsense for this reason)
  • Generates a nice public dashboard (static http, once every hour?)
  • Supports anything other than TCP Connection.
    • Bluetooth (how? wtf? i hate bluetooth!)
    • Direct Serial (this seems easy?)
      • Serial support can be cheated, ser2net works fine.
    • MQTT for extra nodes?
  • Lets you send messages/packets
  • Supports multiple meshtastic nodes
  • Runs meshtastic (you still need a meshtastic device)
  • Runs ON the meshtastic device (you need a separate device)
    • Maybe in the future we can have this compiled down to wasm, runs in browser and saves the db in browser. hosted on the esp32 itself.
    • Is it small enough once compiled to wasm?
    • Is there support for local database saving?

Installation

You can install this multiple ways.

Docker

  1. use /docs/docker-compose.yaml
  2. docker compose up -d to run it

Native

  1. git clone
  2. cargo run

Documentation & Support

make a pr for /docs or a wiki i guess.

Contributing

make a pr

License

AGPL - don't be a dick, keep it open source.

Credits

Me Me from the past who wrote this idea down Me from the future for completing this project (HA!)