Hi all, would you consider adding SpamGuard to the curated plugin catalogue?
SpamGuard stops channel spam at the repeater using openHop's own policy engine, while regulars keep getting through. It started as a separate service and has now moved to being an openHop plugin first: it installs from System > Plugins with a local wheel today. Being in the catalogue would let people find and install it from the Plugins page without downloading anything by hand.
Here's a schema 2 entry for the current release, if it helps:
{"id":"openhop-spamguard","name":"SpamGuard","description":"Stops MeshCore channel spam at this repeater, while regulars keep getting through. Its own page is on port 8091.","repository":"flackrat/openhop-spamguard","category":"security","distribution":"openhop-spamguard","source_revision":"9dc3dab82382c4dc878ef7e67cec2ced35cbf4d0","version":"5.24.0","wheel_url":"https://github.com/flackrat/openhop-spamguard/releases/download/v5.24/openhop_spamguard-5.24.0-py3-none-any.whl","sha256":"f57a3844312a398349f87c42935eacc672a4dc4f97a47140a0cf0a0ae9bc9253","min_repeater_version":"1.1.2","homepage":"https://github.com/flackrat/openhop-spamguard","tags":["spam","moderation","policy"]}
A few things you'll probably want to know up front.
The id is openhop-spamguard rather than the owner.name style the other entries use, because people already have it installed under that id and changing it would orphan their data folder. Happy to talk about that if it's a problem.
The plugin has no application UI, so it can't be picked as the web frontend. Its page runs on its own port (8091 by default), and the Docker notes in the guide explain publishing that port.
It changes only its own rules in the policy (names start with spamguard:) and leaves anything the user has set up alone. It also keeps a small marker in policy objects so that only one copy of SpamGuard manages a repeater at a time.
It has an Update button on its own page that fetches the matching wheel from its GitHub release and installs it through /api/plugins/install, then restarts itself. If you'd rather catalogue installs only update through the catalogue, I can switch that off when the plugin was installed from it. Just let me know what you prefer.
Its test suite runs against openHop's own plugin manager, and I've just run it through fresh installs on 1.1.4 and 1.1.5, natively and in Docker.
Thanks for the plugin system, it made this a lot easier for people to set up.
Hi all, would you consider adding SpamGuard to the curated plugin catalogue?
SpamGuard stops channel spam at the repeater using openHop's own policy engine, while regulars keep getting through. It started as a separate service and has now moved to being an openHop plugin first: it installs from System > Plugins with a local wheel today. Being in the catalogue would let people find and install it from the Plugins page without downloading anything by hand.
Repo: https://github.com/flackrat/openhop-spamguard
Plugin guide: https://github.com/flackrat/openhop-spamguard/blob/main/docs/openhop-plugin.md
Here's a schema 2 entry for the current release, if it helps:
```json
{
"id": "openhop-spamguard",
"name": "SpamGuard",
"description": "Stops MeshCore channel spam at this repeater, while regulars keep getting through. Its own page is on port 8091.",
"repository": "flackrat/openhop-spamguard",
"category": "security",
"distribution": "openhop-spamguard",
"source_revision": "9dc3dab82382c4dc878ef7e67cec2ced35cbf4d0",
"version": "5.24.0",
"wheel_url": "https://github.com/flackrat/openhop-spamguard/releases/download/v5.24/openhop_spamguard-5.24.0-py3-none-any.whl",
"sha256": "f57a3844312a398349f87c42935eacc672a4dc4f97a47140a0cf0a0ae9bc9253",
"min_repeater_version": "1.1.2",
"homepage": "https://github.com/flackrat/openhop-spamguard",
"tags": ["spam", "moderation", "policy"]
}
```
A few things you'll probably want to know up front.
The id is openhop-spamguard rather than the owner.name style the other entries use, because people already have it installed under that id and changing it would orphan their data folder. Happy to talk about that if it's a problem.
The plugin has no application UI, so it can't be picked as the web frontend. Its page runs on its own port (8091 by default), and the Docker notes in the guide explain publishing that port.
It changes only its own rules in the policy (names start with spamguard:) and leaves anything the user has set up alone. It also keeps a small marker in policy objects so that only one copy of SpamGuard manages a repeater at a time.
It has an Update button on its own page that fetches the matching wheel from its GitHub release and installs it through /api/plugins/install, then restarts itself. If you'd rather catalogue installs only update through the catalogue, I can switch that off when the plugin was installed from it. Just let me know what you prefer.
Its test suite runs against openHop's own plugin manager, and I've just run it through fresh installs on 1.1.4 and 1.1.5, natively and in Docker.
Thanks for the plugin system, it made this a lot easier for people to set up.
<!-- github-sync-id:5830478785 -->
The plugin has moved on a fair bit, so here's an updated entry for the current release, 6.4. It now includes FloodGuard (flood containment by measured airtime, MeshCore-style hop limits, interference watch), still in the one plugin with the same id.
{"id": "openhop-spamguard", "name": "SpamGuard", "description": "Stops MeshCore channel spam at this repeater, while regulars keep getting through, and with FloodGuard contains airtime floods of any packet type. Its own page is on port 8091.", "repository": "flackrat/openhop-spamguard", "category": "security", "distribution": "openhop-spamguard", "source_revision": "2304d52b9b9442e88667747056d4a1b91694052a", "version": "6.4.0", "wheel_url": "https://github.com/flackrat/openhop-spamguard/releases/download/v6.4/openhop_spamguard-6.4.0-py3-none-any.whl", "sha256": "24f16f7ed08cd8369822a07ad017679e362d8c42f356f714bff8558477a10c78", "min_repeater_version": "1.1.2", "homepage": "https://github.com/flackrat/openhop-spamguard", "tags": ["spam", "flood", "moderation", "policy"]}
The plugin has moved on a fair bit, so here's an updated entry for the current release, 6.4. It now includes FloodGuard (flood containment by measured airtime, MeshCore-style hop limits, interference watch), still in the one plugin with the same id.
```
{"id": "openhop-spamguard", "name": "SpamGuard", "description": "Stops MeshCore channel spam at this repeater, while regulars keep getting through, and with FloodGuard contains airtime floods of any packet type. Its own page is on port 8091.", "repository": "flackrat/openhop-spamguard", "category": "security", "distribution": "openhop-spamguard", "source_revision": "2304d52b9b9442e88667747056d4a1b91694052a", "version": "6.4.0", "wheel_url": "https://github.com/flackrat/openhop-spamguard/releases/download/v6.4/openhop_spamguard-6.4.0-py3-none-any.whl", "sha256": "24f16f7ed08cd8369822a07ad017679e362d8c42f356f714bff8558477a10c78", "min_repeater_version": "1.1.2", "homepage": "https://github.com/flackrat/openhop-spamguard", "tags": ["spam", "flood", "moderation", "policy"]}
```
<!-- github-comment-id:6237104185 -->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Hi all, would you consider adding SpamGuard to the curated plugin catalogue?
SpamGuard stops channel spam at the repeater using openHop's own policy engine, while regulars keep getting through. It started as a separate service and has now moved to being an openHop plugin first: it installs from System > Plugins with a local wheel today. Being in the catalogue would let people find and install it from the Plugins page without downloading anything by hand.
Repo: https://github.com/flackrat/openhop-spamguard
Plugin guide: https://github.com/flackrat/openhop-spamguard/blob/main/docs/openhop-plugin.md
Here's a schema 2 entry for the current release, if it helps:
A few things you'll probably want to know up front.
The id is openhop-spamguard rather than the owner.name style the other entries use, because people already have it installed under that id and changing it would orphan their data folder. Happy to talk about that if it's a problem.
The plugin has no application UI, so it can't be picked as the web frontend. Its page runs on its own port (8091 by default), and the Docker notes in the guide explain publishing that port.
It changes only its own rules in the policy (names start with spamguard:) and leaves anything the user has set up alone. It also keeps a small marker in policy objects so that only one copy of SpamGuard manages a repeater at a time.
It has an Update button on its own page that fetches the matching wheel from its GitHub release and installs it through /api/plugins/install, then restarts itself. If you'd rather catalogue installs only update through the catalogue, I can switch that off when the plugin was installed from it. Just let me know what you prefer.
Its test suite runs against openHop's own plugin manager, and I've just run it through fresh installs on 1.1.4 and 1.1.5, natively and in Docker.
Thanks for the plugin system, it made this a lot easier for people to set up.
The plugin has moved on a fair bit, so here's an updated entry for the current release, 6.4. It now includes FloodGuard (flood containment by measured airtime, MeshCore-style hop limits, interference watch), still in the one plugin with the same id.