diff --git a/docker-compose.local.yml b/docker-compose.local.yml index b9ca7cb1..2a80020c 100644 --- a/docker-compose.local.yml +++ b/docker-compose.local.yml @@ -25,12 +25,12 @@ services: - CPM_IMPORT_DIR=/app/data/imports - CPM_ACME_STAGING=false # Security Services (Optional) - - CPM_SECURITY_CROWDSEC_MODE=disabled + - CPM_SECURITY_CROWDSEC_MODE=enabled - CPM_SECURITY_CROWDSEC_API_URL= - CPM_SECURITY_CROWDSEC_API_KEY= - - CPM_SECURITY_WAF_MODE=disabled - - CPM_SECURITY_RATELIMIT_MODE=disabled - - CPM_SECURITY_ACL_MODE=disabled + - CPM_SECURITY_WAF_MODE=enabled + - CPM_SECURITY_RATELIMIT_MODE=enabled + - CPM_SECURITY_ACL_MODE=enabled extra_hosts: - "host.docker.internal:host-gateway" cap_add: diff --git a/frontend/src/pages/Logs.tsx b/frontend/src/pages/Logs.tsx index 12f9f265..30299aab 100644 --- a/frontend/src/pages/Logs.tsx +++ b/frontend/src/pages/Logs.tsx @@ -1,5 +1,6 @@ import React, { useState } from 'react'; import { useQuery } from '@tanstack/react-query'; +import { useSearchParams } from 'react-router-dom'; import { getLogs, getLogContent, downloadLog, LogFilter } from '../api/logs'; import { Card } from '../components/ui/Card'; import { Loader2, FileText, ChevronLeft, ChevronRight } from 'lucide-react'; @@ -8,10 +9,11 @@ import { LogFilters } from '../components/LogFilters'; import { Button } from '../components/ui/Button'; const Logs: React.FC = () => { + const [searchParams] = useSearchParams(); const [selectedLog, setSelectedLog] = useState(null); // Filter State - const [search, setSearch] = useState(''); + const [search, setSearch] = useState(searchParams.get('search') || ''); const [host, setHost] = useState(''); const [status, setStatus] = useState(''); const [level, setLevel] = useState(''); diff --git a/frontend/src/pages/Security.tsx b/frontend/src/pages/Security.tsx index 9f94267b..de8aaee4 100644 --- a/frontend/src/pages/Security.tsx +++ b/frontend/src/pages/Security.tsx @@ -1,10 +1,12 @@ import { useQuery } from '@tanstack/react-query' +import { useNavigate } from 'react-router-dom' import { Shield, ShieldAlert, ShieldCheck, Lock, Activity, ExternalLink } from 'lucide-react' import { getSecurityStatus } from '../api/security' import { Card } from '../components/ui/Card' import { Button } from '../components/ui/Button' export default function Security() { + const navigate = useNavigate() const { data: status, isLoading } = useQuery({ queryKey: ['security-status'], queryFn: getSecurityStatus, @@ -84,9 +86,9 @@ export default function Security() { variant="secondary" size="sm" className="w-full" - onClick={() => window.open(status.crowdsec.mode === 'external' ? status.crowdsec.api_url : 'http://localhost:8080', '_blank')} + onClick={() => navigate('/tasks/logs?search=crowdsec')} > - Open Console + View Logs )}