Skip to content

hhftechnology/crowdsec_manager

Repository files navigation

CrowdSec Manager is a web-based management interface for CrowdSec operations, Traefik integration, decisions, scenarios, backups, and logs.

Stable release

  • Current baseline: 2.0.0
  • Multi-proxy support: not available in this release

Crowdsec-Manager mobile app.

Download

Click below to download the app to your mobile device, tablet:

Current Release

Download from Google Play

Get it on F-Droid

We are not on iOS :)

Images

Dashboard

Health & Diagnostics

Whitelist Management

IP Management

CrowdSec Allowlist Management

Scenario Management

Captcha Setup

Decision List Analysis

Alert List Analysis

Logs Viewer

Backup Management

System Update

Services Management

Configuration

Alert Filters

Alert Inspect Modal

Alert Results Table

Bouncers Management

Config Validation

CrowdSec Health Overview

Dashboard Scenarios and Blocked IPs

Decision Results Table

Hub AppSec Configurations

Hub AppSec Rules

Hub Collections

Hub Home Categories

Hub Log Parsers

Hub Postoverflows

Hub Remediation Components

Hub Scenarios Install Mode

Notifications Detect

Terminal Container Shell

Image Index

Screenshot File Page
alerts-analysis-filters.jpeg Alerts Analysis (filters panel)
alerts-analysis-inspect-modal.jpeg Alerts Analysis (inspect modal)
alerts-analysis-overview.jpeg Alerts Analysis (overview charts)
alerts-analysis-results-table.jpeg Alerts Analysis (results table)
allowlists-management.jpeg Allowlists Management
backup-management.jpeg Backup Management
bouncers-management.jpeg Bouncers Management
captcha-protection-detect.jpeg Captcha Protection (detect)
config-validation.jpeg Config Validation
configuration-settings.jpeg Configuration Settings
crowdsec-health-overview.jpeg CrowdSec Health Overview
dashboard-overview-countries-systems.jpeg Dashboard (countries and systems)
dashboard-overview-scenarios-blocked-ips.jpeg Dashboard (scenarios and blocked IPs)
decisions-analysis-overview.jpeg Decisions Analysis (overview)
decisions-results-table.jpeg Decisions Analysis (results table)
health-diagnostics-overview.jpeg Health and Diagnostics
hub-appsec-configurations.jpeg Hub Browser (AppSec configurations)
hub-appsec-rules.jpeg Hub Browser (AppSec rules)
hub-collections.jpeg Hub Browser (collections)
hub-home-categories.jpeg Hub Browser (home categories)
hub-log-parsers.jpeg Hub Browser (log parsers)
hub-postoverflows.jpeg Hub Browser (postoverflows)
hub-remediation-components.jpeg Hub Browser (remediation components)
hub-scenarios-install-mode.jpeg Hub Browser (scenarios install mode)
ip-management.jpeg IP Management
logs-service-logs.jpeg Logs (service logs)
notifications-detect.jpeg Notifications (detect)
scenarios-management.jpeg Scenarios Management
services-management.jpeg Services Management
system-update.jpeg System Update
terminal-container-shell.png Terminal (container shell)
whitelist-management.jpeg Whitelist Management

Minimum Docker Compose with tailscale

services: tailscale: image: tailscale/tailscale:latest container_name: tailscale-crowdsec hostname: crowdsec-manager-ts # The name that will appear in your Tailscale admin panel environment: - TS_AUTHKEY= - TS_STATE_DIR=/var/lib/tailscale volumes: - tailscale-data:/var/lib/tailscale - /dev/net/tun:/dev/net/tun cap_add: - net_admin - sys_module ports: - "8080:8080" networks: pangolin: aliases: - crowdsec-manager # Ensures other containers on the network can still reach it by its original name! restart: unless-stopped crowdsec-manager: image: hhftechnology/crowdsec-manager:latest container_name: crowdsec-manager network_mode: service:tailscale # This is the magic: it merges networking with the Tailscale container depends_on: - tailscale restart: unless-stopped # 'expose' and 'networks' are removed here because Tailscale manages the network connection now environment: # Core Configuration - PORT=8080 - ENVIRONMENT=production - TRAEFIK_DYNAMIC_CONFIG=/etc/traefik/dynamic_config.yml - TRAEFIK_CONTAINER_NAME=traefik - TRAEFIK_STATIC_CONFIG=/etc/traefik/traefik_config.yml - CROWDSEC_METRICS_URL=http://crowdsec:6060/metrics volumes: - /var/run/docker.sock:/var/run/docker.sock - /root/config:/app/config - /root/docker-compose.yml:/app/docker-compose.yml - ./backups:/app/config/backups - ./data:/app/data networks: pangolin: external: true volumes: tailscale-data:

Run

mkdir -p ./backups ./data docker network create pangolin docker compose up -d

Verify

curl http://localhost:8080/health

