Skip to main content
Panguard Manager is a centralized orchestration server that coordinates multiple Guard agents across your infrastructure. It uses a hub-and-spoke architecture where each endpoint agent connects to a single Manager server for registration, heartbeat monitoring, threat reporting, cross-agent correlation, and policy distribution.

Quick Start

# Start the Manager server
panguard manager start --port 8443

# On each endpoint, connect Guard to the Manager
panguard guard start --manager http://manager-host:8443

# Check fleet status
panguard manager status
Panguard Manager requires the Business plan. It supports up to 25 machines per the Business tier. Contact sales for higher limits.

Hub-and-Spoke Architecture

                 Panguard Manager (Hub)
                 ┌──────────────────────┐
                 |  Agent Registry      |  Max 500 agents
                 |  Threat Aggregator   |  Cross-agent correlation
                 |  Policy Engine       |  Centralized rules
                 |  Manager Server      |  REST API + SSE
                 |  Manager DB          |  SQLite (optional)
                 └────────┬─────────────┘
          ┌───────────────┼───────────────┐
          |               |               |
     Agent (srv-01)  Agent (srv-02)  Agent (srv-03)
       Guard            Guard            Guard
       Scan             Scan             Scan
       Chat             Trap             Chat
Each agent connects to the Manager, reports its status and detected threats, and polls for policy updates. The Manager correlates threats across the entire fleet.

Core Components

ComponentSourceResponsibility
Managermanager.tsCentral orchestrator composing all subsystems
AgentRegistryagent-registry.tsAgent CRUD, heartbeat tracking, stale detection (max 500 agents)
ThreatAggregatorthreat-aggregator.tsThreat ingestion, cross-agent correlation (5-min window), 24-hour retention
PolicyEnginepolicy-engine.tsPolicy versioning, per-agent and global policies, broadcast queue
ManagerServerserver.tsHTTP API (raw node:http), Bearer token auth (SHA-256 timing-safe), rate limiting (60 req/min), SSE streaming
ManagerDBdb.tsOptional SQLite persistence for org-scoped queries

Key Capabilities

CapabilityDetails
Agent registryUp to 500 registered agents
Heartbeat monitoring30-second interval, 90-second stale detection
Policy distributionGlobal and per-agent policies with version control
Cross-agent correlationDetect attacks spanning multiple machines by source IP, malware hash, and attack pattern
SSE streamingReal-time event stream for admin dashboards
AuthenticationBearer token with SHA-256 timing-safe comparison
Rate limiting60 requests per minute per client
PersistenceOptional SQLite for org-scoped data retention

Fleet Status

panguard manager status
Fleet Status:
  Total agents:    12
  Online:          11
  Stale:           1 (srv-07, last seen 3m ago)

  Avg. score:      78/100
  Active threats:  2 (across 2 agents)
  Policies:        v3 (deployed to 11/12 agents)

Cross-Agent Threat Correlation

The ThreatAggregator correlates threats across agents within a 5-minute sliding window:
PatternDetection
Same source IP targeting multiple agentsLateral movement or mass scanning
Same malware hash on multiple agentsWorm propagation
Same attack pattern across agentsCoordinated campaign
When a cross-agent pattern is detected, the Manager pushes emergency policies to all agents (e.g., fleet-wide IP block).

API Endpoints

MethodPathDescription
POST/api/agents/registerRegister a new agent
POST/api/agents/:id/heartbeatSend agent heartbeat
POST/api/agents/:id/eventsReport threat events
GET/api/agentsList all agents
DELETE/api/agents/:idDeregister an agent
GET/api/policy/agent/:idGet policy for agent
POST/api/policyCreate/update a policy
GET/api/events/streamSSE event stream

CLI Options

panguard manager <command> [options]

Commands:
  start              Start the Manager server
  stop               Stop the Manager server
  status             Show fleet status
  agents             List registered agents
  policies           Manage policies

Options:
  --port <number>    Server port (default: 8443)
  --host <string>    Bind address (default: 0.0.0.0)
  --data-dir <path>  Data directory (default: ~/.panguard-manager)