Skip to content

Configuration Overview

m9m can be configured through configuration files, environment variables, and command-line flags.

Configuration Methods

Method Priority Use Case
Command-line flags Highest Quick overrides
Environment variables Medium Container deployments
Configuration file Lowest Persistent settings

Configuration File Location

m9m looks for configuration in these locations (in order):

  1. ./config.yaml (current directory)
  2. ~/.m9m/config/config.yaml (user directory)
  3. /etc/m9m/config.yaml (system-wide)

Quick Start Configuration

Minimal configuration to get started:

# config.yaml
server:
  host: "0.0.0.0"
  port: 8080

database:
  type: "sqlite"
  sqlite:
    path: "./data/m9m.db"

queue:
  type: "sqlite"
  sqlite:
    path: "./data/queue.db"

Configuration Sections

Section Description
Server Host, port, TLS settings
Database Storage backend configuration
Queue Job queue settings
Security Authentication, CORS
Environment Environment variables

Full Configuration Example

# Server
server:
  host: "0.0.0.0"
  port: 8080
  tls:
    enabled: false

# Database
database:
  type: "sqlite"
  sqlite:
    path: "./data/m9m.db"

# Queue
queue:
  type: "sqlite"
  max_workers: 4
  sqlite:
    path: "./data/queue.db"

# Logging
logging:
  level: "info"
  format: "json"

# Security
security:
  jwt:
    enabled: true
    secret: "your-secret-key"
    expiration: "24h"
  cors:
    enabled: true
    allowed_origins:
      - "http://localhost:3000"

# Execution
execution:
  timeout: "1h"
  retry:
    enabled: true
    max_attempts: 3

Validating Configuration

Check your configuration:

m9m config validate

View effective configuration:

m9m config show

Next Steps