Self-hosted · FreeRADIUS

Everything around your FreeRADIUS, in one dashboard.

Manage RADIUS users, NAS devices, live sessions, a safe firewall, VPN, and automation — for ISPs and enterprise networks. One Python package. No Node.js, no build step.

Read the docs GitHub
The MonsterOps mascot — a dragon peering over a ledge

The whole operational surface around RADIUS

Not just a user editor — the tools an operator actually reaches for, in one place.

Users & groups

Full radcheck / radreply / radusergroup CRUD, bulk CSV import/export, and per-user session & auth history.

NAS management

Vendor presets, NAS groups, ICMP reachability, and an SSH/Telnet manager that pulls, diffs, and pushes config — including one-click "point a NAS at RADIUS."

Firewall manager

A dedicated nftables table with staged apply, snapshot + auto-rollback, and adaptive access control — built to keep you from locking yourself out.

Sessions & analytics

Live sessions with CoA disconnect, accounting history, and auth logs with geo-location and anomaly detection.

Realms & Active Directory

RADIUS proxy and per-realm authentication, including delegated Active Directory — route each realm to the right backend.

Automation & API

Event→action rules, scheduled jobs and reports, webhooks, integrations (Zabbix, Graylog, GeoIP), and a scoped REST API.

…plus IP pools, WireGuard / L2TP-IPsec VPN tunnels, and a plugin system. See the documentation for everything.

Up and running in a minute

Install from PyPI, build the schema, and serve. The migrations ship in the package.

# 1. install
$ pip install monsterops

# 2. create / upgrade the database schema
$ monsterops migrate

# 3. serve — then open http://localhost:8000
$ monsterops serve --host 0.0.0.0 --port 8000

Needs Python 3.11+ and a PostgreSQL database (the same one FreeRADIUS uses). Full steps in the installation guide.

FastAPI· PostgreSQL· FreeRADIUS· Vanilla JS· One Python package — no Node.js, no build step