YaMM - Yet Another Mesh Manager
  • HTML 31.5%
  • JavaScript 30.2%
  • Python 25.5%
  • CSS 11.5%
  • Dockerfile 1.3%
Find a file
2026-03-30 15:44:19 -04:00
config add Dockerfile, config dir, update config path in ingestor.py, and add python reqs file 2026-03-13 18:50:23 -04:00
pb_migrations Fix mobile stylings around composer for more message space, add ability to reply to messages 2026-03-24 10:40:49 -04:00
pb_public Fixed composer-card shrinking issues on mobile 2026-03-30 15:44:19 -04:00
.gitignore fix node highlighting and prep for stable release 2026-03-24 18:50:23 -04:00
Dockerfile fix dockerfile path 2026-03-23 14:58:45 -04:00
ingestor.py Fix mobile stylings around composer for more message space, add ability to reply to messages 2026-03-24 10:40:49 -04:00
README.md Fixed composer-card shrinking issues on mobile 2026-03-30 15:44:19 -04:00
requirements.txt add Dockerfile, config dir, update config path in ingestor.py, and add python reqs file 2026-03-13 18:50:23 -04:00

YaMM - Yet Another Mesh Manager

WARNING: This project is a WIP and currently requires full unauthenticated read/write to the pocketbase API

This project allows you to manage your Wifi connected Meshtastic nodes. It provides full functionality to send/receive messages and traceroutes for any connected radio.

ToDo

In no particular order of priority:

  • Security around API
  • Enforce authentication through Pocketbase for sending messages
  • Fix gateway online/offline/reconnecting status
  • Gateway settings control via UI
    • Mark offline (so it won't attempt to reconnect if temporarily taken offline)
    • Add/delete channels
  • Random traceroute packet route review
  • Send replies to specific messages
  • Auto-replies
  • Light mode / dark mode
  • Mobile friendly interface

Setup

config/config.json

For this app to work you will need to create a config.json in the config/ folder.

{
	"base_url": "http://localhost:8080",
    "pb_url": "http://127.0.0.1:8080",
    "nodes": [
        {"ip": "192.168.1.10", "name": "Meshtastic xxxx", "notifications": true, "ntfy_topic": "meshtastic_xxxx"},
    ],
	"refresh_timeout_mins": 0,
	"ntfy": {
		"enabled": true,
		"url": "https://ntfy.sh",
		"username": "username",
		"password": "password"
	}
}
  • base_url: The hosted address of the YaMM app (used for hyperlinks in NTFY alerts)
  • pb_url: This is the pocketbase database url (leave as is for container version)
  • nodes: Array of nodes to use as gateways in the app
  • ip / name: IP and Name of gateway node (Name should match device name configured on device)
  • refresh_timeout_mins: This is used for debugging. If you have issues with your nodes disconnecting randomly, you can set this to force the system to reconnect to them. ntfy: NTFY server configuration

Docker Compose

Here is a basic docker compose file to get up and running fast.

services:
 yamm:
   image: git.badgumby.com/badgumby/yamm:latest
   container_name: yamm
   restart: unless-stopped
   ports:
     - "8090:8080"
   
   volumes:
     # Persistent database
     - ./mesh_db:/data
     # Persistent configuration for ingestor.py
     - ./mesh_config:/config
     
   environment:
     # Python output to appear in docker logs
     - PYTHONUNBUFFERED=1
     - PB_URL=http://127.0.0.1:8080
     - CONFIG_PATH=/config/config.json

Note: latest will pull the newest stable release. There is also a beta package with the latest bugfixes and features.