Docs / Reference / Tech Stack

Tech Stack

What MonsterOps is built with.

Layer Technology
Backend FastAPI (async), Python 3.11+
ORM SQLAlchemy 2 (async) + asyncpg
Migrations Alembic
Database PostgreSQL 15+
Auth PyJWT, Argon2id (argon2-cffi), bcrypt fallback
Config pydantic-settings
Frontend Vanilla JS — ES Modules + Web Components (no build step)
Design system "Console" — Inter + IBM Plex Mono, Cloudflare-inspired neutral canvas + orange accent
Charts Chart.js (ESM)
Geolocation geoip2 + MaxMind GeoLite2-City (local mmdb)
NAS SSH/Telnet Netmiko (synchronous, run in a thread-pool executor)
Firewall nftables (nft), shell-free subprocess, table inet monsterops only
Credential encryption cryptography — AES-256-GCM
Scheduling APScheduler
Packaging pyproject.toml (hatchling)

Security posture

  • Passwords — Argon2id (with a bcrypt fallback).
  • Sessions — JWT in HttpOnly cookies with refresh rotation; CSRF tokens on browser mutations.
  • Headers — CSP, HSTS, X-Frame-Options.
  • Access control — role-based (superadmin / admin / readonly), enforced server-side, with a full audit log.
  • Credentials at rest — NAS Manager secrets and directory bind passwords are AES-256-GCM encrypted under a key derived from MONSTEROPS_SECRET_KEY.

This website

This documentation site is itself vanilla HTML/CSS/JS with no framework — it reuses the app's design tokens so the two read as one product. The docs are generated from Markdown at build time; the served site has no runtime dependencies.