Files
meshview/README.md
Pablo Revilla 421cb802e4 Changes:
- Added the link to another sample instance
2025-03-28 09:04:09 -07:00

100 lines
2.2 KiB
Markdown

# Meshview
![node](screenshots/nodeinfo.png)
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:
``` bash
https://meshview.bayme.sh
```
``` bash
https://view.azmsh.net/
```
Requires **`python3.11`** or above.
## Preparing
Clone the repo from github with:
``` bash
git clone --recurse-submodules https://github.com/pablorevilla-meshtastic/meshview.git
```
> [!NOTE]
> It is important to include the `--recurse-submodules` flag or the meshtastic protobufs won't be included.
Create a python virtual environment:
``` bash
cd meshview
```
``` bash
python3 -m venv env
```
Install the environment requirements:
``` bash
./env/bin/pip install -r requirements.txt
```
You also need to install `graphviz`:
``` bash
sudo apt-get install graphviz
```
Copy `sample.config.ini` to `config.ini`:
``` bash
cp sample.config.ini config.ini
```
Edit `config.ini` and change the MQTT server, and Web server settings.
```bash
nano config.ini
```
```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.
``` bash
./env/bin/python startdb.py
```
Start the web server.
``` bash
./env/bin/python main.py
```
> [!NOTE]
> You can specify the path to your `config.ini` file with the run command argument `--config`
> ``` bash
>./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.py` starts `startdb.py` and `main.py` in their own subprocess threads and combines their terminal output.
- `mvrun.py` accepts the `--config` run command.
``` bash
./env/bin/python mvrun.py
```
Now you can hit http://localhost:8081/ ***(if you did not change the web server port )***