Skip to main content

SKOPOS — fleet observability satellite of the AICOM ecosystem

CI Pages deploy Live demo status Cosmic landing Python >=3.11 tests Streamlit + PostgreSQL Test coverage License: MIT

🌐 English · Русский · Español · Français · 中文 · Glossary

WARDEN quality cycle: MOMUS → AI-Factory → SKOPOS → shared node agent → deployment.

Self-hosted nginx & Apache analytics and AI security for your server fleet — GA-like HTTP dashboards, Security Center with 3D threat map, Prometheus Observability (APM KPIs + 3D service graph), scan history, and an AI agent with voice input. No third-party trackers; data stays on your infrastructure.

SKOPOS — Web Analytics and Security Center with 3D threat map

Live demo · Landing · nine built-in themes

In Greek, skopos (σκοπός) means watcher or scout. SKOPOS is the fleet observability satellite of the AICOM / AIMarket ecosystem: nginx traffic over SSH, security posture across factory / metis / oracle hosts, and an LLM analyst in the sidebar.

Role SSH log collection → SQLite/PostgreSQL analytics → Security Center + AI agent
Live demo skopos.modelmarket.dev
Landing (GitHub Pages) alexar76.github.io/skopos
Monitors nginx access logs (primary), Apache combined, CPU/RAM/disk, ports, fail2ban, port knocks
Charter Read-only SSH probes · self-hosted data · optional dashboard password

Features

  • Analytics — nginx access logs over SSH, SQLite, Streamlit charts, traffic globe
  • Security — CPU/RAM/disk/network, port audit, firewall, cyberpunk 3D threat map, consolidated Security Report
  • Scan History — score timeline, findings trends, snapshot comparison
  • Auto-scan — configurable background security scans (default every 60 min)
  • AI Agent — OpenRouter (default), DeepSeek, OpenAI, Anthropic, Ollama, LM Studio; sidebar chat with voice input
  • i18n — English (default), Russian, Spanish (locales/)

Quick start

See docs/quickstart.md.

cp servers.example.yaml servers.yaml
cp agent.example.yaml agent.yaml
export OPENROUTER_API_KEY=sk-or-...
python skoposctl.py collect
python skoposctl.py security-scan
streamlit run dashboard.py
Page URL
Analytics http://localhost:8501
Security sidebar → Security
Scan History sidebar → Scan History
Settings sidebar → Settings

Security

  • Security Score (0–100, grade A–F) in sidebar on every page
  • Threat alerts banner when critical/high issues exist
  • Dashboard password — set/change/regenerate in the admin panel; only a salted PBKDF2 hash is stored in the DB (env SKOPOS_DASHBOARD_PASSWORD still supported for bootstrap). A post-deploy modal prompts you to set one, and passwords expire after 90 days with a Telegram reminder. See configuration → Dashboard password & rotation
  • SKOPOS_SSH_STRICT_HOST_KEYS=1 — verify SSH host keys (recommended)
  • See docs/audit-findings.md

Documentation

Doc Description
In-app Documentation Guides with screenshots (also in sidebar / top bar)
Quick Start 5-minute setup
User Guide Full UI reference
Use Cases Common workflows
Security Module Architecture & extension
Privacy & data handling IP anonymisation, retention & GDPR / US-state-law mapping
nginx scope Analytics are nginx-only — disclaimer & log format
CHANGELOG Release notes

Analytics scope: traffic dashboards parse nginx access logs by default. Apache combined logs are supported when apache.enabled: true. Security probes are stack-agnostic.

Configure servers

Edit servers.yaml — SSH host, nginx log paths. See servers.example.yaml.

For per-domain analytics, include $host in nginx log_format.

AI agent

Default provider: OpenRouter via OPENROUTER_API_KEY. Edit agent.yaml for DeepSeek, OpenAI, Anthropic, Ollama, or LM Studio.

For a full prioritized remediation report, open Security → Security Report. The sidebar agent supports follow-up chat (including voice) on every page.

Docker

docker compose up -d --build

Open http://localhost:8501

License

MIT — see LICENSE.

Testing & coverage

pip install -r requirements.txt pytest pytest-cov
bash scripts/ci_coverage_badge.sh -- tests/ -q --cov=skopos

227 pytest cases · line coverage on skopos/ tracked in docs/badges/coverage.svg (regenerate with bash scripts/ci_coverage_badge.sh, verified by CI).

Screenshots

Captured from skopos.modelmarket.dev — Analytics dashboards (traffic timeline + country-share donuts) in six themes (sidebar Theme picker):

Light theme Premium theme

Light · Premium

Cosmos theme Ocean theme

Cosmos (midnight) · Ocean

Aurora theme Slate theme

Aurora · Slate

View Screenshot
Security — 3D Threat Map 3D threat map
Sidebar & navigation Sidebar
Floating AI agent Agent

Regenerate hero + theme gallery from production:

export SKOPOS_DASHBOARD_PASSWORD='…'
pip install playwright pillow && playwright install chromium
python scripts/capture_readme_screenshots.py --base-url https://skopos.modelmarket.dev/app/

Metadata

Release files for skopos-fleet 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for skopos-fleet 0.2.1
File Size Uploaded Provenance Actions
skopos_fleet-0.2.1.tar.gz 634.4 kB Without provenance Details for skopos_fleet-0.2.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for skopos-fleet 0.2.1
File Interpreter ABI Platform Actions
skopos_fleet-0.2.1-py3-none-any.whl Python 3 none any Details for skopos_fleet-0.2.1-py3-none-any.whl

Total release size: 1.2 MB

Release files / skopos_fleet-0.2.1.tar.gz

Download URL skopos_fleet-0.2.1.tar.gz
Size 634.4 kB
Tags Source
SHA-256 checksum
How to use checksums
071a7e97c942c886a5f7f5d26d3bc3b36f5806ace28ef33cd1c815eb4931f305
BLAKE2b-256 checksum
How to use checksums
865f0b4bfb10ed5da8f0064536f6bfb54404373309fe05691ea6acfcf11a3ef8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release files / skopos_fleet-0.2.1-py3-none-any.whl

Download URL skopos_fleet-0.2.1-py3-none-any.whl
Size 566.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bbcdab54a9a01b5cd5ec3833ee112154e12c39f457ef4f4ceb280692e35fb6e4
BLAKE2b-256 checksum
How to use checksums
01ac7b37f9a172046819f5a5b1388cbfe689bc6d2c83990b3fddcc472c0d7f81
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Security for skopos-fleet 0.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page