Skip to main content
Looking for an easier way? Use our Desktop Installer for one-click deployment with automatic configuration. No command line required!

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:

  1. Download and install Docker Desktop from Docker Hub
  2. Follow the installation wizard
  3. Verify installation:

For Linux (Ubuntu/Debian):

For Windows:

  1. Download and install Docker Desktop from Docker Hub
  2. Enable WSL 2 following Docker’s documentation
  3. Follow the installation wizard
  4. 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

Create nginx.conf with the following content:

Step 5: Create Docker Compose Configuration

Create docker-compose.yml with the following content:
Need enterprise search (OpenSearch)? The Desktop Installer can add the search-sync, opensearch, and opensearch-dashboards services for you. For most local evaluations the default PostgreSQL-based search above is all you need.

Step 6: Configure Local DNS

Add the following entry to your hosts file:

For macOS and Linux:

For Windows:

Add the following line to C:\Windows\System32\drivers\etc\hosts:

Step 7: Start the Application

  1. Pull the required images:
  1. Start all services:
  1. Monitor the logs:
  1. Access the application at https://local.casebender.com

Default Login Credentials

After deploying CaseBender, you can log in with the following default credentials:
For security reasons, we strongly recommend changing these default credentials immediately after your first login.

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:
Then pass them to every CaseBender service by adding these lines to each service’s environment: block in docker-compose.yml:
NO_PROXY must include the internal Docker service names above. Otherwise container-to-container traffic (e.g. the web app calling the ingestion service) is sent to the corporate proxy and fails — breaking the app even though it has nothing to do with the internet.
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.
Verify connectivity from inside a container (uses node, no curl needed):
When a proxy is configured, each service logs [proxy] Outbound fetch routed through corporate proxy (...) on startup.

Troubleshooting

Common Issues

  1. 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
  2. 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
  3. Database Connection:
    • Check PostgreSQL logs: docker compose logs db
    • Verify database credentials in .env
    • Ensure the database is running: docker compose ps db
  4. 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