Skip to content

Latest commit

 

History

History
156 lines (99 loc) · 5.56 KB

README.md

File metadata and controls

156 lines (99 loc) · 5.56 KB

MeshInfo

Realtime web UI to run against a Meshtastic regional or private mesh network.

Docker Image GitHub Release GitHub commit activity

Overview

MeshInfo is written in Python and connects to an MQTT server that is receiving Meshtastic messages for the purpose of visualizing and inspecting traffic. It (currently) uses a filesystem to persist content, such as node info and telemetry. There are plans to optionally support Postgres and SQLite3 as optional persistance storage methods.

To make deployment to run an instance for your mesh easy, Docker support is included. We recommend using Docker Compose with a personalized version of the docker-compose.yml file to most easily deploy it, but any seasoned Docker user can also use the Docker image alone.

If you use MeshInfo and have a publicly accessible instance, we'd like to know! Drop a note to [email protected] with details and we'll link it below.

See an example instance running on the Sacramento Valley Mesh.

If you are running a high elevation node, preferrably a Router or Repeater node, you might be interested in getting on the notification list for a cavity filter that Kevin and Trevor are having made.

If you're interested in aeronautical (ADS-B/ACARS/VDL/HFDL/SATCOM) or ship tracking (AIS), please take a look at sister project Airframes / Airframes Github.

Screenshots

MeshInfo Screenshot 1 MeshInfo Screenshot 2 MeshInfo Screenshot 3 MeshInfo Screenshot 4 MeshInfo Screenshot 5

Supported Meshtastic Message Types

  • neighborinfo
  • nodeinfo
  • position
  • telemetry
  • text
  • traceroute

Features

Current

  • Chat
  • Map
  • Nodes
  • Node Neighbors
  • Mesh Messages
  • MQTT Messages
  • Telemetry
  • Traceroutes

Upcoming

  • Statistics
  • Overview of Routes

Chat

If you're using this and have questions, or perhaps you want to join in on the dev effort and want to interact collaboratively, come chat with us on #meshinfo on the SacValleyMesh Discord.

Running

Docker Compose (preferred for 24/7 servers)

Setup

Clone the repo
git clone https://github.com/MeshAddicts/meshinfo.git
cd meshinfo
Edit Configuration
  1. Copy and then edit the config.json.sample to config.json.
  2. Copy Caddyfile.sample to Caddyfile then edit the Caddyfile and be sure it is setup for your hostname (FQDN if requiring Let's Encrypt cert to be generated) and your email address for the TLS line.
  • Caddy will request a cert of the FQDN, be sure to specify any subdomain. For example: https://meshinfo.domain.com.

  • If you only wish to use a self-signed certificate and are OK with the browser warnings about this, change the TLS line from your email address to tls internal.

  • If you are using a reverse proxy other than Caddy, change the FQDN to :80 then set your reverse proxy's upstream config to listen to port 80.

  1. Edit the docker-compose.yml (or docker-compose-dev.yml if you are going to use that one) and adjust any port mappings for caddy if you wish to have it run on anything other than 80/443. Keep in mind that if you are not using a FQDN and ports 80/443, Caddy will fail to provision a Let's Encrypt certificate. This is because Let's Encrypt requires 80/443 to be accessible and this is not a limitation of Caddy nor MeshInfo.

To Run

Change to the directory.

cd meshinfo
docker compose pull && docker compose down && docker compose up -d && docker compose ps && docker compose logs -f meshinfo

To Update

git fetch && git pull && docker compose pull && docker compose down && docker compose up -d && docker compose ps && docker compose logs -f meshinfo

Directly (without Docker)

Be sure you have Python 3.12.4 or higher installed.

pip install -r requirements.txt
python main.py

Development

Building a local Docker image

Clone the repository.

git clone https://github.com/MeshAddicts/meshinfo.git

If already existing, be sure to pull updates.

git fetch && git pull

Build. Be sure to specify a related version number and suffix (this example dev5 but could be your name or initials and a number) as this will help prevent collisions in your local image cache when testing.

scripts/docker-build.sh 0.0.1dev5

Running via Docker Compose while developing

docker compose -f docker-compose-dev.yml up --build --force-recreate

You will need to CTRL-C and run again if you make any changes to the python code, but not if you only make changes to the templates.

Release

Tag the release using git and push up the tag. The image will be build by GitHub automatically (see: https://github.com/MeshAddicts/meshinfo/actions/workflows/docker.yml).

git tag v0.0.0 && git push && git push --tags

Contributing

We happily accept Pull Requests!

TODO: Need to rewrite this section.