Technical Details
System requirements, scanning capabilities, architecture, and license details.
Prerequisites
SEAMUS runs entirely in containers. You need a container runtime — that's it. No Python, Ruby, Go, or other language runtimes to install on the host.
Container Runtime (required)
One of the following:
- Docker Engine (Docker CE) — Linux
- Docker Desktop — Windows (WSL2 backend)
- Podman 4.0+ with
podman-compose— Linux (RHEL, Fedora, etc.)
The seamus CLI auto-detects Docker vs Podman.
Hardware
- CPU: 2+ cores recommended
- RAM: 4 GB minimum, 8 GB recommended
- Disk: 10 GB free (images ~2 GB, scan data grows over time)
- Network: Outbound internet access for scanning targets
seamus CLI is a plain bash script.
Supported Platforms
| Platform | Container Runtime | Status |
|---|---|---|
| Ubuntu 22.04 / 24.04 | Docker CE or Podman | Fully tested |
| RHEL 9 / 10, Fedora, Rocky, Alma | Podman (default) or Docker CE | Fully tested |
| Debian 12 | Docker CE or Podman | Supported |
| Windows 10/11 | Docker Desktop (WSL2 backend) | Supported — see setup guide |
Architecture
SEAMUS deploys as three containers managed by Docker Compose (or podman-compose):
| Container | What It Does | Port |
|---|---|---|
| easm-scanner | Runs all scanning tools (Amass, naabu, Nuclei, ZAP), scheduled scans, notifications, reports, and the seamus CLI |
— |
| seamus-console | SEAMUS Console web UI — configuration viewer, documentation browser, AI chat assistant, compliance dashboard | 3002 |
| uptime-kuma | Uptime monitoring dashboard with status pages and alerting | 3001 |
All scan data, configuration, reports, and audit logs are stored in a data/ directory on the host, mounted as Docker volumes. Your data stays on your machine.
Scanning Capabilities
Automated Scans
| Scan Type | Tool | Default Schedule | What It Finds |
|---|---|---|---|
| Subdomain discovery | Amass | Daily | New subdomains, DNS records, related infrastructure |
| Port scanning | naabu | Daily | Open ports, running services, version detection |
| Vulnerability scanning | Nuclei | Weekly | CVEs, misconfigurations, exposed panels, default credentials |
| Web app scanning (DAST) | ZAP | Weekly | XSS, SQLi, CSRF, security headers, OWASP Top 10 |
| SSL certificate monitoring | Built-in | Weekly + 7-day alert | Expiring certificates (30-day warning in reports, 7-day standalone alert) |
| Uptime monitoring | Uptime Kuma | Continuous | HTTP/HTTPS/TCP/Ping availability, response time, status pages |
AI Analysis
After each scan cycle, SEAMUS sends scan results to an AI model for analysis. The AI:
- Summarizes findings in plain English
- Flags anomalies (new hosts, unexpected ports, trend changes)
- Explains CVEs with remediation steps
- Assesses false positive likelihood
- Delivers weekly digests to your notification channels
Notifications
SEAMUS supports 7 notification channels, each with topic-tagged alerts:
| Channel | Topics |
|---|---|
| Google Chat, Slack, Microsoft Teams, Discord | [WEEKLY] [DISCOVERY] [CRITICAL] [CERT-EXPIRY] [DAST] |
| Email (SMTP) | |
| Generic webhook, Custom script |
Reports
Generated automatically after every scan cycle:
- HTML — interactive report for browser review
- PDF — executive-ready, printable
- Markdown — for git repositories and wikis
- CSV — for SIEM import, spreadsheets, and analysis
The seamus CLI
A single command-line interface manages the entire platform:
seamus setup # Interactive first-run wizard
seamus up # Start all containers
seamus down # Stop all containers
seamus update # Pull latest images and restart
seamus scan # Run a scan now
seamus findings # View latest findings
seamus report # Generate reports
seamus validate # Run tool validation tests (auditor-ready)
seamus audit # View audit log
seamus audit --verify # Verify hash chain integrity
seamus audit export # Export audit log for auditors
seamus proxy test # Test proxy configuration
seamus license # View license status
seamus uninstall # Remove SEAMUS
Compliance & Audit
SEAMUS is designed to produce evidence that auditors accept:
- Hash-chained audit log — every scan execution is recorded in a SHA-256 hash-chained JSONL file. Breaking any entry invalidates all subsequent hashes. Verify integrity with
seamus audit --verify. - SOC 2 control mapping — maps SEAMUS capabilities to Trust Services Criteria (CC3.1, CC6.1, CC7.1–CC7.4)
- ISO 27001 control mapping — maps to Annex A controls (A.5.7, A.8.2.1, A.8.9, A.8.15, A.8.16, A.5.36)
- Tool validation reports —
seamus validateproduces signed, auditor-ready reports proving each scanning tool works in your environment - Console Compliance tab — browse audit logs, control mappings, and validation reports in the web UI with filter, verify, export, and print
Windows 10/11 Setup Guide
SEAMUS runs on Windows via WSL2 (Windows Subsystem for Linux) and Docker Desktop. All SEAMUS commands run inside a WSL2 terminal, not in Windows CMD or PowerShell.
Prerequisites
- Enable WSL2 — open PowerShell as Administrator:
Restart when prompted. This installs Ubuntu by default.wsl --install - Install Docker Desktop — download from docker.com
- During install, ensure "Use WSL2 based engine" is checked
- In Docker Desktop settings → Resources → WSL Integration, enable your Ubuntu distro
Installation
- Open a WSL2 terminal (search "Ubuntu" in Start Menu)
- From this point, all commands are identical to Linux:
# Copy the distribution zip into WSL (or download directly) cp /mnt/c/Users/YourName/Downloads/seamus-dist-1.0.3.zip ~ cd ~ unzip seamus-dist-1.0.3.zip cd seamus ./seamus setup ./seamus up
Accessing the Console
The Console and Uptime Kuma are accessible from your Windows browser at the same URLs shown by ./seamus up. Docker Desktop forwards the ports from WSL2 to Windows automatically.
Setting Up Automated Scanning
SEAMUS detects your platform and guides you to the right scheduling method:
# If cron is available (most WSL2 Ubuntu installs):
./seamus setup-cron
# If cron is not available, use Windows Task Scheduler:
./seamus setup-task
The setup-task command generates a PowerShell command you run in an Administrator PowerShell window. It creates two Windows Scheduled Tasks that call SEAMUS through WSL2 automatically.
To remove scheduled tasks:
./seamus remove-cron # Linux cron
./seamus remove-task # Windows Task Scheduler
seamus CLI is a bash script that requires a Linux environment.
Proxy Support
SEAMUS supports rotating proxy IPs for scanning, useful for avoiding rate limits or IP-based blocking. Configure a proxy provider (e.g., WebShare) in seamus.env and all scan tools route through it automatically. Test with seamus proxy test.
License & What Happens at Expiry
SEAMUS uses a signed license file (HMAC-SHA256). There is no DRM and no kill switch. The Console sends a lightweight, non-blocking telemetry beacon (version, license ID, timestamp) on startup for usage analytics — see the Privacy Policy for details. SEAMUS does not contact our servers to validate your license or restrict functionality.
2-week free trial
Full functionality, no credit card required. A trial license is created automatically on first run.
Active license
Everything works: Console, AI analysis, reports, notifications, compliance tooling, and all scans.
Expired or cancelled
When your license expires or you stop renewing:
| Component | Licensed | Expired |
|---|---|---|
| Subdomain enumeration (Amass) | Runs | Runs |
| Port scanning (naabu) | Runs | Runs |
| Vulnerability scanning (Nuclei) | Runs | Runs |
| Web app scanning (ZAP) | Runs | Runs |
| Uptime Kuma monitoring | Runs | Runs |
| Raw scan data on disk | Yours | Yours |
| Audit log | Records | Records |
| SEAMUS Console | Full access | Disabled |
| AI analysis | Full | Disabled |
| Reports (HTML/PDF/MD/CSV) | Full | Disabled |
| Notifications & alerts | All channels | Disabled |
| Updates | 12 months | None |
Setting Up AI Features
SEAMUS AI features are optional and require an API key from Anthropic. All scanning, reporting, and notifications work without AI enabled.
Step 1: Create an Anthropic account
- Go to console.anthropic.com
- Sign up or log in
- Navigate to Settings → API Keys
- Click Create Key
- Copy the key (it starts with
sk-ant-)
Step 2: Add the key to SEAMUS
Either re-run the setup wizard:
./seamus setup
Or edit data/config/notify.conf directly:
ANTHROPIC_API_KEY="sk-ant-your-key-here"
No restart is needed. The Console reads the key on each chat request, and scan scripts pick it up on the next run.
Cost
AI features use Anthropic's API with prompt caching enabled (~90% cost reduction on repeat queries). Typical cost:
- Weekly digest: ~$0.05/week
- Daily scan analysis: ~$0.01/run
- Console chat: ~$0.01–0.05/query
- Total: ~$1–2/month for typical usage
What the AI can see
The AI receives your scan results, configuration, and documentation as context for each request. Data is sent to Anthropic's API for processing and is not stored by the AI provider beyond the duration of the request. No scan data is shared with other customers or used for training.
TLS Certificates
SEAMUS generates a self-signed TLS certificate on first startup. The Console serves over HTTPS automatically. Your browser will show a certificate warning — this is expected and the connection is still encrypted.
Using your own certificate
If your organization requires a trusted certificate (e.g., from Let's Encrypt or an internal CA), replace the self-signed files:
data/certs/console.pem # Your certificate (PEM format)
data/certs/console-key.pem # Your private key (PEM format)
Then restart the Console:
./seamus down && ./seamus up
The certificate files must be readable by the Console container. No other configuration is needed — the Console automatically uses whatever certificate is at that path.
fullchain.pem and privkey.pem files into data/certs/ and set up a cron job to restart the Console after renewal.
Updating SEAMUS
To update SEAMUS to the latest version:
./seamus update
This pulls the latest container images and restarts services. Your data, configuration, and license are preserved — they live in data/ and are not part of the container images.
You can also update manually:
./seamus down
docker compose pull # or: podman-compose pull
./seamus up
Exporting Data
All SEAMUS data lives in the data/ directory on your host. You own it and can export it at any time:
| What | Location | Format |
|---|---|---|
| Scan results | data/scans/ |
JSON, XML |
| Vulnerability findings | data/scans/*_nuclei_*.json |
JSON Lines (one finding per line) |
| Subdomain inventory | data/inventory/known_subdomains.txt |
Plain text (one per line) |
| Audit log | data/audit/audit.jsonl |
Hash-chained JSON Lines |
| Scan logs | data/logs/ |
Plain text logs |
| Reports | data/scans/*_report.* |
HTML, PDF, Markdown, CSV |
| Configuration | data/config/ |
Text files |
To export the audit log for auditors:
./seamus audit export
To back up everything:
tar czf seamus-backup-$(date +%Y%m%d).tar.gz data/