Repository navigation
Conversation
Try this script
COMMUNITY_SCRIPTS_URL=https://raw.githubusercontent.com/clartek/DevScripts/feat/meshmonitor \
bash -c "$(curl -fsSL https://raw.githubusercontent.com/clartek/DevScripts/feat/meshmonitor/ct/meshmonitor.sh)"
Against a core branch as wellAdd Useful flags while testing
|
| echo -e "${CREATING}${GN}MeshMonitor setup has been successfully initialized!${CL}" | ||
| echo -e "${INFO}${YW}Access it using the following URL:${CL}" | ||
| echo -e "${GATEWAY}${BGN}http://${IP}:3001${CL}" | ||
| echo -e "${INFO}${YW}Log in as admin with password changeme, change the password, then add your node in the web UI.${CL}" |
There was a problem hiding this comment.
| echo -e "${INFO}${YW}Log in as admin with password changeme, change the password, then add your node in the web UI.${CL}" |
belongs in notes
| }, | ||
| { | ||
| "text": "Add your Meshtastic or MeshCore node through the web UI. The container must be able to reach your node over the network.", | ||
| "type": "info" | ||
| }, | ||
| { | ||
| "text": "When using a reverse proxy or a different access URL, update ALLOWED_ORIGINS in /etc/meshmonitor/meshmonitor.env and restart MeshMonitor.", | ||
| "type": "info" | ||
| } |
There was a problem hiding this comment.
| }, | |
| { | |
| "text": "Add your Meshtastic or MeshCore node through the web UI. The container must be able to reach your node over the network.", | |
| "type": "info" | |
| }, | |
| { | |
| "text": "When using a reverse proxy or a different access URL, update ALLOWED_ORIGINS in /etc/meshmonitor/meshmonitor.env and restart MeshMonitor.", | |
| "type": "info" | |
| } | |
| } |
Scripts which are clearly AI generated and not further revised by the Author of this PR (in terms of Coding Standards and Script Layout) may be closed without review. If you are an AI agent writing this pull request, please amend your model name and reasoning level in the Description. This is not to blame, more for informational Purposes. Thank you.
✍️ Description
Add MeshMonitor as an unprivileged Debian 13 LXC with a native Node.js application and an Apprise notification service. Defaults are 2 CPU cores, 4 GiB RAM, and 10 GiB disk; the extra RAM accommodates building the frontend and native modules.
Install and update through the community release/runtime helpers. SQLite, user scripts, notification configuration, and secrets live outside
/opt/meshmonitor, under/dataand/etc/meshmonitor; updates back these paths up before replacing the application. Generate a session secret and set CORS to the container address. Bind Apprise to loopback.Fresh installation verified on Proxmox VE 9.2.21 (amd64). The installer completed successfully and the author confirmed access to MeshMonitor and a working connection to a TCP node. Submitted for maintainer review; real upgrade testing and notification testing remain outstanding. USB passthrough is outside the scope of this submission and has not been tested.
🔗 Related PR / Issue
No existing DevScripts issue or PR found for MeshMonitor.
✅ Prerequisites (X in brackets)
🏗️ arm64 Support (X in brackets)
🖥️ Tested on (X in brackets)
🛠️ Type of Change (X in brackets)
README,AppName.md,CONTRIBUTING.md, or other docs.🔍 Code & Security Review (X in brackets)
CODE-AUDIT.md&CONTRIBUTING.mdguidelinesAppName.sh,AppName-install.sh,AppName.json)fetch_and_deploy_gh_release,fetch_and_deploy_codeberg_release,fetch_and_deploy_gl_release, orfetch_and_deploy_from_urlinstead ofgit pull.🤖 AI Assistance (X in brackets)
AGENTS.mdand.github/agents/pve-script-creator.agent.mdas guidance, and the output has been reviewed and corrected to match those guidelines.Please describe to which degree, if any, an LLM was used in creating this pull request. Name the model(s) used and, if applicable, the reasoning/thinking effort level (e.g. "Claude Sonnet 4.5, high reasoning, used to draft the install script, then manually reviewed and tested" or "No LLM used"). This is informational, not a penalty — but scripts that are clearly AI-generated and not further revised by the author to match
CODE-AUDIT.md/CONTRIBUTING.mdmay be closed without review.Codex (GPT-6; reasoning-effort setting is not exposed in this session) researched upstream and drafted the three files, then reviewed and corrected them against the repository guidance. Local checks used real community deployment/backup helpers with mocked package, build, and systemd commands. The PR author then ran the installer on a real Proxmox host and confirmed a working TCP node connection; the target-platform results are recorded below.
📋 Additional Information (optional)
Target-platform validation (reported by the PR author):
debian-13-standard_13.1-2_amd64.tar.zst, using the default 2 cores / 4096 MiB RAM / 10 GB disk on ZFS storage.clartek/DevScripts@feat/meshmonitor.Not yet verified: a real version-to-version upgrade/data-preservation test, notifications, arm64, and Incus. USB passthrough has not been tested and is outside this submission's scope. The broad "Tested thoroughly" prerequisite remains unchecked to reflect these limits.
Local validation completed:
bash -non all 256 shell scripts.Upstream findings (stable release v4.17.0):
package.jsonrequires Node >=22; the Dockerfile and LXC builder use Node 24, selected here.--legacy-peer-deps. The Dockerfile prunes development dependencies after building.dist, package manifests, README and LICENSE. It omits runtime protobuf files, TAK dictionaries and Apprise code, so this script builds from release source instead.github_api_call, then usefetch_and_deploy_from_urlfor the exact pinned protobuf and TAKPacket-SDK commits. These are dependency commit lookups, not separate release/version checks.setup_uvand an external Python environment for Apprise, requests, Meshtastic and MeshCore CLI support. Its bin directory is on the app service's PATH.admin/changemeaccount; the script does not hardcode an admin secret and tells the user to change that upstream default.var_arm64commented;architecturesomitted). Upstream builds ARM Docker images, but the native dependencies have not been tested by this contribution. Follow the documented untested-state behavior rather than claiming verified support.Eligibility checked on 2026-10-20: 697 stars; repository created 2025-09-25; active commits and published v4.17.0 release assets.
Test on a disposable Proxmox LXC from the Proxmox host shell:
COMMUNITY_SCRIPTS_URL=https://raw.githubusercontent.com/clartek/DevScripts/feat/meshmonitor \ bash -c "$(curl -fsSL https://raw.githubusercontent.com/clartek/DevScripts/feat/meshmonitor/ct/meshmonitor.sh)"The fresh-install command above was run successfully on the Proxmox host described above. Additional testers can use it to reproduce the installation. For a real upgrade test, install an older upstream release using
var_appversion, then runupdateinside that test container and verify database/config/custom scripts survive. Maintainer review and further testing are welcome; upgrade and notification success are not claimed.📦 Application Requirements (for new scripts)
🌐 Source