Skip to main content
Osmedeus provides multiple Docker deployment options to suit different use cases:

Prerequisites

  • Docker version 20.10 or later
  • Docker Compose version 2.0 or later (included with Docker Desktop)

Quick Start with Toolbox

The Toolbox image is the fastest way to get started. It includes all security tools pre-installed via the official install script.

Using Make Targets

Manual Docker Commands

The toolbox container persists data using Docker volumes for osmedeus-base and workspaces-osmedeus, so your scan results survive container restarts.

Running Workflows

Interactive Mode

Enter the container shell and run scans interactively:

One-Off Commands

Run scans without entering the container:

Persisting Results with Volume Mounts

For host-accessible scan results, mount local directories:

Running the Server

Basic Server Startup

Start the REST API server inside the toolbox container:

Server with Authentication

The API server uses JWT authentication by default. Configure credentials in osm-settings.yaml:
Start with authentication enabled:
For development without authentication, use the -A flag:

Distributed Mode with Docker Compose

For large-scale scanning, use the distributed architecture with a master node coordinating multiple workers.

Architecture

Basic Setup

The basic compose file (docker-compose.yml) includes Redis, master, and workers with SQLite:

Production Setup

For production deployments with PostgreSQL, use docker-compose.production.yaml: Step 1: Create environment file
Edit .env with secure values:
Generate secure passwords with: openssl rand -base64 24
Step 2: Configure application settings The production compose file mounts osm-settings.production.yaml. Key settings:
Step 3: Start the production stack

Environment Variables

Scaling Workers

Workers can be scaled dynamically based on workload:
Each worker has resource limits (configurable in compose file):
  • CPU: 2 cores (limit), 0.5 cores (reservation)
  • Memory: 2GB (limit), 512MB (reservation)

Building Custom Images

Production Image

The production Dockerfile (build/docker/Dockerfile) creates a minimal image:

Development Image

For development with hot-reloading:
The development image includes:
  • Full Go toolchain
  • Air for hot-reloading
  • Vim for editing

Toolbox Image

Build the full-featured toolbox with all tools:

Volume Management

Osmedeus uses two primary data directories:

Backing Up Volumes

Removing Volumes

Troubleshooting

Container Won’t Start

Permission Issues

If you encounter permission issues with mounted volumes:

Database Connection Errors

For PostgreSQL connection issues:

Redis Connection Errors

Health Check Failures

Out of Memory

If workers run out of memory, adjust resource limits in the compose file: