Prerequisites
Before you begin, make sure you have the following installed on your system:- Docker Engine (20.10.0 or higher)
- Docker Compose (v2.0.0 or higher)
- OpenSSL (for generating SSL certificates)
Installing Docker
For macOS:
- Download and install Docker Desktop from Docker Hub
- Follow the installation wizard
- Verify installation:
For Linux (Ubuntu/Debian):
For Windows:
- Download and install Docker Desktop from Docker Hub
- Enable WSL 2 following Docker’s documentation
- Follow the installation wizard
- Verify installation in PowerShell:
Step 1: Create Project Directory
Create a new directory for your CaseBender deployment and navigate into it:Step 2: Configure Environment Variables
Create a.env file with the following content:
CaseBender runs as several containers: the web app (
app), a REST API gateway
(api), an alert ingestion gateway (ingestion, this is what receives integration
webhooks such as Microsoft Defender), a background worker, and the workflow and
MISP processors. Nginx sits in front and routes traffic to the right service. All of these
are included in the Compose file below.Step 3: Generate SSL Certificates
For local development, generate self-signed SSL certificates:Step 4: Configure Nginx
Createnginx.conf with the following content:
Step 5: Create Docker Compose Configuration
Createdocker-compose.yml with the following content:
Step 6: Configure Local DNS
Add the following entry to your hosts file:For macOS and Linux:
For Windows:
Add the following line toC:\Windows\System32\drivers\etc\hosts:
Step 7: Start the Application
- Pull the required images:
- Start all services:
- Monitor the logs:
- Access the application at
https://local.casebender.com
Default Login Credentials
After deploying CaseBender, you can log in with the following default credentials:Running behind a corporate proxy
If your host can only reach the internet through a corporate HTTP proxy (“proxy-only” networks), CaseBender’s outbound calls — license activation and integrations such as Microsoft Defender and Splunk — must be routed through it. Add the proxy variables to your.env:
environment: block in docker-compose.yml:
Which targets go through the proxy? Public endpoints must go through the proxy
and must NOT be in
NO_PROXY — e.g. Microsoft Defender
(login.microsoftonline.com, graph.microsoft.com). On-prem targets should be
listed in NO_PROXY so they are reached directly — e.g. an internal Splunk
HEC. If you use Splunk Cloud, leave it out so it routes through the proxy.node, no curl needed):
[proxy] Outbound fetch routed through corporate proxy (...) on startup.
Troubleshooting
Common Issues
-
Certificate Warnings:
- The browser will show a security warning because we’re using a self-signed certificate
- Click “Advanced” and proceed to the website
- For development purposes, this is expected and safe
-
Port Conflicts:
- Ensure ports 80, 443, 3000, 3001, 3002, 3003, 3004, 3005, 5433, 6379, 9000, and 9090 are not in use
- If needed, modify the port mappings in docker-compose.yml
-
Database Connection:
- Check PostgreSQL logs:
docker compose logs db - Verify database credentials in .env
- Ensure the database is running:
docker compose ps db
- Check PostgreSQL logs:
-
Service Dependencies:
- If services fail to start, check their dependencies:
Checking Logs
View logs for specific services:Service Management
Next Steps
Now that you have CaseBender running locally, you might want to:Production Deployment
Deploy CaseBender to your production environment
Configuration
Learn about advanced configuration options