API Endpoints

Base prefix: /api

Health

  • GET /api/health/stack
  • GET /api/health/crowdsec
  • GET /api/health/complete

IP

  • GET /api/ip/public
  • GET /api/ip/blocked/:ip
  • GET /api/ip/security/:ip
  • POST /api/ip/unban

Whitelist

  • GET /api/whitelist/view
  • POST /api/whitelist/current
  • POST /api/whitelist/manual
  • POST /api/whitelist/cidr
  • POST /api/whitelist/crowdsec
  • POST /api/whitelist/traefik
  • POST /api/whitelist/comprehensive
  • DELETE /api/whitelist/remove

Allowlist

  • GET /api/allowlist/list
  • POST /api/allowlist/create
  • GET /api/allowlist/inspect/:name
  • POST /api/allowlist/add
  • POST /api/allowlist/remove
  • DELETE /api/allowlist/:name

Scenarios

  • POST /api/scenarios/setup
  • GET /api/scenarios/list
  • GET /api/scenarios/files
  • DELETE /api/scenarios/file

Captcha

  • POST /api/captcha/setup
  • GET /api/captcha/status
  • GET /api/captcha/detect
  • POST /api/captcha/config
  • POST /api/captcha/apply

Logs

  • GET /api/logs/crowdsec
  • GET /api/logs/traefik
  • GET /api/logs/traefik/advanced
  • GET /api/logs/:service
  • GET /api/logs/stream/:service
  • GET /api/logs/structured/:service

Backup

  • GET /api/backup/list
  • POST /api/backup/create
  • POST /api/backup/restore
  • DELETE /api/backup/:id
  • POST /api/backup/cleanup
  • GET /api/backup/latest

Update

  • GET /api/update/check
  • POST /api/update/with-crowdsec
  • POST /api/update/without-crowdsec

Services

  • GET /api/services/verify
  • POST /api/services/shutdown
  • POST /api/services/action

CrowdSec

  • GET /api/crowdsec/bouncers
  • POST /api/crowdsec/bouncers
  • DELETE /api/crowdsec/bouncers/:name
  • GET /api/crowdsec/decisions
  • POST /api/crowdsec/decisions
  • DELETE /api/crowdsec/decisions
  • POST /api/crowdsec/decisions/import
  • GET /api/crowdsec/decisions/analysis
  • GET /api/crowdsec/alerts/analysis
  • GET /api/crowdsec/alerts/:id
  • DELETE /api/crowdsec/alerts/:id
  • GET /api/crowdsec/metrics
  • POST /api/crowdsec/enroll
  • POST /api/crowdsec/enroll/finalize
  • GET /api/crowdsec/enroll/preferences
  • PUT /api/crowdsec/enroll/preferences
  • GET /api/crowdsec/status

Traefik

  • GET /api/traefik/config
  • GET /api/traefik/config-path
  • POST /api/traefik/config-path

Config

  • GET /api/config/settings
  • PUT /api/config/settings
  • GET /api/config/files/:container/:fileType

Notifications

  • GET /api/notifications/discord
  • POST /api/notifications/discord
  • GET /api/notifications/discord/preview
  • GET /api/notifications/discord/detect
  • POST /api/notifications/discord/config
  • POST /api/notifications/discord/apply

Cron

  • POST /api/cron/setup
  • GET /api/cron/list
  • DELETE /api/cron/:id

Profiles

  • GET /api/profiles
  • POST /api/profiles

Hosts

  • GET /api/hosts/list

Terminal

  • GET /api/terminal/:container

Config Validation

  • GET /api/config/validation/validate
  • GET /api/config/validation/snapshots
  • POST /api/config/validation/snapshot
  • POST /api/config/validation/restore/:type
  • POST /api/config/validation/accept/:type
  • DELETE /api/config/validation/snapshot/:type

Hub

  • GET /api/hub/list
  • POST /api/hub/upgrade
  • GET /api/hub/categories
  • GET /api/hub/:category/items
  • POST /api/hub/:category/install
  • POST /api/hub/:category/remove
  • POST /api/hub/:category/manual-apply
  • GET /api/hub/preferences
  • GET /api/hub/preferences/:category
  • PUT /api/hub/preferences/:category
  • GET /api/hub/history
  • GET /api/hub/history/:id

Simulation

  • GET /api/simulation/status
  • POST /api/simulation/toggle

Events

  • GET /api/events/ws
  • GET /api/events/sse

Documentation

For installation details, feature guides, and API reference, use the docs in docs.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

Acknowledgments

  • Original bash script by hhf-technology
  • CrowdSec for the security engine
  • Traefik for reverse proxy
  • Shadcn/ui for UI components

Built with ❤️ for the CrowdSec/Pangolin community

About

A web-based management interface for CrowdSec security stack with Pangolin integration. This project replaces the bash script with a modern, user-friendly ShadcnUI built with Go and React.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors