Quick Start
This guide gets you from zero to a working CHAD installation in minutes.Prerequisites
Before you begin, ensure you have:- Docker and Docker Compose installed
- An OpenSearch cluster (existing or new)
- Fluentd or another log shipper configured to send logs to OpenSearch
CHAD does not include OpenSearch. You need an existing cluster or can deploy one alongside CHAD.
Installation
1. Clone the Repository
2. Create Environment File
.env and set secure values:
3. Start CHAD
- PostgreSQL database
- CHAD Backend (FastAPI)
- CHAD Frontend (React)
4. Access the UI
Open your browser tohttp://localhost:3000
You’ll see the setup wizard:
- Create Admin Account - Set up your first admin user
- Configure OpenSearch - Enter your OpenSearch connection details
- Create Index Pattern - Define your first log source
Setup Wizard
Step 1: Create Admin Account
Enter credentials for the initial administrator:- Username: Your admin username
- Email: Admin email address
- Password: Strong password (min 12 characters recommended)
Step 2: Configure OpenSearch Connection
Enter your OpenSearch cluster details:| Field | Description | Example |
|---|---|---|
| Host | OpenSearch hostname | opensearch.example.com |
| Port | OpenSearch port | 9200 |
| Username | OpenSearch user | admin |
| Password | OpenSearch password | ******** |
| Use SSL | Enable HTTPS | true (recommended) |
| Verify SSL | Validate certificates | true (production) |
Step 3: Create First Index Pattern
Define a log source to monitor:| Field | Description | Example |
|---|---|---|
| Name | Friendly name | Windows Security Logs |
| Index Pattern | OpenSearch index pattern | winlogbeat-* |
| Timestamp Field | Time field name | @timestamp |
Configure Log Shipping
CHAD receives logs directly for real-time detection. Configure your log shipper to send data to both CHAD and OpenSearch.Logs must be sent to both destinations:
- CHAD (
POST /api/logs/{index}) - for real-time detection - OpenSearch - for log storage and search
Get Auth Token
Each index pattern has an authentication token for log shipping:- Go to Index Patterns
- Click your index pattern
- Copy the Auth Token
Fluentd Example
Configure Fluentd with two outputs using@type copy:
Logstash Example
Create Your First Rule
Now let’s create a detection rule:- Navigate to Rules in the sidebar
- Click Create Rule
- Paste this example Sigma rule:
- Click Validate to check the rule
- Click Deploy to activate detection
Verify Detection
To verify CHAD is working:- Go to Dashboard - you should see system status
- Check Health - verify OpenSearch connection is healthy
- Generate a test event or wait for matching logs
- Check Alerts for new detections
Next Steps
Rule Management
Learn to write and manage Sigma rules
Alert Investigation
Investigate and triage alerts
SigmaHQ Import
Import rules from SigmaHQ
Notifications
Set up webhooks and Jira
Troubleshooting
Cannot connect to OpenSearch
- Verify OpenSearch is running and accessible
- Check firewall rules allow connections from CHAD
- Ensure SSL settings match your cluster configuration
- Test with curl:
curl -u admin:password https://opensearch:9200
No alerts appearing
- Verify logs are flowing into OpenSearch indices
- Check index pattern matches your actual indices
- Ensure at least one rule is deployed (not just saved)
- Check rule field names match your log schema
Permission denied errors
- Verify OpenSearch user has required permissions
- CHAD needs: index management, document CRUD, percolator access