Skip to main content

Overview

CaseBender ships with secure defaults, but your deployment environment requires additional hardening. This guide provides recommendations for securing the infrastructure surrounding CaseBender.
This guide covers infrastructure hardening. CaseBender’s application-level security (encryption, RBAC, audit logging) is configured within the application itself. See the relevant security documentation pages for application configuration.

Required production baseline

Before exposing an installation to users:
The production baseline requires unique installation secrets, authenticated Redis and OpenSearch, trusted TLS files, pinned image versions, and Nginx as the only service publishing host ports. Complete first-run activation, enroll the administrator in MFA, and store .env in an approved secret-management system.

TLS Configuration

Reverse Proxy

CaseBender should be deployed behind a reverse proxy (Nginx, Caddy, Traefik, or cloud load balancer) that terminates TLS: Recommended TLS Settings: Nginx Example:

Certificate Management

  • Use certificates from a trusted Certificate Authority (Let’s Encrypt, DigiCert, etc.)
  • Automate certificate renewal (certbot, cert-manager)
  • Monitor certificate expiration with alerting (minimum 30 days before expiry)
  • Use separate certificates for internal services if implementing mutual TLS

Database Security

PostgreSQL Hardening

pg_hba.conf Example:

Backup Security

  • Encrypt backups at rest (AES-256)
  • Store backups in a separate location from the primary database
  • Test backup restoration quarterly
  • Retain backups according to your compliance requirements (minimum 30 days)
  • Monitor backup job success/failure with alerting

Redis Security

Redis Hardening

redis.conf Example:

Container Security

Runtime Hardening

If deploying CaseBender with Docker or Kubernetes: Docker Compose:
Kubernetes:

Image Verification

Before deploying, verify container image signatures:

Network Security

Firewall Rules

Recommendations

  • Block all inbound traffic except port 443
  • Use private networking for all inter-service communication
  • Implement network segmentation between application and data tiers
  • Enable network flow logging for forensic analysis
  • Consider a Web Application Firewall (WAF) in front of the load balancer

Outbound integration policy

CaseBender validates the final outbound destination, disallows redirects, and rejects loopback, link-local, cloud metadata, private, and non-HTTPS destinations by default. On-premises integrations may be explicitly allowlisted by exact hostname:
Do not use wildcards or broad private-network ranges. Keep cloud metadata and orchestrator control-plane addresses blocked. Restrict container egress at the firewall as a second control.

Monitoring

Health Check Endpoints

CaseBender exposes health check endpoints for monitoring: Detailed dependency, queue, credential, or configuration data must not be exposed by public health endpoints.

Log Aggregation

Collect and centralize logs from all CaseBender services:
  • Application logs (structured JSON)
  • Access logs (reverse proxy)
  • Database logs (PostgreSQL)
  • Redis logs
  • Container runtime logs
Use a log aggregation solution (ELK, Loki, Datadog, Splunk) to centralize, search, and alert on log data. Never log authorization headers, API keys, webhook signing secrets, activation codes, license signing keys, full proxy URLs, or integration request bodies. Apply equivalent redaction in the log collector.

Backup and Recovery

Backup Strategy

Recovery Targets

Recovery Testing

  • Test database restoration quarterly
  • Test full environment recovery annually
  • Document recovery procedures and keep them updated
  • Conduct tabletop exercises for disaster scenarios