Skip to content

Dashboard Overview

FreeSDN opens to the Dashboard (/dashboard). Everything you do starts here: pick a site, find a module, and act on live data. This page explains the chrome that surrounds every page - the sidebar, the top bar, the Site selector - so you know where things are before you open the first module.

The landing page is a customizable widget grid. Widgets cover:

  • Sites - count and overall health
  • Controllers - registered network/firewall/hypervisor controllers
  • Devices - total managed and offline counts
  • Cameras - feed count, online ratio
  • Additional metric tiles you can add, remove, and drag to reposition

All data is API-driven. The grid re-fetches automatically and respects the global Site filter (see below), so scoping to a specific site narrows every widget to that site’s devices.

Use the Customize button (top-right of the dashboard) to enter drag-and-drop edit mode, and Reset to restore the default layout.


Every page inside the application shares the same chrome: a collapsible left sidebar and a persistent top bar. A per-route error boundary keeps the sidebar and top bar visible even if a page component crashes.

ControlLocationWhat it does
HamburgerFar left (mobile only)Opens the sidebar drawer
Site SelectorLeft of centerScopes all pages to one site - the most important control in the app
Search / Command PaletteCenterOpens the command palette (also Ctrl+K / Cmd+K)
WebSocket status pillRight clusterGreen = live; click to reconnect when offline
Language switcherRight clusterSwitches the UI language (English, Spanish, Chinese)
Theme toggleRight clusterCycles between light, dark, and system
Notifications bellRight clusterOpens the in-app notification drawer
User menuFar rightProfile, change password, settings, logout

The sidebar collapses to 72 px (icons only) or expands to 256 px. On screens narrower than lg it becomes a drawer opened by the hamburger. A text filter at the top searches nav items live; the same data feeds the command palette.

After you visit five or more distinct routes, a Recent rail appears above the sections with your last-visited pages.

The footer holds a Settings link and the collapse toggle.


The Site selector is the master scope control for the entire application. It lives in the top bar and its selection persists across browser sessions (stored in localStorage).

Two modes:

  • All Sites - global view. Pages that aggregate across sites (Sites list, Users, Organizations, Notification Providers) are only available here. Some pages hide or redirect when you switch to All Sites.
  • A specific site - every page filters to that site. The sidebar reveals site-only items (Topology, Discovery) and hides global-only items.

Each site in the dropdown shows a health dot:

Dot colorMeaning
GrayNo devices registered
GreenAll devices online
YellowSome devices offline
RedCritical issues or fewer than 50 % of devices online

The dropdown also shows the device count and offline count for each site. Type to search by name, city, or country. Manage Sites at the bottom navigates to /sites/.

Keyboard shortcut: Ctrl+Shift+S (Windows/Linux) or Cmd+Shift+S (macOS) toggles the dropdown open and closed.


Press Ctrl+K (Cmd+K on macOS) to open the command palette. It searches every nav item - modules, admin pages, settings - and navigates directly.

Press ? inside the palette for a shortcut cheatsheet. g-prefixed shortcuts (e.g., g then h for Dashboard) are active anywhere in the app while you are logged in.


The sidebar groups pages into eight sections. Items are hidden automatically when a module is disabled for your organization or when the site context is wrong (global vs. site-scoped). You will only see items your role permits.

LinkRouteNotes
Dashboard/The widget grid landing page
Sites/sites/Global only - visible in “All Sites” mode
Health/health/Platform health dashboard (5 tabs)
Topology/topology/Site only - interactive xyflow network map

Gated by the Network module. Includes switch port management, VLANs, access points, Wi-Fi SSIDs, clients, PoE, VPN, and firewall. Discovery (/discovery/) is site-only.

Gated by the Video Surveillance module. Includes the camera grid, Camera Wall, NVRs, multi-camera synchronized playback, event review, and daily reports.

Gated by the VoIP & Telephony module. Includes phone fleet, PBX systems, extensions, call history, voicemail, provisioning templates, and VoIP discovery.

LinkRouteModule gateNotes
Hypervisor/hypervisor/hypervisorProxmox VE cluster management
Storage/storage/NoneRead-only TrueNAS health dashboard
Backups/backups/backupConfig snapshot schedule + restore
Access Control/access/access_controlBeta, off by default

