feat: Add instructions for registering new CrowdSec agents

This commit is contained in:
2026-07-10 05:22:01 +00:00
parent 43253ca120
commit e78a1d548a

View File

@@ -9,10 +9,9 @@ import { Alert, AlertDescription } from './ui/alert';
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from './ui/select'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from './ui/select';
import { import {
ShieldAlert, Loader2, AlertCircle, CheckCircle, Ban, X, Trash2, ShieldAlert, Loader2, AlertCircle, CheckCircle, Ban, X, Trash2,
BookOpen, Shield, Activity, Zap, RefreshCw, Globe, BookOpen, Shield, Activity, Zap, RefreshCw, Globe, Terminal,
} from 'lucide-react'; } from 'lucide-react';
import { Badge } from './ui/badge'; import { Badge } from './ui/badge';
// Instance provisioning removed — Central-only mode
import { useCrowdSec } from '../hooks/useCrowdSec'; import { useCrowdSec } from '../hooks/useCrowdSec';
import type { AddDecisionRequest, CrowdSecAlert } from '../services/api/networking'; import type { AddDecisionRequest, CrowdSecAlert } from '../services/api/networking';
@@ -562,9 +561,8 @@ export function CrowdSecComponent() {
</CardHeader> </CardHeader>
<CardContent className="space-y-3"> <CardContent className="space-y-3">
<p className="text-sm text-muted-foreground"> <p className="text-sm text-muted-foreground">
<strong>Agents</strong> are CrowdSec engines running inside your k8s clusters. They analyze <strong>Agents</strong> are CrowdSec engines that analyze logs, detect threats, and report
logs, detect threats, and report to this LAPI. Each provisioned Wild Cloud instance registers to this LAPI. Each machine or cluster running CrowdSec registers an agent here.
one agent here.
</p> </p>
{status.machines.length === 0 ? ( {status.machines.length === 0 ? (
<p className="text-sm text-muted-foreground text-center py-3">No agents registered. Provision an instance below.</p> <p className="text-sm text-muted-foreground text-center py-3">No agents registered. Provision an instance below.</p>
@@ -679,6 +677,42 @@ export function CrowdSecComponent() {
</CardContent> </CardContent>
</Card> </Card>
{/* Registering Agents */}
<Card className="border-dashed">
<CardHeader>
<div className="flex items-center gap-2">
<Terminal className="h-4 w-4 text-muted-foreground" />
<CardTitle>Registering New Agents</CardTitle>
</div>
</CardHeader>
<CardContent className="space-y-3 text-sm text-muted-foreground">
<p>
To connect a new CrowdSec agent to this LAPI, register a machine and bouncer via the API,
then configure the remote agent to use these credentials.
</p>
<div className="space-y-2">
<p className="font-medium text-foreground">1. Register a machine (agent)</p>
<pre className="bg-muted rounded-md p-3 font-mono text-xs overflow-x-auto">
{`curl -X POST /api/v1/crowdsec/machines \\
-H "Content-Type: application/json" \\
-d '{"name": "my-agent", "password": "a-strong-password"}'`}
</pre>
</div>
<div className="space-y-2">
<p className="font-medium text-foreground">2. Register a bouncer</p>
<pre className="bg-muted rounded-md p-3 font-mono text-xs overflow-x-auto">
{`curl -X POST /api/v1/crowdsec/bouncers \\
-H "Content-Type: application/json" \\
-d '{"name": "my-bouncer", "apiKey": "a-bouncer-api-key"}'`}
</pre>
</div>
<p>
Then configure the remote CrowdSec agent with the LAPI URL (<code className="font-mono bg-muted px-1 rounded">http://{'<central-ip>'}:8080</code>)
and the credentials above. The agent will appear in the Registered Agents list once it connects.
</p>
</CardContent>
</Card>
</> </>
)} )}
</div> </div>