Ops Deck — Full Operational Dashboard
A self-hosted operational dashboard for developers running AI agent stacks. See everything in one place: cron jobs, agent intel, security posture, infrastructure map, code search, and more.
For a simpler setup with just code search and prompt library, see ops-deck-lite.
What You Get
Core Modules
| Module | Port | Description |
|---|
| Ops Deck UI | 5173 | Vite + React dashboard (all modules in one UI) |
| Ops Deck API |
8005 | Express backend serving all data endpoints |
|
Code Search | 5204 | Semantic code search with local embeddings |
|
Prompt Library | 5202 | Categorized, searchable prompt templates |
Dashboard Panels
1. Memory Browser
Searchable knowledge card viewer. Browse cards by category and tags, read full content with rendered markdown. Cards use YAML frontmatter for metadata (topic, category, tags, dates).
2. Journal
Date-based daily log viewer. See which days have entries, click to read. Great for tracking what your agent did each day.
3. Workspace Config
Tabbed viewer for your agent configuration files: AGENTS.md, SOUL.md, TOOLS.md, USER.md, MEMORY.md, IDENTITY.md. See your full agent personality and config at a glance.
4. Cron Job Calendar
Visual calendar of all scheduled agent tasks. See what runs when, last status, next run, error streaks. Click to view payload and delivery config.
CODEBLOCK0
2. Agent Intel Feed
Aggregated intelligence from automated research crons. Three categories:
- - Cyber Threats: CVEs, active exploits, advisories (from CISA, BleepingComputer, etc.)
- AI Lab Updates: Model releases, API changes, pricing updates
- Dev Tooling: Framework updates, SDK releases, breaking changes
CODEBLOCK1
3. Security Audit Panel
Live security posture dashboard. Tracks firewall rules, fail2ban status, SSH config, listening ports, AppArmor status, and pending security updates.
CODEBLOCK2
Data structure:
CODEBLOCK3
4. Network Infrastructure Map
Visual map of your services, ports, and connections. Populated from a JSON config file you maintain manually or generate with your own scripts.
CODEBLOCK4
5. Code Search (same as ops-deck-lite)
Semantic search across your entire codebase using local embeddings.
CODEBLOCK5
6. Prompt Library (same as ops-deck-lite)
Categorized prompt templates. Stop rewriting the same prompts.
CODEBLOCK6
7. Sprint Backlog Tracker
Kanban-style task tracking synced with your git repos. Auto-detects progress from recent commits.
CODEBLOCK7
How Data Collection Works
The dashboard itself has no system access. It reads static JSON files that YOU generate separately. The security audit panel, cron calendar, and infrastructure map all display data from JSON files on disk. You control what data goes into those files and how it's collected.
Example: The security audit panel reads security-audit.json. You can populate this manually, via a cron script you write and review, or skip it entirely. The dashboard never runs ufw status, ss -tlnp, or any system command on its own.
No elevated privileges required. The dashboard services run as a normal user. If you want automated data collection, the setup guide includes example cron scripts that you review and configure yourself.
Architecture
CODEBLOCK8
All services are local only. No cloud dependencies. No telemetry.
Prerequisites
- - Node.js 18+
- Python 3.10+ with FastAPI
- Ollama with
qwen3-embedding:8b (for code search embeddings) - PM2 (process manager)
- SQLite (no external database needed)
Setup
1. Install dependencies
CODEBLOCK9
2. Create the API server
The Ops Deck API is a lightweight Express server that serves JSON data files and provides CRUD endpoints for intel entries.
CODEBLOCK10
Key endpoints to implement:
CODEBLOCK11
3. Create the frontend
CODEBLOCK12
Build dashboard panels that fetch from the API endpoints. Each panel is a React component:
- -
CronCalendar.tsx - Monthly calendar view of cron jobs - INLINECODE5 - Filterable intel card feed
- INLINECODE6 - Status cards for each security control
- INLINECODE7 - Service topology visualization
- INLINECODE8 - Search input with results display
- INLINECODE9 - CRUD interface for prompts
- INLINECODE10 - Kanban board from backlog.json
4. (Optional) Set up data refresh scripts
The dashboard reads static JSON files. You can update them manually or write your own scripts to automate it. Example scripts are provided in the repo's docs/ directory for reference. Review them before running.
All data collection is opt-in. The dashboard works with the included example data out of the box.
5. PM2 ecosystem config
CODEBLOCK13
CODEBLOCK14
Resource Usage
| Service | RAM | CPU | Disk |
|---|
| Ops Deck UI | ~75MB | <1% idle | ~20MB build |
| Ops Deck API |
~85MB | <1% idle | <5MB data |
| Code Search | ~150MB | <1% idle | ~50MB index |
| Prompt Library | ~50MB | <1% idle | <1MB |
| Ollama (shared) | ~4GB | Spikes during indexing | ~4GB model |
Total: ~360MB for all services (Ollama runs independently).
Customization
The dashboard is yours to extend. Common additions:
- - Social media pipeline panel (if you run Postiz/n8n)
- LLM usage tracking (token counts, costs, model breakdown)
- Uptime monitoring (ping your deployed services)
- Git activity (commit heatmap, PR status)
Who This Is For
- - Indie devs running OpenClaw with multiple cron jobs and services
- CS students building a portfolio of operational tools
- Small teams who want visibility into their agent infrastructure
- Homelab enthusiasts who want a single pane of glass
If you just want code search and prompts, use ops-deck-lite instead. This is the full stack.
Source
https://github.com/solomonneas/ops-deck-oss
Ops Deck — 全功能运维仪表盘
一个面向运行AI代理栈开发者的自托管运维仪表盘。在一个地方查看所有内容:定时任务、代理情报、安全态势、基础设施地图、代码搜索等。
如需仅包含代码搜索和提示词库的简化版本,请参阅 ops-deck-lite。
功能概览
核心模块
| 模块 | 端口 | 描述 |
|---|
| Ops Deck 界面 | 5173 | Vite + React 仪表盘(所有模块集成于同一界面) |
| Ops Deck API |
8005 | 提供所有数据端点的 Express 后端 |
|
代码搜索 | 5204 | 基于本地嵌入的语义代码搜索 |
|
提示词库 | 5202 | 分类、可搜索的提示词模板 |
仪表盘面板
1. 记忆浏览器
可搜索的知识卡片查看器。按类别和标签浏览卡片,阅读渲染后的完整 Markdown 内容。卡片使用 YAML 前置元数据(主题、类别、标签、日期)。
2. 日志
基于日期的每日日志查看器。查看哪些日期有记录,点击阅读。非常适合追踪代理每天的活动。
3. 工作区配置
代理配置文件的标签页查看器:AGENTS.md、SOUL.md、TOOLS.md、USER.md、MEMORY.md、IDENTITY.md。一目了然查看完整的代理人格和配置。
4. 定时任务日历
所有计划代理任务的视觉日历。查看任务运行时间、上次状态、下次运行时间、错误连续次数。点击查看负载和投递配置。
bash
API 从 cron-jobs.json 文件读取数据,该文件由夜间定时任务更新
GET /api/cron-jobs
2. 代理情报源
来自自动化研究定时任务的聚合情报。三类:
- - 网络威胁: CVE、活跃漏洞、安全公告(来自 CISA、BleepingComputer 等)
- AI 实验室更新: 模型发布、API 变更、定价更新
- 开发工具: 框架更新、SDK 发布、破坏性变更
bash
情报条目,支持类别过滤
GET /api/agent-intel
GET /api/agent-intel?category=model-updates
POST /api/agents/intel # 添加新情报条目
3. 安全审计面板
实时安全态势仪表盘。追踪防火墙规则、fail2ban 状态、SSH 配置、监听端口、AppArmor 状态和待处理安全更新。
bash
安全审计数据(由每日定时任务更新)
GET /api/security-audit
数据结构:
json
{
lastUpdated: 2026-03-21T04:00:00Z,
securityControls: [
{name: UFW 防火墙, status: active, lastChecked: 2026-03-21},
{name: Fail2ban, status: active, bannedIPs: 42},
{name: SSH 配置, status: hardened, passwordAuth: false}
],
auditLog: []
}
4. 网络基础设施地图
服务、端口和连接的可视化地图。从您手动维护或通过脚本生成的 JSON 配置文件填充。
bash
架构/基础设施数据
GET /api/architecture
5. 代码搜索(与 ops-deck-lite 相同)
使用本地嵌入对整个代码库进行语义搜索。
bash
POST http://localhost:5204/api/search
{query: 认证中间件, mode: hybrid, limit: 10}
6. 提示词库(与 ops-deck-lite 相同)
分类的提示词模板。无需重复编写相同的提示词。
bash
GET /api/prompts # 列出所有
POST /api/prompts # 创建新提示词
7. 冲刺待办事项追踪器
与 Git 仓库同步的看板式任务追踪。从最近的提交自动检测进度。
bash
待办事项数据(JSON 文件,由每日定时任务更新)
GET /api/backlog
数据收集机制
仪表盘本身没有系统访问权限。 它读取您单独生成的静态 JSON 文件。安全审计面板、定时任务日历和基础设施地图都显示磁盘上 JSON 文件中的数据。您控制哪些数据进入这些文件以及如何收集。
示例: 安全审计面板读取 security-audit.json。您可以手动填充此文件,通过您编写和审查的定时脚本,或完全跳过。仪表盘永远不会自行运行 ufw status、ss -tlnp 或任何系统命令。
无需提升权限。 仪表盘服务以普通用户身份运行。如果您想要自动化数据收集,设置指南包含您自行审查和配置的示例定时脚本。
架构
┌──────────────────────────────────────┐
│ Ops Deck 界面 (:5173) │
│ React + Vite + Tailwind │
│ 面板:定时任务 | 情报 | 安全 | │
│ 基础设施 | 代码 | 提示词 | 待办事项 │
└──────────┬───────────────────────────┘
│
┌─────┴─────┐
│ │
┌────▼────┐ ┌───▼────────┐
│ API │ │ 代码搜索 │
│ (:8005) │ │ (:5204) │
│ Express │ │ FastAPI │
└────┬────┘ └─────────────┘
│
┌────▼──────────┐
│ 提示词库 │
│ (:5202) │
│ Express │
└────────────────┘
所有服务仅限本地。无云依赖。无遥测。
前提条件
- - Node.js 18+
- Python 3.10+ 及 FastAPI
- Ollama 及 qwen3-embedding:8b(用于代码搜索嵌入)
- PM2(进程管理器)
- SQLite(无需外部数据库)
设置
1. 安装依赖
bash
npm install -g pm2
pip install fastapi uvicorn aiofiles
ollama pull qwen3-embedding:8b
2. 创建 API 服务器
Ops Deck API 是一个轻量级 Express 服务器,提供 JSON 数据文件服务,并为情报条目提供 CRUD 端点。
bash
mkdir -p ops-deck-api
cd ops-deck-api
npm init -y
npm install express cors
需要实现的关键端点:
javascript
// server.js
const express = require(express);
const cors = require(cors);
const fs = require(fs);
const app = express();
app.use(cors());
app.use(express.json());
// 定时任务(从文件读取,由夜间定时任务更新)
app.get(/api/cron-jobs, (req, res) => {
const data = JSON.parse(fs.readFileSync(./cron-jobs.json, utf8));
res.json(data);
});
// 代理情报(CRUD)
app.get(/api/agent-intel, (req, res) => { / ... / });
app.post(/api/agents/intel, (req, res) => { / ... / });
// 安全审计(从文件读取,由每日定时任务更新)
app.get(/api/security-audit, (req, res) => {
const data = JSON.parse(fs.readFileSync(./security-audit/audit-data.json, utf8));
res.json(data);
});
// 架构
app.get(/api/architecture, (req, res) => { / ... / });
// 待办事项
app.get(/api/backlog, (req, res) => {
const data = JSON.parse(fs.readFileSync(./backlog.json, utf8));
res.json(data);
});
app.listen(8005, () => console.log(Ops Deck API 运行在 :8005));
3. 创建前端
bash
npm create vite@latest ops-deck -- --template react-ts
cd ops-deck
npm install
npm install tailwindcss @headlessui/react recharts
构建从 API 端点获取数据的仪表盘面板。每个面板都是一个 React 组件:
- - CronCalendar.tsx - 定时任务的月历视图
- IntelFeed.tsx - 可过滤的情报卡片流
- SecurityAudit.tsx - 每个安全控制的状态卡片
- InfraMap.tsx - 服务拓扑可视化
- CodeSearch.tsx - 带结果展示的搜索输入框
- PromptLibrary.tsx - 提示词的 CRUD 界面
- Backlog.tsx - 基于 backlog.json 的看