Covers alert management (/alerts/), incidents (/incidents/), Observability / log collection (/collector/), log explorer (/collector/logs/), system audit logs (/logs/), analytics (/analytics/), SLA policies (/sla/), bulk operations (/bulk-operations/), device lifecycle (/lifecycle/), config reconciliation (/reconciliation/), and firmware lifecycle (/firmware/).

The Gateway controller-side feature pages (VPN, routing, firewall, diagnostics, hotspot, profiles, pending changes) also appear here when the Firewall module is enabled.

LinkRouteNotes
Fabric/fabric/Universal app-interconnect visual builder
Automation Rules/automation/CRUD rules + execution history
Alert Rules/alert-rules/Threshold / pattern / anomaly alert engine
Notification Providers/notification-providers/Global only
Webhooks/webhooks/Webhook CRUD + delivery history
Integrations/integrations/Guided typed integrations (n8n, Slack, PagerDuty)
Config Templates/templates/Scope-based config template hierarchy
Site Groups/groups/Org → Site Group → Sites and Device Groups
AI Assistant/ai/Gated by the AI module
LinkRouteNotes
Controllers/controllers/Add/test/sync/delete network, firewall, and hypervisor controllers
Credentials/credentials/Encrypted credential vault
Agents/agents/Remote site agent management + scan dispatch
Agent Downloads/agents/downloads/Windows/macOS/Linux installer links
Agent Releases/agents/releases/Upload/manage agent binaries (gated agent:admin)
Users/users/Global only; requires org_admin or super_admin role
Roles/roles/Role + permission matrix; global only
Organizations/organizations/Tenant management; global only
Security Audit/security/Security events, audit logs, failed logins, IP blocks; gated audit:read
Plugins/plugins/Manage installed third-party plugins; requires org_admin role (or plugins.admin permission); install requires super_admin
Marketplace/marketplace/Browse and install Ed25519-signed plugins; install gated to super_admin
Drivers/drivers/Read-only adapter/driver registry; global only

Click your name or avatar in the top-right user menu to access:

  • Profile dialog - edit display name and username via PATCH /auth/me (fields: full_name, username, language). Email can only be changed by an administrator via PATCH /users/{id} - self-service email change is not available to regular users.
  • Change Password - enforces the platform password policy (12-character minimum, uppercase, lowercase, digit, special character)
  • Delete Account - destructive; requires typing DELETE to confirm
  • Settings - opens /settings/
  • Logout

MFA status appears in the profile dialog. Per-user TOTP setup and backup-code management are not available in Settings. The Enable / Manage button in the profile dialog navigates to /settings/security, but that route currently redirects to /settings/general rather than a functional MFA management page. The Settings to SSO tab (/settings/sso) covers organization-level identity-provider configuration, not per-user TOTP.


The theme toggle in the top bar switches between light, dark, and system (follows OS preference). For persistent preference and accent-color presets, go to Settings → Appearance (/settings/appearance). You can also disable route-transition animations there if you prefer a faster feel.


Every module-gated nav item disappears when the module is disabled for your organization. The page itself also enforces this via ModuleGuard: navigating directly to a disabled module’s URL shows a “Module Disabled” notice rather than an error.

Enable or disable modules at Settings → Modules (/settings/modules/). The setup wizard also lets you choose which modules to activate during first-run.


The bell icon in the top bar opens the notification drawer. It has two tabs:

  • Active - unread notifications with mark-as-read, dismiss, and a “Load more” paginator
  • Archive - previously dismissed notifications

Clicking a notification navigates to its linked page. Mark all read clears the unread badge. Notification delivery channels and severity thresholds are managed at Settings → Notifications.

The sidebar Alerts item carries its own badge aggregating security events, firing alert rules, and open incidents. The badge dropdown lets you filter by source and minimum severity, and offers a “mark all reviewed” action.


  • First time here? Follow the Quick Start guide to run the setup wizard and register your first controller.
  • Add a site - go to /sites/ and create a site, then use the Site selector to scope to it.
  • Enable modules - visit /settings/modules/ to turn on the features your deployment needs.
  • Explore a module - choose a section in the sidebar and open the relevant module reference page in Modules.
  • Register agents - for L2/L3 network discovery, see the Agent guide.
  • Automate workflows - see Automation & Fabric to wire events to actions.