diff --git a/package.json b/package.json index febfab9..b75e411 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "react-web-flasher", + "name": "mesh-forge", "private": true, "version": "0.0.0", "type": "module", @@ -10,7 +10,7 @@ "lint": "biome lint", "lint:fix": "biome lint --fix && biome format --write", "preview": "vite preview", - "deploy": "npx convex deploy --cmd 'bun run build' && wrangler deploy" + "deploy": "npx convex deploy --cmd 'bun run build' && wrangler deploy && wrangler deploy --config wrangler-registry.json" }, "dependencies": { "@aws-sdk/client-s3": "^3.937.0", diff --git a/registry/index.html b/registry/index.html new file mode 100644 index 0000000..97279ac --- /dev/null +++ b/registry/index.html @@ -0,0 +1,408 @@ + + + + + + Mesh Plugin Registry + + + + +
+
+

🔌 Mesh Plugin Registry

+

Discover and install plugins for your Meshtastic firmware

+

+ Built by + MeshEnvy + • Not affiliated with Meshtastic +

+
+ +
+
+

What is the Mesh Plugin Registry?

+

+ The Mesh Plugin Registry is a centralized + repository built by + MeshEnvy + that hosts metadata about available Meshtastic plugins. This + registry provides: +

+
    +
  • A searchable catalog of community-developed plugins
  • +
  • Version information and release history
  • +
  • Dependency relationships between plugins
  • +
  • Author information and repository links
  • +
  • Automatic dependency resolution during installation
  • +
+
+ +
+

What is the Mesh Plugin Manager?

+

+ The Mesh Plugin Manager (MPM) is the command-line + tool you use to access the registry and install plugins. It's a + lightweight package manager designed specifically for Meshtastic + plugins that provides a simple and powerful way to extend your + Meshtastic firmware with additional functionality. +

+
+ Key Features: +
    +
  • Install and manage plugins from the registry
  • +
  • Automatic dependency resolution with SemVer support
  • +
  • Lockfile generation for reproducible builds
  • +
  • Protobuf file generation for plugins
  • +
  • Seamless PlatformIO build system integration
  • +
+
+
+ +
+

Installation

+

+ To access the registry and install plugins, first install MPM using + pip: +

+
+
pip install mesh-plugin-manager
+
+

Or install from source:

+
+
pip install -e .
+
+
+ +
+

Usage

+

+ Once installed, you can use the mpm command to browse + the registry and manage your plugins: +

+ +
+
# List installed plugins
+mpm list
+
+# List all available plugins from registry
+mpm list --all
+
+# Install a plugin from the registry
+mpm install <slug>
+
+# Install all plugins from meshtastic.json
+mpm install
+
+# Remove a plugin
+mpm remove <slug>
+
+# Generate protobuf files for all plugins
+mpm proto
+
+
+ +
+

Adding Your Plugin to the Registry

+

+ Have a plugin you'd like to share with the community? Submit a pull + request to add it to the Mesh Plugin Registry! +

+
+ How to contribute: +
    +
  1. + Fork the + MeshEnvy/mesh-forge + repository +
  2. +
  3. + Edit the registry/registry.json file and add your + plugin entry +
  4. +
  5. + Include all required fields: name, description, version, author, + repo URL, and dependencies +
  6. +
  7. + Submit a pull request with a clear description of your plugin +
  8. +
+
+

Your plugin entry should follow this format:

+
+
{
+  "your-plugin-slug": {
+    "name": "Your Plugin Name",
+    "description": "A brief description of what your plugin does",
+    "version": "1.0.0",
+    "author": "your-username",
+    "repo": "https://github.com/your-username/your-plugin",
+    "dependencies": {
+      "meshtastic": ">=2.7.0"
+    }
+  }
+}
+
+
+ +
+

Registry API

+

+ The registry is served as a JSON file that can be accessed + programmatically. The registry format includes: +

+
    +
  • Plugin metadata (name, description, version, author)
  • +
  • Repository URLs for source code
  • +
  • Dependency specifications with version constraints
  • +
  • Compatibility information
  • +
+

You can access the registry JSON directly:

+
+
curl https://registry.meshforge.org/registry.json
+
+
+
+ + +
+ + + + diff --git a/meshtastic-plugins.json b/registry/registry.json similarity index 100% rename from meshtastic-plugins.json rename to registry/registry.json diff --git a/wrangler-registry.json b/wrangler-registry.json new file mode 100644 index 0000000..c5640ab --- /dev/null +++ b/wrangler-registry.json @@ -0,0 +1,10 @@ +{ + "name": "mesh-forge-registry", + "compatibility_date": "2024-09-23", + "assets": { + "directory": "./registry" + }, + "observability": { + "enabled": true + } +}