mirror of
https://github.com/j3ssie/osmedeus.git
synced 2026-09-29 21:15:00 +02:00
306 lines
9.5 KiB
YAML
306 lines
9.5 KiB
YAML
# Osmedeus Configuration File
|
|
# This file contains all available configuration options for osmedeus.
|
|
# Copy this file to ~/osmedeus-base/osm-settings.yaml and customize as needed.
|
|
|
|
# =============================================================================
|
|
# Base Folder
|
|
# =============================================================================
|
|
# Root directory for all osmedeus data (workflows, binaries, data, etc.)
|
|
# Environment variables like $HOME are automatically expanded
|
|
base_folder: $HOME/osmedeus-base
|
|
|
|
# =============================================================================
|
|
# Environment Paths
|
|
# =============================================================================
|
|
# Directory paths for various osmedeus components
|
|
# Use {{base_folder}} to reference the base_folder value above
|
|
environments:
|
|
# Path to binary executables (tools like nmap, ffuf, etc.)
|
|
external_binaries_path: "{{base_folder}}/external-binaries"
|
|
|
|
# Data directory for storing assets, wordlists, etc.
|
|
external_data: "{{base_folder}}/external-data"
|
|
|
|
# External configuration files (nuclei templates, etc.)
|
|
external_configs: "{{base_folder}}/external-configs"
|
|
|
|
# Output directory for scan workspaces
|
|
# Each target gets its own subdirectory here
|
|
workspaces: "$HOME/workspaces-osmedeus"
|
|
|
|
# Directory containing workflow YAML files
|
|
# Subdirectories: flows/, modules/
|
|
workflows: "{{base_folder}}/workflows"
|
|
|
|
# Directory for workspace snapshots (zip archives)
|
|
# Used by the snapshot-download API endpoint
|
|
snapshot: "{{base_folder}}/snapshot"
|
|
|
|
# Directory for markdown report templates
|
|
# Used by render_markdown_report() function
|
|
markdown_report_templates: "{{base_folder}}/markdown-report-templates"
|
|
|
|
# Directory for external agent configurations
|
|
# Used for LLM Agent commands, skills, and related configurations
|
|
external_agent_configs: "{{base_folder}}/external-agent-configs"
|
|
|
|
# Directory for external utility scripts
|
|
# Used for storing custom scripts and utilities
|
|
external_scripts: "{{base_folder}}/external-scripts"
|
|
|
|
# =============================================================================
|
|
# Database Configuration
|
|
# =============================================================================
|
|
# Osmedeus supports SQLite (default) and PostgreSQL
|
|
database:
|
|
# Database engine: "sqlite" or "postgresql"
|
|
db_engine: sqlite
|
|
|
|
# SQLite: Path to the database file
|
|
# Ignored when using PostgreSQL
|
|
db_path: "{{base_folder}}/database-osm.sqlite"
|
|
|
|
# PostgreSQL connection settings
|
|
# Only used when db_engine is "postgresql"
|
|
host: localhost
|
|
port: 5432
|
|
username: osmedeus
|
|
password: osmedeus
|
|
db_name: osmedeus
|
|
|
|
# Connection timeout in seconds
|
|
connection_timeout: 60
|
|
|
|
# PostgreSQL SSL mode: disable, require, verify-ca, verify-full
|
|
ssl_mode: disable
|
|
|
|
# =============================================================================
|
|
# Server Configuration
|
|
# =============================================================================
|
|
# REST API server settings for the web interface
|
|
server:
|
|
# Host to bind the server to
|
|
# Use "0.0.0.0" to listen on all interfaces
|
|
# Use "127.0.0.1" to listen only on localhost
|
|
host: "0.0.0.0"
|
|
|
|
# Port number for the API server
|
|
port: 8002
|
|
|
|
# Path to serve static UI files
|
|
# Default: {{base_folder}}/ui/ - if this directory exists, it will be served at /ui
|
|
# Set to empty string to disable UI serving
|
|
ui_path: "{{base_folder}}/ui/"
|
|
|
|
# Random prefix for workspace static files (auto-generated 16 chars if empty)
|
|
# Used as URL path segment for direct access to workspaces folder
|
|
workspace_prefix_key: ""
|
|
|
|
# Authentication credentials (map of username:password)
|
|
# Supports multiple users
|
|
simple_user_map_key:
|
|
osmedeus: osmedeus-admin
|
|
|
|
# JWT (JSON Web Token) settings
|
|
jwt:
|
|
# Secret key for signing JWT tokens
|
|
# IMPORTANT: Use a strong, unique secret in production!
|
|
secret_signing_key: change-this-secret-in-production
|
|
|
|
# Token expiration time in minutes
|
|
expiration_minutes: 180
|
|
|
|
# License type shown in HTTP Server header and /server-info endpoint
|
|
license: "open-source"
|
|
|
|
# =============================================================================
|
|
# Scan Tactic Configuration
|
|
# =============================================================================
|
|
# Thread counts for different scan intensity levels
|
|
# Higher values = faster but more aggressive scans
|
|
# Lower values = slower but gentler on target systems
|
|
scan_tactic:
|
|
# Aggressive/fast mode - maximum parallelism
|
|
# Used with: osmedeus scan -t target --tactic aggressive
|
|
aggressive: 40
|
|
|
|
# Default/normal mode - balanced approach
|
|
# Used when no tactic is specified
|
|
default: 10
|
|
|
|
# Gentle/thorough mode - minimal parallelism
|
|
# Used with: osmedeus scan -t target --tactic gently
|
|
gently: 5
|
|
|
|
# =============================================================================
|
|
# Redis Configuration (Optional)
|
|
# =============================================================================
|
|
# Redis is required for distributed scanning mode
|
|
# Leave host empty to disable Redis
|
|
redis:
|
|
# Redis server hostname
|
|
# Leave empty to disable distributed mode
|
|
host: ""
|
|
|
|
# Redis server port
|
|
port: 6379
|
|
|
|
# Redis authentication (if required)
|
|
username: ""
|
|
password: ""
|
|
|
|
# Redis database number (0-15)
|
|
db: 0
|
|
|
|
# Connection timeout in seconds
|
|
connection_timeout: 60
|
|
|
|
# =============================================================================
|
|
# Global Variables
|
|
# =============================================================================
|
|
# User-defined variables available in workflows via {{VARIABLE_NAME}}
|
|
# Variables can optionally be exported to environment variables
|
|
# Use _API_KEY suffix for secrets to indicate sensitive values
|
|
#
|
|
# Format:
|
|
# VARIABLE_NAME:
|
|
# value: "the-value"
|
|
# as_env: true # Optional: export as env var (default: true)
|
|
#
|
|
# Example usage in workflows:
|
|
# - bash: "echo {{GITHUB_API_KEY}}"
|
|
# - bash: "shodan search $SHODAN_API_KEY" # Uses env var
|
|
global_vars:
|
|
# GitHub personal access token for API access
|
|
GITHUB_API_KEY:
|
|
value: ""
|
|
as_env: true # Exports as GITHUB_API_KEY
|
|
|
|
# Shodan API key for passive reconnaissance
|
|
SHODAN_API_KEY:
|
|
value: ""
|
|
as_env: true # Exports as SHODAN_API_KEY
|
|
|
|
# Censys API key for certificate/host search
|
|
CENSYS_API_KEY:
|
|
value: ""
|
|
as_env: true # Exports as CENSYS_API_KEY
|
|
|
|
# PassiveTotal API key for passive DNS/WHOIS
|
|
PASSIVETOTAL_API_KEY:
|
|
value: ""
|
|
as_env: true # Exports as PASSIVETOTAL_API_KEY
|
|
|
|
# Add more API keys as needed (use _API_KEY suffix for secrets)
|
|
|
|
# =============================================================================
|
|
# Notification Configuration
|
|
# =============================================================================
|
|
# Send notifications when scans complete or find interesting results
|
|
notification:
|
|
# Notification provider: "telegram" (future: slack, discord, webhook)
|
|
provider: telegram
|
|
|
|
# Master switch to enable/disable all notifications
|
|
enabled: false
|
|
|
|
# Telegram bot settings
|
|
# Create a bot via @BotFather and get the token
|
|
# Get your chat ID by messaging @userinfobot
|
|
telegram:
|
|
# Bot token from @BotFather
|
|
bot_token: ""
|
|
|
|
# Chat ID to send messages to (can be user or group)
|
|
chat_id: 0
|
|
|
|
# Enable Telegram notifications
|
|
enabled: false
|
|
|
|
# =============================================================================
|
|
# Cloud Storage Configuration (Optional)
|
|
# =============================================================================
|
|
# S3-compatible storage for backing up scan results
|
|
# Supports AWS S3, MinIO, Google Cloud Storage, DigitalOcean Spaces, etc.
|
|
storage:
|
|
# Storage provider: "s3", "minio", "gcs", "spaces", etc.
|
|
provider: s3
|
|
|
|
# Storage endpoint URL
|
|
# AWS S3: Leave empty or use region-specific endpoint
|
|
# MinIO: "http://localhost:9000"
|
|
# DigitalOcean: "https://nyc3.digitaloceanspaces.com"
|
|
endpoint: ""
|
|
|
|
# Access credentials
|
|
access_key_id: ""
|
|
secret_access_key: ""
|
|
|
|
# Bucket name for storing results
|
|
bucket: ""
|
|
|
|
# Cloud region (e.g., us-east-1, eu-west-1)
|
|
region: us-east-1
|
|
|
|
# Use SSL/TLS for connections
|
|
use_ssl: true
|
|
|
|
# Enable cloud storage uploads
|
|
enabled: false
|
|
|
|
# =============================================================================
|
|
# LLM Configuration (Optional)
|
|
# =============================================================================
|
|
# Large Language Model settings for AI-powered features
|
|
# Supports providers like Ollama, OpenAI, Anthropic, etc.
|
|
# Multiple providers can be configured for automatic rotation on error/rate limit
|
|
llm_config:
|
|
# List of LLM providers (rotates to next on error/rate limit)
|
|
llm_providers:
|
|
# Primary provider (used first)
|
|
- provider: ollama
|
|
base_url: "http://localhost:11434/v1/chat/completions"
|
|
auth_token: ""
|
|
model: "gpt-oss:120b-cloud"
|
|
# Backup provider example (uncomment to enable rotation)
|
|
# - provider: openai
|
|
# base_url: "https://api.openai.com/v1/chat/completions"
|
|
# auth_token: "sk-your-api-key"
|
|
# model: "gpt-4"
|
|
|
|
# Enable LLM tool call features
|
|
enabled_tool_call: false
|
|
|
|
# Maximum number of tokens to generate
|
|
max_tokens: 1000
|
|
|
|
# Temperature for sampling
|
|
temperature: 0.7
|
|
|
|
# Top-k sampling
|
|
top_k: 50
|
|
|
|
# Top-p sampling
|
|
top_p: 0.9
|
|
|
|
# Number of completions to generate
|
|
n: 1
|
|
|
|
# Maximum number of retries for failed requests
|
|
max_retries: 3
|
|
|
|
# Timeout for API requests
|
|
timeout: 120s
|
|
|
|
# Enable streaming responses
|
|
stream: false
|
|
|
|
# Enable structured JSON output format
|
|
structured_json_format: false
|
|
|
|
# System prompt for the LLM
|
|
system_prompt: ""
|
|
|
|
# Custom headers for API requests
|
|
custom_headers: ""
|