Prerequisites
- Go 1.21+ (for local builds)
- Docker 20.10+ (for containerized deployment)
- Docker Compose 2.0+ (for distributed mode)
Quick Start
Building
Local Build
Docker Build
Deployment Modes
Single Host
Direct Binary
Docker Container
Distributed Mode (Master/Worker)
Distributed mode allows scaling scan workloads across multiple worker nodes using Redis as a message queue.Architecture
Docker Compose Setup
Manual Distributed Setup
If not using Docker Compose:Submitting Distributed Scans
Configuration
Configuration File
Default location:~/osmedeus-base/osm-settings.yaml
Environment Variables
Command Line Overrides
Docker Compose Reference
The includedbuild/docker/docker-compose.yml provides a complete distributed setup:
Services
Volumes
Scaling
Production Considerations
Security
- Authentication: Never use
-A(no-auth) in production - JWT Secret: Change the default JWT secret in config
- TLS: Use a reverse proxy (nginx, traefik) for HTTPS
- Network: Restrict Redis access to internal network only
Resource Limits
Worker resource limits in docker-compose.yml:Health Checks
The Docker image includes built-in health checks:Logging
Database Options
For production, consider PostgreSQL instead of SQLite:Backup
Ansible Deployment
Deploy Osmedeus on Ubuntu/Debian servers using Ansible. Uses the official install script, SQLite storage, and no Redis — designed for simple single-host setups.Prerequisites
- Control machine: Ansible 2.12+
- Target server: Ubuntu 20.04+ or Debian 11+
- SSH access with root or sudo privileges
Quick Start
What It Does
- Installs system dependencies (curl, tmux, git, chromium, etc.)
- Installs Osmedeus via
curl -fsSL https://www.osmedeus.org/install.sh | bash - Deploys
osm-settings.yamlconfigured with SQLite (no Redis) - Runs
osmedeus healthto verify the installation - Sets up a systemd service for auto-start on boot
Playbook Files
Variables
Customization
Override any variable at deploy time with-e:
