potato-mesh
A federated, Meshtastic AND Meshcore node dashboard for your local community. No MQTT clutter, just local LoRa aether.
File Explorer
Download Latest Version (.zip)- guard-bash.py
- guard-edits.py
- api-casing-and-federation-signature.md
- MEMORY.md
- settings.json
- codeql.yml
- docker.yml
- javascript.yml
- license.yml
- mobile.yml
- nix.yml
- python.yml
- README.md
- release.yml
- ruby.yml
- rust.yml
- dependabot.yml
- AndroidManifest.xml
- MainActivity.kt
- background.png
- ic_launcher_monochrome.xml
- ic_mesh_notification.xml
- launch_background.xml
- android12splash.png
- ic_launcher_foreground.png
- splash.png
- android12splash.png
- ic_launcher_foreground.png
- splash.png
- android12splash.png
- android12splash.png
- android12splash.png
- android12splash.png
- android12splash.png
- background.png
- launch_background.xml
- android12splash.png
- ic_launcher_foreground.png
- splash.png
- android12splash.png
- ic_launcher_foreground.png
- splash.png
- android12splash.png
- ic_launcher_foreground.png
- splash.png
- ic_launcher.xml
- ic_launcher.png
- ic_launcher.png
- ic_launcher.png
- ic_launcher.png
- ic_launcher.png
- colors.xml
- styles.xml
- styles.xml
- styles.xml
- styles.xml
- AndroidManifest.xml
- AndroidManifest.xml
- build.gradle.kts
- gradle-wrapper.jar
- gradle-wrapper.properties
- .gitignore
- build.gradle.kts
- gradle.properties
- gradlew
- gradlew.bat
- potato_mesh_reader_android.iml
- settings.gradle.kts
- icon-launcher.png
- icon-splash.png
- icon.png
- monochrom.svg
- potatomesh-logo.svg
- AppFrameworkInfo.plist
- Debug.xcconfig
- Release.xcconfig
- Contents.json
- Icon-App-1024x1024@1x.png
- Icon-App-20x20@1x.png
- Icon-App-20x20@2x.png
- Icon-App-20x20@3x.png
- Icon-App-29x29@1x.png
- Icon-App-29x29@2x.png
- Icon-App-29x29@3x.png
- Icon-App-40x40@1x.png
- Icon-App-40x40@2x.png
- Icon-App-40x40@3x.png
- Icon-App-50x50@1x.png
- Icon-App-50x50@2x.png
- Icon-App-57x57@1x.png
- Icon-App-57x57@2x.png
- Icon-App-60x60@2x.png
- Icon-App-60x60@3x.png
- Icon-App-72x72@1x.png
- Icon-App-72x72@2x.png
- Icon-App-76x76@1x.png
- Icon-App-76x76@2x.png
- Icon-App-83.5x83.5@2x.png
- background.png
- Contents.json
- Contents.json
- LaunchImage.png
- LaunchImage@2x.png
- LaunchImage@3x.png
- README.md
- LaunchScreen.storyboard
- Main.storyboard
- AppDelegate.swift
- Info.plist
- Runner-Bridging-Header.h
- IDEWorkspaceChecks.plist
- WorkspaceSettings.xcsettings
- contents.xcworkspacedata
- Runner.xcscheme
- project.pbxproj
- IDEWorkspaceChecks.plist
- WorkspaceSettings.xcsettings
- contents.xcworkspacedata
- RunnerTests.swift
- .gitignore
- Podfile
- dart_plugin_registrant.dart
- main.dart
- background_sync_manager_test.dart
- cache_test.dart
- main_utilities_test.dart
- mesh_message_test.dart
- mesh_repository_test.dart
- message_seen_tracker_test.dart
- messages_screen_test.dart
- notification_client_test.dart
- notification_sender_test.dart
- settings_screen_test.dart
- theme_preference_store_test.dart
- widget_test.dart
- .gitignore
- analysis_options.yaml
- debug.sh
- pubspec.lock
- pubspec.yaml
- README.md
- release.sh
- __init__.py
- _state.py
- generic.py
- ignored.py
- neighborinfo.py
- nodeinfo.py
- position.py
- radio.py
- telemetry.py
- waypoint.py
- __init__.py
- ble_receive.py
- nodeinfo.py
- __init__.py
- _aliases.py
- channels_meta.py
- factory.py
- identity.py
- nodeinfo_normalize.py
- radio.py
- targets.py
- __init__.py
- _constants.py
- channels.py
- connection.py
- debug_log.py
- decode.py
- handlers.py
- identity.py
- interface.py
- messages.py
- position.py
- provider.py
- runner.py
- telemetry.py
- __init__.py
- _meshcore_patches.py
- meshtastic.py
- meshtastic_udp.py
- meshtastic_udp_decode.py
- meshtastic_udp_socket.py
- __init__.py
- activity.py
- announce.py
- channels.py
- config.py
- connection.py
- CONTRACTS.md
- daemon.py
- decode_payload.py
- events.py
- ingestors.py
- mesh_protocol.py
- node_identity.py
- queue.py
- serialization.py
- utils.py
- 20250206_add_encrypted_message_columns.sql
- 20250301_add_lora_columns.sql
- 20250305_extend_environment_telemetry.sql
- 20250310_add_message_reply_and_emoji_columns.sql
- 20260328_add_protocol_column.sql
- 20260328_add_telemetry_type.sql
- 20260722_add_extended_telemetry_metrics.sql
- 20260722_add_rf_metric_columns.sql
- capture_udp_fixtures.py
- compose.udp.pi.yml
- README.md
- .gitignore
- __init__.py
- Dockerfile
- ingestor_activity.sql
- ingestors.sql
- instances.sql
- mesh.py
- mesh.sh
- messages.sql
- neighbors.sql
- nodes.sql
- positions.sql
- requirements.txt
- telemetry.sql
- traces.sql
- waypoints.sql
- nginx.example.conf
- cli.rs
- config.rs
- main.rs
- matrix.rs
- matrix_server.rs
- potatomesh.rs
- preset.rs
- .gitignore
- Cargo.lock
- Cargo.toml
- Config.toml
- docker-entrypoint.sh
- Dockerfile
- README.md
- check-license-headers.sh
- primary_and_private_capture.jsonl
- README.md
- cypher.rb
- debug.py
- dump.py
- instances.json
- mesh.db
- meshtastic_protobuf_stub.py
- messages.json
- neighbors.json
- nodes.json
- positions.json
- rainbow.csv
- rainbow.json
- rainbow.rb
- telemetry.json
- test_activity_unit.py
- test_announce_unit.py
- test_capture_udp_fixtures_unit.py
- test_channels_unit.py
- test_config_unit.py
- test_connection_unit.py
- test_daemon_unit.py
- test_decode_payload.py
- test_events_unit.py
- test_handlers_unit.py
- test_helpers.py
- test_ingestors_unit.py
- test_interfaces_unit.py
- test_mesh.py
- test_meshcore_reader_patch.py
- test_meshtastic_udp_decode_unit.py
- test_meshtastic_udp_socket_unit.py
- test_meshtastic_udp_unit.py
- test_node_identity_unit.py
- test_provider_unit.py
- test_queue_unit.py
- test_serialization_unit.py
- test_version_sync.py
- test_waypoint_unit.py
- coercions.rb
- decrypted_payloads.rb
- identity.rb
- ingestors.rb
- meshcore_chat.rb
- messages.rb
- neighbors.rb
- node_writes.rb
- positions.rb
- protocol_resolution.rb
- request_helpers.rb
- telemetry.rb
- telemetry_metrics.rb
- traces.rb
- waypoints.rb
- announce.rb
- announcer_threads.rb
- crawl.rb
- crawl_state.rb
- http_client.rb
- instance_fetcher.rb
- instance_metrics.rb
- instance_records.rb
- lifecycle.rb
- peers.rb
- self_instance.rb
- signature.rb
- validation.rb
- asset_helpers.rb
- config_helpers.rb
- html_helpers.rb
- logging_helpers.rb
- node_helpers.rb
- channel_hash.rb
- channel_names.rb
- cipher.rb
- payload_decoder.rb
- protobuf.rb
- rainbow_table.rb
- chat_queries.rb
- common.rb
- federation_queries.rb
- ingestor_queries.rb
- node_queries.rb
- telemetry_queries.rb
- waypoint_queries.rb
- api.rb
- events.rb
- ingest.rb
- root.rb
- api_cache.rb
- asset_cache_control.rb
- data_processing.rb
- database.rb
- errors.rb
- federation.rb
- filesystem.rb
- helpers.rb
- identity.rb
- instances.rb
- networking.rb
- pages.rb
- prometheus.rb
- pubsub.rb
- queries.rb
- retention.rb
- worker_pool.rb
- application.rb
- config.rb
- logging.rb
- meta.rb
- og_image.rb
- sanitizer.rb
- 1-about.md
- meshcore.svg
- meshtastic.svg
- satellite-icon.svg
- basemap-blend.test.js
- basemap-config.test.js
- charts-page.test.js
- chat-entry-renderer.test.js
- chat-format.test.js
- chat-log-highlights.test.js
- chat-log-tabs.test.js
- chat-search.test.js
- chat-tabs.test.js
- config.test.js
- document-stub.js
- dom-environment.js
- dom-environment.test.js
- fake-indexeddb.js
- federation-instance-display.test.js
- federation-page.test.js
- incremental-helpers.test.js
- instance-selector.test.js
- legend-toggle-label.test.js
- main-app-leaflet-stub.js
- main-app-map-init.test.js
- main-app-test-helpers.js
- main-autorefresh.test.js
- main-boot-prefetch.test.js
- main-cache-privacy.test.js
- main-cache-refresh.test.js
- main-chat-render-incremental.test.js
- main-collection-backfill.test.js
- main-filter.test.js
- main-flash.test.js
- main-incremental-refresh.test.js
- main-log-render.test.js
- main-log-snapshot-retention.test.js
- main-node-overlay-lazy.test.js
- main-node-table-cap.test.js
- main-progressive-load.test.js
- main-protocol.test.js
- main-relative-time.test.js
- main-spider-refresh.test.js
- main-sse-refresh.test.js
- main-stats.test.js
- main-update-counts.test.js
- main-view-gating.test.js
- main-waypoints.test.js
- map-activity-card.test.js
- map-auto-fit-controller.test.js
- map-auto-fit-settings.test.js
- map-bounds.test.js
- map-center-reset.test.js
- map-colocated-offset.test.js
- map-legend-visibility.test.js
- map-marker-node-info.test.js
- mesh-activity-chart.test.js
- meshcore-chat-helpers.test.js
- message-limit.test.js
- message-node-hydrator.test.js
- message-replies.test.js
- mobile-menu.test.js
- node-detail-overlay.test.js
- node-details.test.js
- node-link-helpers.test.js
- node-modem-metadata.test.js
- node-page-charts.test.js
- node-page-data.test.js
- node-page.test.js
- node-rendering.test.js
- node-snapshot-normalizer.test.js
- nodes-coordinate-links.test.js
- nodes-map-focus.test.js
- protocol-helpers.test.js
- role-badge-contrast.test.js
- role-helpers.test.js
- shell-counts.test.js
- short-info-overlay-manager.test.js
- short-info-satellites.test.js
- short-info-telemetry.test.js
- snapshot-aggregator.test.js
- sse-app-harness.js
- stats.test.js
- telemetry-format-honesty.test.js
- theme-background.test.js
- trace-paths.test.js
- utils.test.js
- value-helpers.test.js
- age-bucket.test.js
- autorefresh-control.test.js
- boot-prefetch.test.js
- cache-keys.test.js
- cache-lifetime.test.js
- chat-entry-cache.test.js
- chat-entry-keys.test.js
- colocated-hub-icon.test.js
- data-cache-idb.test.js
- data-cache.test.js
- data-fetchers.test.js
- data-merge.test.js
- event-stream.test.js
- flash-targets.test.js
- flash.test.js
- format-utils.test.js
- fullscreen-helpers.test.js
- legend-line-samples.test.js
- long-link-router.test.js
- marker-overlay-preservation.test.js
- node-marker.test.js
- nodes-table-cap.test.js
- nodes-table-ia.test.js
- offline-tile-layer.test.js
- relative-time-ticker.test.js
- sort-comparators.test.js
- table-empty-state.test.js
- tile-coords.test.js
- tile-failure-policy.test.js
- tooltip-html.test.js
- waypoint-layer.test.js
- age-bucket.js
- autorefresh-control.js
- boot-prefetch.js
- cache-keys.js
- cache-lifetime.js
- chat-entry-cache.js
- chat-entry-keys.js
- colocated-hub-icon.js
- constants.js
- data-cache-idb.js
- data-cache.js
- data-fetchers.js
- data-merge.js
- event-stream.js
- filter-helpers.js
- flash-targets.js
- flash.js
- format-utils.js
- fullscreen-helpers.js
- legend-line-samples.js
- long-link-router.js
- marker-overlay-preservation.js
- node-marker.js
- nodes-table-cap.js
- nodes-table-ia.js
- offline-tile-layer.js
- protocol-icons.js
- relative-time-ticker.js
- short-html-renderer.js
- sort-comparators.js
- table-cell-format.js
- table-empty-state.js
- tile-coords.js
- tile-failure-policy.js
- tooltip-html.js
- waypoint-layer.js
- badge.js
- bootstrap.js
- detail-html.js
- messages.js
- neighbor-rendering.js
- role-index.js
- single-node-table.js
- telemetry-charts.js
- traces.js
- waypoints.js
- constants.js
- display-formatters.js
- format-utils.js
- layout.js
- snapshot-data.js
- specs.js
- svg-renderers.js
- tick-builders.js
- basemap-config.js
- charts-page.js
- chat-entry-renderer.js
- chat-format.js
- chat-log-highlights.js
- chat-log-tabs.js
- chat-search.js
- chat-tabs.js
- config.js
- federation-instance-display.js
- federation-page.js
- incremental-helpers.js
- index.js
- instance-selector.js
- main.js
- map-activity-card.js
- map-auto-fit-controller.js
- map-auto-fit-settings.js
- map-bounds.js
- map-center-reset.js
- map-colocated-offset.js
- map-legend-visibility.js
- map-marker-node-info.js
- mesh-activity-chart.js
- meshcore-chat-helpers.js
- message-limit.js
- message-node-hydrator.js
- message-replies.js
- mobile-menu.js
- node-detail-overlay.js
- node-details.js
- node-modem-metadata.js
- node-page-charts.js
- node-page-data.js
- node-page.js
- node-rendering.js
- node-snapshot-normalizer.js
- nodes-coordinate-links.js
- nodes-map-focus.js
- protocol-helpers.js
- role-helpers.js
- settings.js
- short-info-overlay-manager.js
- short-info-satellites.js
- short-info-telemetry.js
- snapshot-aggregator.js
- stats.js
- trace-paths.js
- utils.js
- value-helpers.js
- background.js
- theme.js
- base.css
- .keep
- favicon.ico
- favicon.png
- og-image-default.png
- potatomesh-logo.svg
- export-coverage.js
- asset_helpers_spec.rb
- html_helpers_spec.rb
- node_helpers_spec.rb
- root_helpers_spec.rb
- channel_hash_spec.rb
- channel_names_spec.rb
- rainbow_table_spec.rb
- activity_spec.rb
- api_cache_spec.rb
- app_spec.rb
- asset_cache_control_spec.rb
- asset_import_map_spec.rb
- asset_versioning_spec.rb
- config_spec.rb
- data_processing_spec.rb
- database_spec.rb
- federation_spec.rb
- filesystem_spec.rb
- identity_spec.rb
- ingestors_spec.rb
- instances_spec.rb
- logging_spec.rb
- meshtastic_cipher_spec.rb
- meshtastic_payload_decoder_spec.rb
- meshtastic_protobuf_spec.rb
- meta_spec.rb
- networking_spec.rb
- og_image_spec.rb
- pages_spec.rb
- prometheus_spec.rb
- protocol_spec.rb
- pubsub_spec.rb
- queries_spec.rb
- retention_spec.rb
- rf_metrics_spec.rb
- routes_events_spec.rb
- sanitizer_spec.rb
- seo_spec.rb
- spec_helper.rb
- sse_thread_budget_spec.rb
- ux_audit_spec.rb
- worker_pool_spec.rb
- app.erb
- _chat_panel.erb
- _footer.erb
- _instances_table.erb
- _map_panel.erb
- _nodes_table.erb
- charts.erb
- chat.erb
- federation.erb
- index.erb
- map.erb
- node_detail.erb
- nodes.erb
- page.erb
- app.rb
- app.sh
- Dockerfile
- Gemfile
- package-lock.json
- package.json
- .codecov.yml
- .dockerignore
- .env.example
- .gitignore
- ACCEPTANCE.md
- CHANGELOG.md
- CLAUDE.md
- configure.sh
- docker-compose.dev.yml
- docker-compose.prod.yml
- docker-compose.yml
- DOCKER.md
- Dockerfile
- flake.lock
- flake.nix
- LICENSE
- PROMETHEUS.md
- README.md
- scrot-0.1.png
- scrot-0.2.png
- scrot-0.3.png
- scrot-0.4.png
- scrot-0.5.png
- scrot-0.6.png
- scrot-0.7.png
- SPEC.md
# Installation Guide
git clone https://github.com/l5yth/potato-mesh
Downloads the entire project code from GitHub to your computer.
cd potato-mesh
Moves into the project folder you just downloaded.
2. Official Install Script
Easy Recommendedgem install sinatra sqlite3 rackup puma rspec rack-test rufo prometheus-client
Installs the package published on RubyGems directly.
pip install -U meshtastic
Installs the package published on PyPI directly β no need to clone the source.
Pulled directly from this repo's README.
3. Docker
Easy- Git Needed to download the project code from GitHub.
- Docker Desktop Needed to build and run containers. Install it and keep it running in the background.
docker pull ghcr.io/l5yth/potato-mesh-web-linux-amd64:latest
Type this command into your terminal and run it.
docker pull ghcr.io/l5yth/potato-mesh-web-linux-arm64:latest
Type this command into your terminal and run it.
docker pull ghcr.io/l5yth/potato-mesh-web-linux-armv7:latest
Type this command into your terminal and run it.
docker pull ghcr.io/l5yth/potato-mesh-ingestor-linux-amd64:latest
Type this command into your terminal and run it.
docker pull ghcr.io/l5yth/potato-mesh-ingestor-linux-arm64:latest
Type this command into your terminal and run it.
Pulled directly from this repo's README.
4. Gradle (Java/Kotlin)
Medium- Git Needed to download the project code from GitHub.
- JDK (Java) Required to build and run Java/Kotlin projects.
- Gradle If the repo includes gradlew (Gradle Wrapper), you don't need to install Gradle separately.
cd app/android/app
This project's files live in a subfolder, so move into it first.
./gradlew build
Builds the project using Gradle.
5. Node.js
Easycd web
This project's files live in a subfolder, so move into it first.
npm install
Downloads and installs the libraries listed in package.json.
npm start
Starts the development/run server.
6. Python
Easypython -m venv .venv
Runs the Python script (or module).
pip install -U meshtastic
Installs the package published on PyPI directly β no need to clone the source.
Pulled directly from this repo's README.
7. Rust
Medium- Git Needed to download the project code from GitHub.
- Rust (rustup) Installing via rustup also installs cargo.
cd matrix
This project's files live in a subfolder, so move into it first.
cargo build --release
Compiles the Rust project.
cargo run
Builds and then immediately runs the program.
8. Ruby
Easybundle install
Installs the Ruby libraries listed in the Gemfile.
Pulled directly from this repo's README.
