Getting Started

July 14, 2026 · View on GitHub

Data layers

SecOpsTM relies on three data layers fetched separately:

LayerContentSizeCommand
Security knowledge baseMITRE ATT&CK, CAPEC, D3FEND, CIS, NIST, CVE mappings~140 MBsecopstm download-data
RAG vector storePre-built embeddings for AI threat generation~200 MBsecopstm --init-rag
Fresh CVE dataUp-to-date CVE→CAPEC database (dev/contributors only)~94 MBclone Galeax/CVE2CAPEC

The security knowledge base is required for full STRIDE + MITRE analysis. The RAG vector store is optional and enables AI-powered threat enrichment. The CVE data bundled in the knowledge base covers 1999–2025 — clone CVE2CAPEC only if you need the absolute latest entries.


Installation options

The Docker image already includes the security knowledge base. LLM inference works out of the box — just pass your API key. The RAG vector store is the only extra download (optional, ~200 MB).

# Offline threat modeling — no AI key needed
docker run -p 5000:5000 -v $(pwd)/output:/app/output \
  ellipse2v/secopstm:latest

# With LLM inference — default provider is NVIDIA NIM (free tier available)
# See https://build.nvidia.com/meta/llama-3_3-70b-instruct for a free API key
docker run -p 5000:5000 \
  -e NVIDIA_NIM_API_KEY=your_key \
  -v $(pwd)/output:/app/output \
  ellipse2v/secopstm:latest

# To switch provider or model without rebuilding, mount your own ai_config.yaml:
docker run -p 5000:5000 \
  -e GEMINI_API_KEY=your_key \
  -v $(pwd)/ai_config.yaml:/app/config/ai_config.yaml:ro \
  -v $(pwd)/output:/app/output \
  ellipse2v/secopstm:latest

# With LLM + RAG — one-time vector store download, then reuse the named volume
docker run --rm \
  -v secopstm-rag:/app/rag \
  ellipse2v/secopstm:latest \
  --init-rag

docker run -p 5000:5000 \
  -e NVIDIA_NIM_API_KEY=your_key \
  -v secopstm-rag:/app/rag \
  -v $(pwd)/output:/app/output \
  ellipse2v/secopstm:latest

Open http://localhost:5000 in your browser.

Option B — pip install

pip install SecOpsTM

# Install Graphviz (required for diagram generation)
#   Windows: https://graphviz.org/download/
#   macOS:   brew install graphviz
#   Linux:   sudo apt-get install graphviz

# Step 1 — Security knowledge base (~140 MB, required for MITRE/CVE mapping)
secopstm download-data

# Step 2 — RAG vector store (~200 MB, optional — enables AI threat enrichment)
secopstm --init-rag

# Step 3 — Start
secopstm --server

Both download-data and --init-rag are one-time steps that download from GitHub Releases and work fully offline afterwards. Re-run with --force to update.

Option C — From source (development)

git clone https://github.com/ellipse2v/SecOpsTM.git
cd SecOpsTM
pip install -e .
# external_data/ is already in the repo — no download-data step needed

To get the latest CVE entries (beyond the 1999–2025 snapshot in the repo):

# Clone the CVE2CAPEC database next to the SecOpsTM directory
git clone https://github.com/Galeax/CVE2CAPEC.git ../CVE2CAPEC
python tooling/copy_cve_data.py

Quick CLI test:

secopstm --model-file threatModel_Template/threat_model.md

Using the Web Interface (Server Mode)

The framework includes a web-based interface for interactive threat modeling, accessible from a central menu.

  1. Launch the server:

    secopstm --server
    # or equivalently:
    python3 -m threat_analysis --server
    
  2. Open your browser to the address shown in the console (usually http://127.0.0.1:5000/).

  3. Choose a mode:

    • Simple Mode: For quick visualization and editing of system models written in Markdown. It features a live preview and supports multi-file projects through a tabbed interface, so you can edit a main model and its sub-models together.
    • Graphical Editor: A visual, drag-and-drop canvas for building system models from scratch without writing Markdown. This mode is under active development.