This commit is contained in:
Mike McFetridge
2026-07-23 19:38:14 -04:00
parent 72272e4006
commit 84e1ead50c
283 changed files with 0 additions and 206 deletions
+451
View File
@@ -0,0 +1,451 @@
{
"slug": "crowdsec",
"kind": "compose",
"metadata": {
"name": "CrowdSec",
"description": "Standalone CrowdSec Security Engine deployment for a single Docker host, with host and reverse-proxy log acquisition, optional AppSec exposure, and console or bouncer enrollment placeholders.",
"tags": [
"security",
"logging",
"traefik"
],
"icon": {
"provider": "selfhst",
"id": "crowdsec"
},
"draft": true,
"version": {
"name": "v1.7.6",
"source_dep_name": "manual/crowdsec"
}
},
"variables": [
{
"title": "General",
"name": "general",
"items": [
{
"name": "service_name",
"type": "str",
"title": "Service Name",
"required": false,
"default": "crowdsec",
"description": "Compose service name for CrowdSec.",
"config": {
"placeholder": "crowdsec"
}
},
{
"name": "container_name",
"type": "str",
"title": "Container Name",
"required": false,
"default": "crowdsec",
"description": "Container name for CrowdSec.",
"config": {
"placeholder": "crowdsec"
}
},
{
"name": "image_tag",
"type": "str",
"title": "Image Tag",
"required": true,
"default": "v1.7.6",
"description": "CrowdSec image tag to deploy.",
"config": {
"placeholder": "v1.7.6"
}
},
{
"name": "container_timezone",
"type": "str",
"title": "Container Timezone",
"required": true,
"default": "UTC",
"config": {
"placeholder": "UTC"
}
},
{
"name": "restart_policy",
"type": "enum",
"title": "Restart Policy",
"required": true,
"default": "unless-stopped",
"config": {
"options": [
"unless-stopped",
"always",
"on-failure",
"no"
]
}
}
]
},
{
"title": "Collections",
"name": "collections",
"items": [
{
"name": "collections_core",
"type": "str",
"title": "Core Collections",
"required": true,
"default": "crowdsecurity/linux crowdsecurity/sshd",
"description": "Space-separated base collections to install on startup.",
"config": {
"placeholder": "crowdsecurity/linux crowdsecurity/sshd"
}
},
{
"name": "collections_extra",
"type": "str",
"title": "Extra Collections",
"required": false,
"default": "crowdsecurity/traefik",
"description": "Additional space-separated collections to install, for example a reverse-proxy parser.",
"config": {
"placeholder": "crowdsecurity/traefik"
}
}
]
},
{
"title": "Acquisition",
"name": "acquisition",
"items": [
{
"name": "host_logs_enabled",
"type": "bool",
"title": "Host Logs",
"required": false,
"default": true,
"description": "Ingest host auth and syslog files from `/var/log`."
},
{
"name": "docker_logs_enabled",
"type": "bool",
"title": "Docker Logs",
"required": false,
"default": false,
"description": "Read logs from a matching Docker container through the Docker socket."
},
{
"name": "docker_group_id",
"type": "int",
"title": "Docker Group ID",
"required": true,
"default": 998,
"description": "Host Docker group ID so the container can access the socket.",
"needs": [
"docker_logs_enabled=true"
],
"config": {
"placeholder": "998"
}
},
{
"name": "docker_container_name_regexp",
"type": "str",
"title": "Docker Container Regex",
"required": true,
"default": ".*traefik.*",
"description": "Regular expression used to match the Docker container whose logs should be parsed.",
"needs": [
"docker_logs_enabled=true"
],
"config": {
"placeholder": ".*traefik.*"
}
},
{
"name": "docker_log_type",
"type": "str",
"title": "Docker Log Type",
"required": true,
"default": "traefik",
"description": "Parser type label for the Docker datasource.",
"needs": [
"docker_logs_enabled=true"
],
"config": {
"placeholder": "traefik"
}
}
]
},
{
"title": "Traefik",
"name": "traefik",
"items": [
{
"name": "traefik_network_enabled",
"type": "bool",
"title": "Shared Traefik Network",
"required": false,
"default": false,
"description": "Attach CrowdSec to an existing Docker network shared with Traefik or other bouncers."
},
{
"name": "traefik_network",
"type": "str",
"title": "Traefik Network",
"required": true,
"default": "traefik",
"description": "Docker network shared with Traefik or other remediation components.",
"needs": [
"traefik_network_enabled=true"
],
"config": {
"placeholder": "traefik"
}
},
{
"name": "traefik_network_external",
"type": "bool",
"title": "External Network",
"required": false,
"default": true,
"needs": [
"traefik_network_enabled=true"
]
},
{
"name": "traefik_accesslog_enabled",
"type": "bool",
"title": "Traefik Access Log",
"required": false,
"default": false,
"description": "Read Traefik access logs from a mounted host path."
},
{
"name": "traefik_accesslog_mount_path",
"type": "str",
"title": "Traefik Log Path",
"required": true,
"default": "/var/log/traefik",
"description": "Host directory containing Traefik access logs.",
"needs": [
"traefik_accesslog_enabled=true"
],
"config": {
"placeholder": "/var/log/traefik"
}
},
{
"name": "traefik_accesslog_filename",
"type": "str",
"title": "Traefik Log File",
"required": true,
"default": "access.log",
"description": "Filename of the Traefik access log inside the mounted directory.",
"needs": [
"traefik_accesslog_enabled=true"
],
"config": {
"placeholder": "access.log"
}
}
]
},
{
"title": "Local API",
"toggle": "lapi_expose_enabled",
"name": "lapi",
"items": [
{
"name": "lapi_expose_enabled",
"type": "bool",
"title": "Expose Local API",
"required": false,
"default": false,
"description": "Publish CrowdSec Local API on the host."
},
{
"name": "lapi_bind_address",
"type": "str",
"title": "Local API Bind Address",
"required": true,
"default": "127.0.0.1",
"description": "Host address used for the Local API port binding.",
"needs": [
"lapi_expose_enabled=true"
],
"config": {
"placeholder": "127.0.0.1"
}
},
{
"name": "lapi_port",
"type": "int",
"title": "Local API Port",
"required": true,
"default": 8080,
"description": "Host port used for the Local API binding.",
"needs": [
"lapi_expose_enabled=true"
],
"config": {
"placeholder": "8080"
}
}
]
},
{
"title": "AppSec",
"toggle": "appsec_enabled",
"name": "appsec",
"items": [
{
"name": "appsec_enabled",
"type": "bool",
"title": "Enable AppSec",
"required": false,
"default": false
},
{
"name": "appsec_name",
"type": "str",
"title": "AppSec Name",
"required": true,
"default": "traefik-appsec",
"description": "Friendly name for the AppSec component.",
"needs": [
"appsec_enabled=true"
],
"config": {
"placeholder": "traefik-appsec"
}
},
{
"name": "appsec_path",
"type": "str",
"title": "AppSec Path",
"required": true,
"default": "/",
"description": "Request path handled by the AppSec listener.",
"needs": [
"appsec_enabled=true"
],
"config": {
"placeholder": "/"
}
},
{
"name": "appsec_expose_enabled",
"type": "bool",
"title": "Expose AppSec",
"required": false,
"default": false,
"description": "Publish the AppSec listener on the host.",
"needs": [
"appsec_enabled=true"
]
},
{
"name": "appsec_bind_address",
"type": "str",
"title": "AppSec Bind Address",
"required": true,
"default": "127.0.0.1",
"description": "Host address used for the AppSec port binding.",
"needs": [
"appsec_enabled=true",
"appsec_expose_enabled=true"
],
"config": {
"placeholder": "127.0.0.1"
}
},
{
"name": "appsec_port",
"type": "int",
"title": "AppSec Port",
"required": true,
"default": 7422,
"description": "Host port used for the AppSec port binding.",
"needs": [
"appsec_enabled=true",
"appsec_expose_enabled=true"
],
"config": {
"placeholder": "7422"
}
}
]
},
{
"title": "Console Enrollment",
"toggle": "console_enrollment_enabled",
"name": "console",
"items": [
{
"name": "console_enrollment_enabled",
"type": "bool",
"title": "Console Enrollment",
"required": false,
"default": false,
"description": "Enroll this CrowdSec instance into CrowdSec Console."
},
{
"name": "console_enrollment_name",
"type": "str",
"title": "Instance Name",
"required": true,
"default": "crowdsec-homelab",
"description": "Human-readable name shown in CrowdSec Console.",
"needs": [
"console_enrollment_enabled=true"
],
"config": {
"placeholder": "crowdsec-homelab"
}
},
{
"name": "console_enrollment_tags",
"type": "str",
"title": "Enrollment Tags",
"required": false,
"default": "homelab,edge",
"description": "Comma-separated tags assigned during console enrollment.",
"needs": [
"console_enrollment_enabled=true"
],
"config": {
"placeholder": "homelab,edge"
}
},
{
"name": "console_enrollment_key",
"type": "secret",
"title": "Enrollment Key",
"required": true,
"description": "Enrollment key generated by CrowdSec Console.",
"needs": [
"console_enrollment_enabled=true"
]
}
]
},
{
"title": "Bouncers",
"name": "bouncers",
"items": [
{
"name": "bouncer_traefik_key",
"type": "secret",
"title": "Traefik Bouncer Key",
"required": false,
"description": "Optional seed key for a Traefik bouncer or plugin.",
"config": {
"autogenerated": {
"length": 32
}
}
}
]
}
]
}