crowdsec Docker & Self-Hosted Deployment

GitHub

Open-source IDS/IPS, WAF and bot detection for Linux, Windows, Docker and Kubernetes, with a crowdsourced blocklist of malicious IPs.

RAW Compose
1. Pull Image (DOCKERHUB) docker pull crowdsecurity/kafka-ssl
2. Docker Run (1-Click Launch) docker run -d --name crowdsec -p 53:53 --restart always crowdsecurity/kafka-ssl
3. Podman Run podman run -d --name crowdsec -p 53:53 --restart always crowdsecurity/kafka-ssl
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/crowdsecurity/kafka-ssl:latest
5. ORAS Pull (OCI Artifact) oras pull crowdsecurity/kafka-ssl
6. Compose Deployment docker compose up -d
test/localstack/docker-compose.yml
Download .yml
services:
  localstack:
    container_name: localstack_main
    image: localstack/localstack:3.0
    network_mode: bridge
    ports:
      - "127.0.0.1:53:53"                # only required for Pro (DNS)
      - "127.0.0.1:53:53/udp"            # only required for Pro (DNS)
      - "127.0.0.1:443:443"              # only required for Pro (LocalStack HTTPS Edge Proxy)
      - "127.0.0.1:4510-4559:4510-4559"  # external service port range
      - "127.0.0.1:4566:4566"            # LocalStack Edge Proxy
    environment:
      AWS_HOST: localstack
      DEBUG: ""
      KINESIS_ERROR_PROBABILITY: ""
      LOCALSTACK_HOST: "localstack"
      AWS_REGION: "us-east-1"

    volumes:
      - "${TMPDIR:-/tmp}/localstack:/var/lib/localstack"
      - "/var/run/docker.sock:/var/run/docker.sock"
      - "./scripts/init_script.sh:/etc/localstack/init/ready.d/init_script.sh"

  zoo1:
    image: confluentinc/cp-zookeeper:7.4.3
    ports:
      - "2181:2181"
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_SERVER_ID: 1
      ZOOKEEPER_SERVERS: zoo1:2888:3888

    healthcheck:
      test: jps -l | grep zookeeper
      interval: 10s
      retries: 5
      timeout: 5s

  kafka1:
    image: crowdsecurity/kafka-ssl
    ports:
      - "9093:9093"
      - "9092:9092"
      - "9999:9999"
    environment:
      KAFKA_ADVERTISED_LISTENERS: LISTENER_DOCKER_INTERNAL://127.0.0.1:19092,LISTENER_DOCKER_EXTERNAL://127.0.0.1:9092,LISTENER_DOCKER_EXTERNAL_SSL://127.0.0.1:9093
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_DOCKER_INTERNAL:PLAINTEXT,LISTENER_DOCKER_EXTERNAL:PLAINTEXT,LISTENER_DOCKER_EXTERNAL_SSL:SSL
      KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_DOCKER_INTERNAL
      KAFKA_ZOOKEEPER_CONNECT: "zoo1:2181"
      KAFKA_BROKER_ID: 1
      KAFKA_LOG4J_LOGGERS: "kafka.controller=INFO,kafka.producer.async.DefaultEventHandler=INFO,state.change.logger=INFO"
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
      KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
      KAFKA_JMX_PORT: 9999
      KAFKA_JMX_HOSTNAME: "127.0.0.1"
      KAFKA_AUTHORIZER_CLASS_NAME: kafka.security.authorizer.AclAuthorizer
      KAFKA_ALLOW_EVERYONE_IF_NO_ACL_FOUND: "true"
      KAFKA_SSL_KEYSTORE_FILENAME: kafka.kafka1.keystore.jks
      KAFKA_SSL_KEYSTORE_CREDENTIALS: kafka1_keystore_creds
      KAFKA_SSL_KEY_CREDENTIALS: kafka1_sslkey_creds
      KAFKA_SSL_TRUSTSTORE_FILENAME: kafka.kafka1.truststore.jks
      KAFKA_SSL_TRUSTSTORE_CREDENTIALS: kafka1_truststore_creds
      KAFKA_SSL_ENABLED_PROTOCOLS: TLSv1.2
      KAFKA_SSL_PROTOCOL: TLSv1.2
      KAFKA_SSL_CLIENT_AUTH: none
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true"

    healthcheck:
      test: kafka-broker-api-versions --version
      interval: 10s
      retries: 5
      timeout: 10s

  loki:
    image: grafana/loki:2.9.1
    ports:
      - "127.0.0.1:3100:3100"

  victorialogs:
    image: victoriametrics/victoria-logs:v1.5.0-victorialogs
    ports:
      - "9428:9428"