29,127 Lines
  • JSON 52.1%
  • Vue.js Component 23.8%
  • TypeScript 18.7%
  • Markdown 4%
  • Yaml 0.6%
  • Shell 0.6%
  • JavaScript 0.2%
  • XML 0%
  • Scss 0%
README.md

ControlCenter

Next-Generation Zero-Trust Infrastructure & Server Management Dashboard

Real-time machine telemetry, Web-based SSH terminals, Obsidian-style infrastructure star graph, and zero-trust daemon orchestration.

Web Dashboard Repository โ€ข Daemon Agent Repository


๐ŸŒŸ Overview

ControlCenter is a self-hosted, lightweight, and database-free infrastructure management hub built with Nuxt 3, Vue 3, TailwindCSS, and DaisyUI.

It provides enterprise-grade observability and control across physical servers, cloud VMs, edge devices, and local networking equipment (routers, switches, firewalls, subnets) with out-of-the-box HTTPS/WSS security and zero open incoming ports on managed nodes.


โœจ Key Features

  • ๐Ÿ”’ Zero-Trust Outgoing Node Connections: Managed nodes run the lightweight controlcenter-daemon and initiate outbound secure WebSocket (wss://) connections to the server. No incoming ports need to be forwarded or exposed on client machines.
  • ๐ŸŒŒ Obsidian-Style Star Graph Topology (/topology):
    • Interactive HTML5 canvas with custom force-directed spring and repulsion physics.
    • Multi-homed IP matching: Nodes with multiple network interfaces (physical LAN, Netmaker VPN, Wireguard, Docker bridges) automatically link to matching router CIDR subnets simultaneously.
    • Satellite port badges displaying live reachability dots, latency, and custom Public Domain / Reverse Proxy URLs.
    • Interactive Device & Network Inventory list below canvas with search, filter tabs, and 1-click graph visibility toggles.
  • ๐Ÿ’ป Integrated Web-SSH Terminal (xterm.js):
    • Seamless, low-latency interactive SSH terminal right in your browser over encrypted WebSockets.
    • Automated Ed25519 SSH keypair generation and management with zero-touch node authentication.
  • ๐Ÿ“ˆ Real-Time Telemetry & Observability:
    • Live streaming CPU usage, RAM utilization, storage mounts, network transfer rates, system uptime, and OS details.
  • ๐Ÿ›ก๏ธ Zero-Database File Architecture:
    • Fast, portable, and clean state persistence directly in ~/.controlcenter/settings.json.
  • ๐Ÿ” Out-of-the-Box HTTPS & Certificate Fingerprint Pinning:
    • Auto-generated self-signed SSL certificate with full SAN IP/DNS mapping.
    • Preloaded ESM SSL injector ensuring native HTTPS/WSS when run under systemd, AUR, or CLI without manual environment configuration.

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                      User Web Browser                       โ”‚
โ”‚        (Nuxt 3 / Vue 3 SPA + xterm.js + Canvas Graph)       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                               โ”‚ HTTPS / WSS
                               โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚               ControlCenter Server (Nitro / H3)             โ”‚
โ”‚  - Auto-SSL Preloader (HTTPS / WSS on Port 4382)            โ”‚
โ”‚  - Zero-Trust Daemon Manager & Web-SSH Gateway              โ”‚
โ”‚  - CIDR Multi-Homed Network Engine & Reachability Prober    โ”‚
โ”‚  - State Storage: ~/.controlcenter/settings.json            โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ฒโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ฒโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
               โ”‚ WSS Outbound Handshake        โ”‚ WSS Outbound Handshake
               โ”‚ (Port 4382)                   โ”‚ (Port 4382)
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Node 1 (Linux Server / VM) โ”‚ โ”‚ Node 2 (Edge / Multi-Homed) โ”‚
โ”‚   ControlCenter.Daemon      โ”‚ โ”‚   ControlCenter.Daemon      โ”‚
โ”‚   - CPU, RAM, Disk, Net     โ”‚ โ”‚   - LAN: 192.168.178.67     โ”‚
โ”‚   - Process Collector       โ”‚ โ”‚   - VPN: 100.64.0.12        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿš€ Quick Start

# Install ControlCenter Web from AUR
yay -S controlcenter

# Enable and start the background service
sudo systemctl enable --now controlcenter

Access the dashboard at https://<server-ip>:4382.

Option 2: Manual Installation & Build

# Clone the repository
git clone https://code.weexnes.dev/ControlCenter.git
cd ControlCenter.Web

# Install dependencies
npm install

# Build the production application
npm run build

# Start the server (runs native HTTPS/WSS)
PORT=4382 node .output/server/index.mjs
# or use the helper script:
./start.sh

๐Ÿ“ก Connecting Nodes (Daemon Setup)

On any machine you want to monitor, install and connect the daemon:

# Download and install daemon
curl -sSL https://code.weexnes.dev/ControlCenter/ControlCenter.Daemon/~raw/master/install.sh | sudo bash

# Connect daemon to ControlCenter server (replaces 100.64.0.4 with your server IP)
controlcenter-daemon --address 100.64.0.4:4382

New nodes automatically appear in Pending Approval on your dashboard for zero-trust authorization.


๐Ÿงช Security & Testing

ControlCenter includes an automated security test suite (Vitest) covering:

  • Authentication & JWT token security
  • Unauthenticated API endpoint blocking
  • WebSocket handshake authorization (/ws/daemon & /ws/ssh)
  • Machine auto-enrollment authorization
  • CIDR multi-homed subnet matching
  • SSH keypair generation and permission safety

Run all tests:

npx vitest run

๐Ÿ“‚ Project Structure

ControlCenter.Web/
โ”œโ”€โ”€ .docs/                    # Developer documentation & architecture specs
โ”œโ”€โ”€ components/               # Vue components (Graph, Drawer, Inventory List, Modals)
โ”œโ”€โ”€ core/                     # TypeScript definitions & global settings schema
โ”œโ”€โ”€ pages/                    # Frontend routes (Dashboard, Topology, Login, Setup)
โ”œโ”€โ”€ server/
โ”‚   โ”œโ”€โ”€ api/                  # REST API endpoints (Auth, Machines, Infrastructure, SSH)
โ”‚   โ”œโ”€โ”€ middleware/           # JWT Authentication middleware
โ”‚   โ”œโ”€โ”€ routes/ws/            # Encrypted WebSocket handlers (/ws/daemon & /ws/ssh)
โ”‚   โ””โ”€โ”€ util/                 # Daemon manager, CIDR matcher, TCP reachability prober
โ”œโ”€โ”€ tests/security/           # Vitest security & integration test suites
โ”œโ”€โ”€ nuxt.config.ts            # Nuxt configuration & Nitro auto-SSL preloader
โ””โ”€โ”€ start.sh                  # Startup and certificate initialization script

๐Ÿ“„ License

GPL-3.0 License. Built with โค๏ธ for self-hosters and system administrators.

Please wait...
Connection lost or session expired, reload to recover
Page is in error, reload to recover