Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
638 commits
Select commit Hold shift + click to select a range
0a2f7e5
Adding live-map and static pages for the apis
pablorevilla-meshtastic Aug 25, 2025
941de1c
Adding live-map and static pages for the apis
pablorevilla-meshtastic Aug 25, 2025
e796368
Adding live-map and static pages for the apis
pablorevilla-meshtastic Aug 25, 2025
94a03d7
Adding live-map and static pages for the apis
pablorevilla-meshtastic Aug 25, 2025
75eb392
Adding live-map and static pages for the apis
pablorevilla-meshtastic Aug 25, 2025
ad93483
Adding live-map and static pages for the apis
pablorevilla-meshtastic Aug 26, 2025
de50e2b
Adding live-map and static pages for the apis
pablorevilla-meshtastic Aug 26, 2025
b8647ee
Adding live-map and static pages for the apis
pablorevilla-meshtastic Aug 26, 2025
7e80e83
Adding live-map and static pages for the apis
pablorevilla-meshtastic Aug 26, 2025
34fd41c
Adding live-map and static pages for the apis
pablorevilla-meshtastic Aug 26, 2025
fdfbdd5
Fixed bug with nodegraph.html it was not able to handle some characte…
pablorevilla-meshtastic Aug 26, 2025
2176055
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Aug 27, 2025
f72e517
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Aug 27, 2025
93b7276
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Aug 27, 2025
ec02d72
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Aug 27, 2025
d38c587
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Aug 27, 2025
e40b961
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Aug 27, 2025
d305ea4
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Aug 27, 2025
9eae030
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Aug 27, 2025
eccba20
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Aug 27, 2025
2295751
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Aug 27, 2025
9f93602
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Aug 27, 2025
749fc61
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Aug 27, 2025
0629b7b
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Aug 27, 2025
34cdb03
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Aug 28, 2025
7b8f2e6
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Aug 28, 2025
a022795
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Aug 28, 2025
d0799f4
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Aug 28, 2025
a4533c3
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Aug 28, 2025
0500be4
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Aug 28, 2025
1ccc3bf
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Aug 28, 2025
c374167
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Aug 29, 2025
396d919
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Aug 29, 2025
6836d42
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Aug 29, 2025
ce8717b
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Aug 29, 2025
52dc78b
added direction arrow heads to main map edges shown on node click
jschrempp Aug 31, 2025
c42173c
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Sep 3, 2025
783972e
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Sep 4, 2025
8c01a7b
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Sep 5, 2025
5bef93b
Merge pull request #40 from jschrempp/arrowheads
pablorevilla-meshtastic Sep 8, 2025
1e7fcca
Added the traceroute and neighbours to the map
pablorevilla-meshtastic Sep 8, 2025
3eca96a
feat: Fill screen with map
alecperkins Sep 10, 2025
a93f8d7
feat: Add colors and weighting to graph, condense labels
alecperkins Sep 10, 2025
868a165
Added API pages and moved chat to API/JS
pablorevilla-meshtastic Sep 11, 2025
81fe835
Added API pages and moved chat to API/JS
pablorevilla-meshtastic Sep 11, 2025
d69a795
Added API pages and moved chat to API/JS
pablorevilla-meshtastic Sep 11, 2025
9c41719
nodelist now also works with API
pablorevilla-meshtastic Sep 11, 2025
7e76424
Merge pull request #46 from alecperkins/feature/map-fill-screen
pablorevilla-meshtastic Sep 12, 2025
aea81f7
nodelist now also works with API
pablorevilla-meshtastic Sep 12, 2025
3897ce2
Merge pull request #47 from alecperkins/feature/graph-colors
pablorevilla-meshtastic Sep 12, 2025
285db92
Merge remote-tracking branch 'origin/master'
pablorevilla-meshtastic Sep 12, 2025
1687633
nodelist now also works with API
pablorevilla-meshtastic Sep 12, 2025
fd57310
nodelist now also works with API
pablorevilla-meshtastic Sep 12, 2025
bb5dba2
New charts added to stats as we have access not to nodes via API
pablorevilla-meshtastic Sep 12, 2025
93bad96
New charts added to stats as we have access not to nodes via API
pablorevilla-meshtastic Sep 12, 2025
b09ea71
Update sample.config.ini
pablorevilla-meshtastic Sep 13, 2025
8dec274
New charts added to stats as we have access not to nodes via API
pablorevilla-meshtastic Sep 13, 2025
48a4be8
New charts added to stats as we have access not to nodes via API
pablorevilla-meshtastic Sep 15, 2025
a532fb0
Merge remote-tracking branch 'origin/master'
pablorevilla-meshtastic Sep 15, 2025
77cf3df
Fixed multiple responses for active map
pablorevilla-meshtastic Sep 15, 2025
6b4a33a
Fixed multiple responses for active map
pablorevilla-meshtastic Sep 15, 2025
4201c54
Fixed multiple responses for active map
pablorevilla-meshtastic Sep 15, 2025
d5272c1
added index to API list
pablorevilla-meshtastic Sep 17, 2025
a69d1a5
Added Database cleanup feature to startdb.py
pablorevilla-meshtastic Sep 18, 2025
9d4ebc0
Added Database cleanup feature to startdb.py
pablorevilla-meshtastic Sep 18, 2025
f06fa3a
Added Database cleanup feature to startdb.py
pablorevilla-meshtastic Sep 18, 2025
61b7447
make the /api/config endpoint restrictive to what it provides. It wil…
pablorevilla-meshtastic Sep 18, 2025
6e223a0
make the /api/config endpoint restrictive to what it provides. It wil…
pablorevilla-meshtastic Sep 18, 2025
bbab5fe
make the /api/config endpoint restrictive to what it provides. It wil…
pablorevilla-meshtastic Sep 18, 2025
ddb691d
fixed spelling of variable firehouse_interval
pablorevilla-meshtastic Sep 18, 2025
2b9422e
fixed spelling of variable firehouse_interval
pablorevilla-meshtastic Sep 18, 2025
cad3051
Work on db cleanup tool
pablorevilla-meshtastic Sep 18, 2025
6eb1cdb
Work on db cleanup tool
pablorevilla-meshtastic Sep 18, 2025
4f4c18f
Work on db cleanup tool
pablorevilla-meshtastic Sep 18, 2025
7c40c64
Work on db cleanup tool
pablorevilla-meshtastic Sep 18, 2025
608fde9
Work on db cleanup tool
pablorevilla-meshtastic Sep 18, 2025
ec0dd4e
Work on status page
pablorevilla-meshtastic Sep 18, 2025
4ffd287
Work on DB cleanup tool
pablorevilla-meshtastic Sep 19, 2025
0da2ef8
Work on DB cleanup tool
pablorevilla-meshtastic Sep 19, 2025
f9a6f3d
Work on DB cleanup tool
pablorevilla-meshtastic Sep 19, 2025
02f63fc
Work on DB cleanup tool
pablorevilla-meshtastic Sep 19, 2025
e2c1e31
Update README.md
pablorevilla-meshtastic Sep 19, 2025
e6424e3
Update README.md
pablorevilla-meshtastic Sep 20, 2025
86b4fa6
Update README.md
pablorevilla-meshtastic Sep 20, 2025
03e198b
Updates stats with pie chart and report for channel
pablorevilla-meshtastic Sep 22, 2025
8d7f72a
Updates stats with pie chart and report for channel
pablorevilla-meshtastic Sep 22, 2025
a094b3e
Merge branch 'master' into master
pablorevilla-meshtastic Sep 25, 2025
85f04f4
Merge pull request #36 from madeofstown/master
pablorevilla-meshtastic Sep 25, 2025
5068f7a
Updates stats with pie chart and report for channel
pablorevilla-meshtastic Sep 25, 2025
11537fd
Merge remote-tracking branch 'origin/master'
pablorevilla-meshtastic Sep 25, 2025
3cd93c0
Updates stats with pie chart and report for channel
pablorevilla-meshtastic Sep 25, 2025
a20dafe
Updates stats with pie chart and report for channel
pablorevilla-meshtastic Sep 25, 2025
561d410
Updates stats with pie chart and report for channel
pablorevilla-meshtastic Sep 25, 2025
ee640b2
Update .gitmodules
pablorevilla-meshtastic Sep 25, 2025
238ac40
testing new integration
pablorevilla-meshtastic Sep 25, 2025
550a266
update protobuf
pablorevilla-meshtastic Sep 25, 2025
40c5d4e
update protobuf
pablorevilla-meshtastic Sep 25, 2025
0a522f9
Fix Client_BASE not showing in Mesh Graphs
Cloud-121 Sep 30, 2025
396e5cc
Minor README Tweaks and gitignore add
jkrauska Oct 1, 2025
c7f5467
Add url parameters to /map to support zoomed view
jkrauska Oct 1, 2025
81a2c0c
update protobuf
pablorevilla-meshtastic Oct 1, 2025
fc28dcc
Merge pull request #52 from jkrauska/master
pablorevilla-meshtastic Oct 1, 2025
44ddfe7
update protobuf
pablorevilla-meshtastic Oct 1, 2025
baeaf29
Merge pull request #51 from Cloud-121/master
pablorevilla-meshtastic Oct 1, 2025
db87039
Merge pull request #53 from jkrauska/jkrauska/mapzoom
pablorevilla-meshtastic Oct 1, 2025
7146f69
update protobuf
pablorevilla-meshtastic Oct 1, 2025
d2d1874
Fixed bug on edges API
pablorevilla-meshtastic Oct 1, 2025
2723022
Add structured logging and improved startup/shutdown handling
jkrauska Oct 2, 2025
f167e87
Merge pull request #57 from jkrauska/jkrauska/startupLogging
pablorevilla-meshtastic Oct 3, 2025
215817a
Cleanup the install process
pablorevilla-meshtastic Oct 3, 2025
b4fda0b
Merge remote-tracking branch 'origin/master'
pablorevilla-meshtastic Oct 3, 2025
a9b16d6
work on error where packet ids could be duplicate and crash the loop
pablorevilla-meshtastic Oct 3, 2025
aa9922e
work on error where packet ids could be duplicate and crash the loop
pablorevilla-meshtastic Oct 3, 2025
e25ff22
Add Ruff formatting and pre-commit hooks
jkrauska Oct 4, 2025
3603014
Added maps coordinates to /api/config
pablorevilla-meshtastic Oct 4, 2025
35212d4
Merge branch 'master' into jkrauska/ruffFormat
jkrauska Oct 4, 2025
ab101dd
Merge pull request #61 from jkrauska/jkrauska/ruffFormat
pablorevilla-meshtastic Oct 4, 2025
e28d248
Automate ruff in github action
jkrauska Oct 4, 2025
5d267ef
Remove unused code
pablorevilla-meshtastic Oct 4, 2025
fbd6fcb
Merge pull request #62 from jkrauska/ruffAutomation
pablorevilla-meshtastic Oct 4, 2025
e1bada8
Bump ruff version - fix open call from lang work
jkrauska Oct 4, 2025
beefb4c
Merge pull request #64 from jkrauska/ruffVersionFix
pablorevilla-meshtastic Oct 4, 2025
3e673f3
Fix for api/edges traceback
jkrauska Oct 7, 2025
adda666
Add Favorites and Remember Filters
jkrauska Oct 7, 2025
7c92b06
use ruff format
jkrauska Oct 7, 2025
9811102
Merge pull request #66 from jkrauska/apiEdges
pablorevilla-meshtastic Oct 7, 2025
30ba603
Merge pull request #67 from jkrauska/nodeListFavorites
pablorevilla-meshtastic Oct 7, 2025
23d66c0
add database indexes
jkrauska Oct 8, 2025
6013100
fix for ruff
jkrauska Oct 8, 2025
4a1737e
fix for loranet.pl
jkrauska Oct 8, 2025
d7b830e
Merge pull request #69 from jkrauska/lornet.pl
pablorevilla-meshtastic Oct 9, 2025
ae0b094
Merge pull request #68 from jkrauska/profileTop
pablorevilla-meshtastic Oct 10, 2025
d6fadd9
Start adding language support
pablorevilla-meshtastic Oct 11, 2025
712aea5
Start adding language support
pablorevilla-meshtastic Oct 11, 2025
29174a6
Start adding language support
pablorevilla-meshtastic Oct 11, 2025
87643e4
Start adding language support
pablorevilla-meshtastic Oct 11, 2025
4ac3262
Start adding language support
pablorevilla-meshtastic Oct 11, 2025
60e7389
Start adding language support
pablorevilla-meshtastic Oct 11, 2025
d561d1a
Start adding language support
pablorevilla-meshtastic Oct 11, 2025
257bf7f
Add channel filters to stats, chat, and firehose views
Oct 11, 2025
b7752bc
Map: activity time filters
Oct 12, 2025
b35acde
Add channel-aware activity filters and API-driven dashboards
Oct 15, 2025
bcd007e
Merge pull request #73 from nullrouten0/maphours-stacked
pablorevilla-meshtastic Oct 15, 2025
ea10a65
Start adding language support
pablorevilla-meshtastic Oct 15, 2025
636ab3e
Start adding language support
pablorevilla-meshtastic Oct 15, 2025
318bf83
Revert "Maphours changes stacked with filtering additions"
pablorevilla-meshtastic Oct 15, 2025
c23a650
fixed map to show only channels with locations
Oct 15, 2025
114cd98
Merge branch 'master' into 10-15-25-bugs
pablorevilla-meshtastic Oct 15, 2025
c13a851
Merge pull request #75 from nullrouten0/10-15-25-bugs
pablorevilla-meshtastic Oct 15, 2025
084647e
Start adding language support
pablorevilla-meshtastic Oct 15, 2025
155ef89
Merge remote-tracking branch 'origin/master'
pablorevilla-meshtastic Oct 15, 2025
021bc54
Start adding language support
pablorevilla-meshtastic Oct 15, 2025
454c8ff
Start adding language support
pablorevilla-meshtastic Oct 15, 2025
954cd46
fixing node graph selector
Oct 16, 2025
a002cde
Revert "fixed map to show only channels with locations"
pablorevilla-meshtastic Oct 16, 2025
5d687da
Merge pull request #76 from pablorevilla-meshtastic/revert-75-10-15-2…
pablorevilla-meshtastic Oct 16, 2025
7f94bc0
Merge branch 'master' into revert-73-maphours-stacked
pablorevilla-meshtastic Oct 16, 2025
65ada1b
Merge pull request #77 from pablorevilla-meshtastic/revert-73-maphour…
pablorevilla-meshtastic Oct 16, 2025
c5a1009
added channel filtering min_packets, and allowlist, fixed javascript …
Oct 16, 2025
8b0c7a1
Start adding language support
pablorevilla-meshtastic Oct 16, 2025
3cca445
worked on making map and base all API driven
pablorevilla-meshtastic Oct 17, 2025
e4a6de3
worked on making map and base all API driven
pablorevilla-meshtastic Oct 17, 2025
52ca8a4
Merge branch 'master' into 10-15-25-bugs2
pablorevilla-meshtastic Oct 17, 2025
d56ee8f
ruff fixes
Oct 17, 2025
d52b7d0
Merge pull request #78 from nullrouten0/10-15-25-bugs2
pablorevilla-meshtastic Oct 17, 2025
a15b039
Revert "Add configurable channel filtering with allowlist and minimum…
pablorevilla-meshtastic Oct 18, 2025
c909ff5
Merge pull request #80 from pablorevilla-meshtastic/revert-78-10-15-2…
pablorevilla-meshtastic Oct 18, 2025
75d0d9e
worked on making map and base all API driven
pablorevilla-meshtastic Oct 18, 2025
a4b51ac
worked on making map and base all API driven
pablorevilla-meshtastic Oct 18, 2025
d5fb589
worked on making map and base all API driven
pablorevilla-meshtastic Oct 18, 2025
635353f
worked on making map and base all API driven
pablorevilla-meshtastic Oct 22, 2025
58244bf
worked on making map and base all API driven
pablorevilla-meshtastic Oct 22, 2025
13aa73e
worked on making map and base all API driven
pablorevilla-meshtastic Oct 22, 2025
d9b1d5a
worked on making map and base all API driven
pablorevilla-meshtastic Oct 22, 2025
cbe4895
worked on making map and base all API driven
pablorevilla-meshtastic Oct 22, 2025
ad8835a
worked on making map and base all API driven
pablorevilla-meshtastic Oct 22, 2025
f7f932d
worked on making map and base all API driven
pablorevilla-meshtastic Oct 23, 2025
3ea2809
render traceroutes on top
jkrauska Oct 27, 2025
8db8e90
use ruff format
jkrauska Oct 27, 2025
c4f2e3f
Merge pull request #87 from jkrauska/traceLines
pablorevilla-meshtastic Oct 28, 2025
6886a97
Add Salzburg/Austria to list of running instances
Oct 31, 2025
54f7f1b
worked on making map and base all API driven
pablorevilla-meshtastic Oct 31, 2025
986ef8e
Merge pull request #92 from io235/master
pablorevilla-meshtastic Oct 31, 2025
a0e5bb0
worked on making map and base all API driven
pablorevilla-meshtastic Oct 31, 2025
0a54890
Merge remote-tracking branch 'origin/master'
pablorevilla-meshtastic Oct 31, 2025
f11455e
worked on making map and base all API driven
pablorevilla-meshtastic Oct 31, 2025
d61427d
worked on making map and base all API driven
pablorevilla-meshtastic Oct 31, 2025
47a2291
worked on making map and base all API driven
pablorevilla-meshtastic Nov 2, 2025
ed33bfe
worked on making map and base all API driven
pablorevilla-meshtastic Nov 2, 2025
60ae777
worked on making map and base all API driven
pablorevilla-meshtastic Nov 2, 2025
e68cdf8
test commit
jkrauska Nov 3, 2025
e774286
Version 3.0.0 Feature Release - Target Before Thanksgiving! (#96)
jkrauska Nov 28, 2025
32ad8e3
Fix search 2 (#108)
jkrauska Nov 30, 2025
705b0b7
worked on making map and base all API driven
pablorevilla-meshtastic Nov 30, 2025
5609d18
worked on making map and base all API driven
pablorevilla-meshtastic Nov 30, 2025
2149fed
Fixed Sort nodes by firmware in nodelist.html
pablorevilla-meshtastic Nov 30, 2025
fd653f8
Fixed Sort nodes by firmware in nodelist.html
pablorevilla-meshtastic Dec 1, 2025
191a01a
update version date
pablorevilla-meshtastic Dec 1, 2025
198afcc
Update multi-language support. So far Spanish and english.
pablorevilla-meshtastic Dec 2, 2025
679071c
Update multi-language support. So far Spanish and english.
pablorevilla-meshtastic Dec 2, 2025
0543aeb
Update multi-language support. So far Spanish and english.
pablorevilla-meshtastic Dec 2, 2025
41f7bf4
Update multi-language support. So far Spanish and english.
pablorevilla-meshtastic Dec 2, 2025
ad42c1a
Update multi-language support. So far Spanish and english.
pablorevilla-meshtastic Dec 3, 2025
7744ced
Update multi-language support. So far Spanish and english.
pablorevilla-meshtastic Dec 4, 2025
13a094b
Update multi-language support. So far Spanish and english.
pablorevilla-meshtastic Dec 4, 2025
60c4d22
Update multi-language support. So far Spanish and english.
pablorevilla-meshtastic Dec 4, 2025
960a7ef
Fix README.md details
pablorevilla-meshtastic Dec 4, 2025
3162649
Fix README.md details
pablorevilla-meshtastic Dec 4, 2025
989da23
efficiency improvement for map.html. Now it only download the edges t…
pablorevilla-meshtastic Dec 4, 2025
cd036b8
efficiency improvement node.html now it only queries the needed node …
pablorevilla-meshtastic Dec 6, 2025
8aa1c59
minor fix to langauge dictionary
pablorevilla-meshtastic Dec 6, 2025
2fd36b4
minor fix on node.html table of tackets shows to and from not just from.
pablorevilla-meshtastic Dec 8, 2025
2b02166
minor fix on node.html table of tackets shows to and from not just from.
pablorevilla-meshtastic Dec 8, 2025
d3bf0ed
minor fix on node.html table of tackets shows to and from not just from.
pablorevilla-meshtastic Dec 8, 2025
3d6c01f
minor fix on node.html table of tackets shows to and from not just from.
pablorevilla-meshtastic Dec 8, 2025
00aa321
Fix chart on node.html.
pablorevilla-meshtastic Dec 10, 2025
4326e12
Fix chart on node.html.
pablorevilla-meshtastic Dec 10, 2025
e5bbf97
Fix chart on node.html.
pablorevilla-meshtastic Dec 10, 2025
350aa9e
Fix chart on node.html.
pablorevilla-meshtastic Dec 10, 2025
0ce64ac
Fix chart on node.html.
pablorevilla-meshtastic Dec 10, 2025
79fa3f6
Fix chart on node.html.
pablorevilla-meshtastic Dec 24, 2025
c4453fb
Modify packet.html to sort by hop count.
pablorevilla-meshtastic Dec 24, 2025
71fcda2
Modify top.html to add paging
pablorevilla-meshtastic Dec 30, 2025
b41b249
Modify top.html to add paging
pablorevilla-meshtastic Dec 31, 2025
b764771
Modify top.html to add paging
pablorevilla-meshtastic Dec 31, 2025
00cc2ab
Modify node.html to add statistics
pablorevilla-meshtastic Dec 31, 2025
e9dcca1
Modify node.html to add statistics
pablorevilla-meshtastic Dec 31, 2025
924d223
Modify node.html to add statistics
pablorevilla-meshtastic Jan 4, 2026
f75d6bf
Modify node.html to add statistics
pablorevilla-meshtastic Jan 4, 2026
9408201
Modify node.html to add statistics
pablorevilla-meshtastic Jan 4, 2026
64a55a3
Modify node.html to add statistics
pablorevilla-meshtastic Jan 4, 2026
383b576
Modify node.html to add statistics
pablorevilla-meshtastic Jan 4, 2026
539410d
Modify node.html to add statistics
pablorevilla-meshtastic Jan 4, 2026
1220f0b
Modify node.html to add statistics
pablorevilla-meshtastic Jan 4, 2026
b72bc5d
Modify packet.html to add distance
pablorevilla-meshtastic Jan 4, 2026
e48e946
Modify packet.html to add distance
pablorevilla-meshtastic Jan 4, 2026
f7644a9
Changes to node.html. fix some of the data
pablorevilla-meshtastic Jan 7, 2026
9686622
Changes to node.html. fix some of the data
pablorevilla-meshtastic Jan 7, 2026
b2bb934
Changes to nodelist.html. fix some of the data
pablorevilla-meshtastic Jan 7, 2026
1d58aab
Changes to nodelist.html. fix some of the data
pablorevilla-meshtastic Jan 7, 2026
ffc7340
Changes to nodelist.html. fix some of the data
pablorevilla-meshtastic Jan 8, 2026
df26df0
Changes to node.html. fix some of the data
pablorevilla-meshtastic Jan 8, 2026
5715591
Add node status indicator and improve favorites handling in nodelist
pablorevilla-meshtastic Jan 9, 2026
cb4cc28
fix speed of node list rendering
pablorevilla-meshtastic Jan 9, 2026
9912f6b
testing commit message functionality
pablorevilla-meshtastic Jan 9, 2026
da31794
Bump version to 3.0.2 and update release date to 2026-1-9
pablorevilla-meshtastic Jan 9, 2026
e12e3a2
Database change to remove import time columns
pablorevilla-meshtastic Jan 9, 2026
f85e783
Adding code to work with multiple databases types.
pablorevilla-meshtastic Jan 12, 2026
fa98f56
Made a cople of changes to the time handling and database config.
pablorevilla-meshtastic Jan 13, 2026
c9639d8
Fix Time function on store.py
pablorevilla-meshtastic Jan 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# This keeps Docker from including hostOS virtual environment folders
env/
.venv/

# Database files and backups
*.db
*.db-shm
*.db-wal
backups/
*.db.gz
52 changes: 52 additions & 0 deletions .github/workflows/container.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Build container

on:
push:

jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
# list of Docker images to use as base name for tags
images: |
ghcr.io/${{ github.repository }}
# generate Docker tags based on the following events/attributes
tags: |
type=ref,event=branch
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=match,pattern=v\d.\d.\d,value=latest
- name: Login to GitHub Container Registry
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
file: ./Containerfile
push: ${{ github.event_name != 'pull_request' }}
labels: ${{ steps.meta.outputs.labels }}
tags: ${{ steps.meta.outputs.tags }}
platforms: linux/amd64,linux/arm64
# optional cache (speeds up rebuilds)
cache-from: type=gha
cache-to: type=gha,mode=max
39 changes: 39 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Ruff

on:
pull_request:
paths:
- "**/*.py"
- "pyproject.toml"
- "ruff.toml"
- ".pre-commit-config.yaml"

jobs:
ruff:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: "3.13"

- name: Cache Ruff
uses: actions/cache@v4
with:
path: ~/.cache/ruff
key: ruff-${{ runner.os }}-${{ hashFiles('**/pyproject.toml', '**/ruff.toml') }}

- name: Install Ruff
run: pip install "ruff==0.13.3"

# Lint (with GitHub annotation format for inline PR messages)
- name: Ruff check
run: ruff check --output-format=github .

# Fail PR if formatting is needed
- name: Ruff format (check-only)
run: ruff format --check .

# TODO: Investigate only applying to changed files and possibly apply fixes
45 changes: 45 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,48 @@
env/*
__pycache__/*
meshview/__pycache__/*
alembic/__pycache__/*
meshtastic/protobuf/*

# Database files
packets.db
packets*.db
*.db
*.db-shm
*.db-wal

# Database backups
backups/
*.db.gz

# Process files
meshview-db.pid
meshview-web.pid

# Config and logs
/table_details.py
config.ini
*.log

# Screenshots
screenshots/*

# Python
python/nanopb
__pycache__/
*.pyc
*.pyo
*.pyd
.Python

# IDE
.vscode/
.idea/
*.swp
*.swo
*~

# OS
.DS_Store
Thumbs.db
packets.db-journal
1 change: 1 addition & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

8 changes: 8 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.13.3 # pin the latest you’re comfortable with
hooks:
- id: ruff
args: [--fix, --exit-non-zero-on-fix] # fail if it had to change files
- id: ruff-format

204 changes: 204 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,204 @@
# AI Agent Guidelines for Meshview

This document provides context and guidelines for AI coding assistants working on the Meshview project.

## Project Overview

Meshview is a real-time monitoring and diagnostic tool for Meshtastic mesh networks. It provides web-based visualization and analysis of network activity, including:

- Real-time packet monitoring from MQTT streams
- Interactive map visualization of node locations
- Network topology graphs showing connectivity
- Message traffic analysis and conversation tracking
- Node statistics and telemetry data
- Packet inspection and traceroute analysis

## Architecture

### Core Components

1. **MQTT Reader** (`meshview/mqtt_reader.py`) - Subscribes to MQTT topics and receives mesh packets
2. **Database Manager** (`meshview/database.py`, `startdb.py`) - Handles database initialization and migrations
3. **MQTT Store** (`meshview/mqtt_store.py`) - Processes and stores packets in the database
4. **Web Server** (`meshview/web.py`, `main.py`) - Serves the web interface and API endpoints
5. **API Layer** (`meshview/web_api/api.py`) - REST API endpoints for data access
6. **Models** (`meshview/models.py`) - SQLAlchemy database models
7. **Decode Payload** (`meshview/decode_payload.py`) - Protobuf message decoding

### Technology Stack

- **Python 3.13+** - Main language
- **aiohttp** - Async web framework
- **aiomqtt** - Async MQTT client
- **SQLAlchemy (async)** - ORM with async support
- **Alembic** - Database migrations
- **Jinja2** - Template engine
- **Protobuf** - Message serialization (Meshtastic protocol)
- **SQLite/PostgreSQL** - Database backends (SQLite default, PostgreSQL via asyncpg)

### Key Patterns

- **Async/Await** - All I/O operations are asynchronous
- **Database Migrations** - Use Alembic for schema changes (see `docs/Database-Changes-With-Alembic.md`)
- **Configuration** - INI file-based config (`config.ini`, see `sample.config.ini`)
- **Modular API** - API routes separated into `meshview/web_api/` module

## Project Structure

```
meshview/
├── alembic/ # Database migration scripts
├── docs/ # Technical documentation
├── meshview/ # Main application package
│ ├── static/ # Static web assets (HTML, JS, CSS)
│ ├── templates/ # Jinja2 HTML templates
│ ├── web_api/ # API route handlers
│ └── *.py # Core modules
├── main.py # Web server entry point
├── startdb.py # Database manager entry point
├── mvrun.py # Combined runner (starts both services)
├── config.ini # Runtime configuration
└── requirements.txt # Python dependencies
```

## Development Workflow

### Setup

1. Use Python 3.13+ virtual environment

### Running

- **Database**: `./env/bin/python startdb.py`
- **Web Server**: `./env/bin/python main.py`
- **Both**: `./env/bin/python mvrun.py`


## Code Style

- **Line length**: 100 characters (see `pyproject.toml`)
- **Linting**: Ruff (configured in `pyproject.toml`)
- **Formatting**: Ruff formatter
- **Type hints**: Preferred but not strictly required
- **Async**: Use `async def` and `await` for I/O operations

## Important Files

### Configuration
- `config.ini` - Runtime configuration (server, MQTT, database, cleanup)
- `sample.config.ini` - Template configuration file
- `alembic.ini` - Alembic migration configuration

### Database
- `meshview/models.py` - SQLAlchemy models (Packet, Node, Traceroute, etc.)
- `meshview/database.py` - Database initialization and session management
- `alembic/versions/` - Migration scripts

### Core Logic
- `meshview/mqtt_reader.py` - MQTT subscription and message reception
- `meshview/mqtt_store.py` - Packet processing and storage
- `meshview/decode_payload.py` - Protobuf decoding
- `meshview/web.py` - Web server routes and handlers
- `meshview/web_api/api.py` - REST API endpoints

### Templates
- `meshview/templates/` - Jinja2 HTML templates
- `meshview/static/` - Static files (HTML pages, JS, CSS)

## Common Tasks

### Adding a New API Endpoint

1. Add route handler in `meshview/web_api/api.py`
2. Register route in `meshview/web.py` (if needed)
3. Update `docs/API_Documentation.md` if public API

### Database Schema Changes

1. Modify models in `meshview/models.py`
2. Create migration: `alembic revision --autogenerate -m "description"`
3. Review generated migration in `alembic/versions/`
4. Test migration: `alembic upgrade head`
5. **Never** modify existing migration files after they've been applied

### Adding a New Web Page

1. Create template in `meshview/templates/`
2. Add route in `meshview/web.py`
3. Add navigation link if needed (check existing templates for pattern)
4. Add static assets if needed in `meshview/static/`

### Processing New Packet Types

1. Check `meshview/decode_payload.py` for existing decoders
2. Add decoder function if new type
3. Update `meshview/mqtt_store.py` to handle new packet type
4. Update database models if new data needs storage


## Key Concepts

### Meshtastic Protocol
- Uses Protobuf for message serialization
- Packets contain various message types (text, position, telemetry, etc.)
- MQTT topics follow pattern: `msh/{region}/{subregion}/#`

### Database Schema
- **packet** - Raw packet data
- **node** - Mesh node information
- **traceroute** - Network path information
- **packet_seen** - Packet observation records

### Real-time Updates
- Web pages use Server-Sent Events (SSE) for live updates
- Map and firehose pages auto-refresh based on config intervals
- API endpoints return JSON for programmatic access

## Best Practices

1. **Always use async/await** for database and network operations
2. **Use Alembic** for all database schema changes
3. **Follow existing patterns** - check similar code before adding new features
4. **Update documentation** - keep `docs/` and README current
5. **Test migrations** - verify migrations work both up and down
6. **Handle errors gracefully** - log errors, don't crash on bad packets
7. **Respect configuration** - use `config.ini` values, don't hardcode

## Common Pitfalls

- **Don't modify applied migrations** - create new ones instead
- **Don't block the event loop** - use async I/O, not sync
- **Don't forget timezone handling** - timestamps are stored in UTC
- **Don't hardcode paths** - use configuration values
- **Don't ignore MQTT reconnection** - handle connection failures gracefully

## Resources

- **Main README**: `README.md` - Installation and basic usage
- **Docker Guide**: `README-Docker.md` - Container deployment
- **API Docs**: `docs/API_Documentation.md` - API endpoint reference
- **Migration Guide**: `docs/Database-Changes-With-Alembic.md` - Database workflow
- **Contributing**: `CONTRIBUTING.md` - Contribution guidelines

## Version Information

- **Current Version**: 3.0.0 (November 2025)
- **Python Requirement**: 3.13+
- **Key Features**: Alembic migrations, automated backups, Docker support, traceroute return paths


## Rules for robots
- Always run ruff check and ruff format after making changes (only on python changes)


---

When working on this project, prioritize:
1. Maintaining async patterns
2. Following existing code structure
3. Using proper database migrations
4. Keeping documentation updated
5. Testing changes thoroughly



Loading