2.2 KiB
Meshview
This project watches a MQTT topic for meshtastic messages, imports them to a
database and has a web UI to view them.
An example of a currently running instace for the San Francisco Bay Area mesh runs at:
https://meshview.bayme.sh
https://view.azmsh.net/
Requires python3.11 or above.
Preparing
Clone the repo from github with:
git clone --recurse-submodules https://github.com/pablorevilla-meshtastic/meshview.git
Note
It is important to include the
--recurse-submodulesflag or the meshtastic protobufs won't be included.
Create a python virtual environment:
cd meshview
python3 -m venv env
Install the environment requirements:
./env/bin/pip install -r requirements.txt
You also need to install graphviz:
sudo apt-get install graphviz
Copy sample.config.ini to config.ini:
cp sample.config.ini config.ini
Edit config.ini and change the MQTT server, and Web server settings.
nano config.ini
[server]
bind = *
port = 8081
tls_cert =
acme_challenge =
[site]
domain = http://meshview.bayme.sh
title = Bay Area Mesh
message =
# Map structure
map_top_left_lat=39
map_top_left_lon=-123
map_bottom_right_lat=36
map_bottom_right_lon=-121
[mqtt]
server = mqtt.bayme.sh
topics = ["msh/US/bayarea/#", "msh/US/CA/mrymesh/#"]
port = 1883
username = meshdev
password = large4cats
[database]
connection_string = sqlite+aiosqlite:///packets.db
Running Meshview
Start the database connection.
./env/bin/python startdb.py
Start the web server.
./env/bin/python main.py
Note
You can specify the path to your
config.inifile with the run command argument--config./env/bin/python startdb.py --config /path/to/config.ini ./env/bin/python main.py --config /path/to/config.ini
Running Meshview with mvrun.py
mvrun.pystartsstartdb.pyandmain.pyin their own subprocess threads and combines their terminal output.mvrun.pyaccepts the--configrun command.
./env/bin/python mvrun.py
Now you can hit http://localhost:8081/ (if you did not change the web server port )