Files
ServerKit/builtin-extensions/serverkit-crowdsec/plugin.json
T
Juan DenisandClaude Opus 4.8 dcde6ab64a fix(extensions): gate GPU auto-install on a present GPU; purge em dashes from manifests
Move serverkit-gpu from CONVERTED_BUILTIN_SLUGS into GATED_BUILTIN_SLUGS behind
a _gpu_present() predicate (shutil.which('nvidia-smi')), mirroring the email
gate: fresh installs stay marketplace-only, upgraded panels without a GPU no
longer get it, upgraded panels with a GPU keep it (D3 continuity). Rewrite the
12 builtin + baked extension descriptions that used em dashes into plain
sentences, keeping every pair in sync. New test_extension_manifests.py walks
both manifest trees to assert no em/en dashes and per-slug description parity.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-08 23:12:48 -04:00

41 lines
1.3 KiB
JSON

{
"name": "serverkit-crowdsec",
"display_name": "CrowdSec",
"version": "1.0.0",
"description": "CrowdSec security engine integration. Surface active decisions and alerts, ban/unban IPs, and manage allowlists straight from the panel. Read/write via cscli on the host; shows install guidance when CrowdSec is absent (never auto-installs).",
"author": "ServerKit",
"license": "MIT",
"category": "security",
"homepage": "https://github.com/jhd3197/ServerKit",
"permissions": ["shell"],
"min_panel_version": "1.7.0",
"entry_point": "crowdsec:crowdsec_bp",
"url_prefix": "/api/v1/crowdsec",
"icon": "<path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"/><path d=\"m9 12 2 2 4-4\"/>",
"contributions": {
"nav": [
{
"id": "crowdsec",
"label": "CrowdSec",
"route": "/crowdsec",
"category": "operations",
"icon": "<path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"/><path d=\"m9 12 2 2 4-4\"/>"
}
],
"routes": [
{ "path": "crowdsec", "component": "CrowdSecPage" }
],
"page_titles": {
"/crowdsec": "CrowdSec"
},
"command_palette": [
{
"label": "CrowdSec",
"path": "/crowdsec",
"category": "Pages",
"keywords": "crowdsec decisions alerts bans ips allowlist security waf appsec"
}
]
}
}