Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI 服务器管理平台

一个基于 Web 的智能化服务器运维管理平台,支持 SSH 终端连接、命令执行、AI 智能助手、系统监控、文件管理、自动化任务和批量操作等功能。采用 Cyber-Neo 赛博朋克风格 UI 设计,提供科技感十足的操作体验。

功能特性

核心功能

功能模块 描述
SSH 终端 基于 WebSocket 的实时终端连接,支持 xterm.js,切换标签保持连接不中断
命令执行 快捷命令按钮、历史记录、执行耗时显示,支持批量多服务器并行执行
AI 智能助手 自然语言转命令、流式输出、命令一键执行,兼容 OpenAI 接口协议
系统监控 CPU、内存、磁盘、负载、进程、服务、网络实时监控,ECharts 可视化图表
Docker 管理 容器列表查看、启动/停止/重启/日志操作
文件管理 面包屑导航、文件上传下载、在线编辑保存
任务中心 预设任务模板(健康检查、部署、清理等)+ 自定义任务创建
审计日志 完整的命令执行历史记录

UI 特性

  • Cyber-Neo 赛博朋克主题:深色背景、霓虹光效、科技感字体
  • 全中文界面:所有按钮、标签、提示均为中文
  • 响应式布局:适配不同屏幕尺寸
  • 标签页切换:终端/命令/AI/监控/文件/任务/日志,切换不丢失连接

技术架构

后端技术栈

技术 版本 用途
Python 3.10+ 运行环境
FastAPI >=0.100.0 Web 框架
Uvicorn >=0.20.0 ASGI 服务器
Paramiko >=3.0.0 SSH 命令执行、SFTP 文件传输
asyncssh >=2.14.0 异步 SSH WebSocket 终端
SQLite 内置 数据持久化
OpenAI SDK >=1.0.0 AI 对话引擎

前端技术栈

技术 用途
React 18 UI 框架(CDN 加载)
HTM JSX 替代方案(Tagged Template Literals)
xterm.js 浏览器终端模拟器
ECharts 数据可视化图表
Day.js 日期时间处理

项目结构

ai-server-manager/
├── backend/                 # 后端代码
│   ├── main.py             # FastAPI 主入口,API 路由
│   ├── models.py           # Pydantic 数据模型
│   ├── database.py         # SQLite 数据库操作
│   ├── ssh_executor.py     # SSH 连接池与命令执行
│   ├── terminal_ws.py      # WebSocket 终端核心
│   ├── ai_engine.py        # AI 对话引擎
│   ├── task_engine.py      # 任务模板与执行引擎
│   ├── file_transfer.py    # SFTP 文件传输
│   ├── monitor_parser.py   # 系统监控数据解析
│   ├── config.py           # 配置管理
│   ├── requirements.txt    # Python 依赖
│   └── config.json         # 运行时配置(自动创建)
├── frontend/               # 前端代码
│   ├── index.html          # 主页面(单文件应用)
│   └── vendor/             # 第三方库(本地加载)
│       ├── react.js
│       ├── react-dom.js
│       ├── htm.js
│       ├── xterm.js
│       ├── xterm-addon-fit.js
│       ├── xterm-addon-web-links.js
│       ├── xterm.css
│       ├── echarts.js
│       ├── dayjs.js
│       └── antd.js
├── data/                   # 数据目录
│   └── servers.db          # SQLite 数据库
├── run.py                  # 启动脚本
└── README.md               # 本文件

快速开始

环境要求

  • Python 3.10 或更高版本
  • pip 包管理器

安装步骤

  1. 克隆项目
git clone <repository-url>
cd ai-server-manager
  1. 安装依赖
cd backend
pip install -r requirements.txt
  1. 启动服务
# 方式一:使用启动脚本(推荐)
cd ..
python run.py

# 方式二:直接启动(开发模式)
cd backend
python main.py
  1. 访问系统

打开浏览器访问 http://localhost:8765(或 http://localhost:8000

首次配置

  1. 点击"添加服务器"按钮,输入服务器信息:

    • 名称:服务器别名
    • 主机:IP 地址或域名
    • 端口:SSH 端口(默认 22)
    • 用户名:SSH 登录账号
    • 密码:SSH 登录密码(或选择密钥认证)
  2. (可选)配置 AI 助手:

    • 切换到"AI"标签页
    • 点击"AI 设置"按钮
    • 填写 API 地址、API 密钥和模型名称
    • 支持任何兼容 OpenAI 接口协议的 API

API 文档

服务器管理

方法 路径 描述
GET /api/servers 列出所有服务器
POST /api/servers 创建服务器
GET /api/servers/{id} 获取服务器详情
PUT /api/servers/{id} 更新服务器
DELETE /api/servers/{id} 删除服务器
POST /api/servers/{id}/test 测试连接
GET /api/groups 获取分组列表

命令执行

方法 路径 描述
POST /api/execute 执行单条命令
POST /api/execute/batch 批量执行命令
GET /api/history 执行历史记录

文件管理

方法 路径 描述
POST /api/files/upload 上传文件
POST /api/files/download 下载文件
POST /api/files/list 列出目录
POST /api/files/read 读取文件内容
POST /api/files/save 保存文件内容

系统监控

方法 路径 描述
GET /api/monitor/{server_id} 获取系统监控数据
GET /api/monitor/{server_id}/docker 获取 Docker 容器列表
POST /api/monitor/{server_id}/docker/{action} Docker 操作(stop/start/restart/logs)

AI 对话

方法 路径 描述
POST /api/ai/chat AI 对话(流式 SSE)
GET /api/ai/config 获取 AI 配置
PUT /api/ai/config 更新 AI 配置

任务中心

方法 路径 描述
GET /api/tasks/templates 获取任务模板列表
POST /api/tasks/execute 执行任务
POST /api/tasks/custom 创建自定义任务
GET /api/tasks/custom 列出自定义任务
PUT /api/tasks/custom/{id} 更新自定义任务
DELETE /api/tasks/custom/{id} 删除自定义任务

WebSocket 终端

路径 描述
/ws/terminal/{server_id} 实时 SSH 终端连接

数据库表结构

servers(服务器表)

字段 类型 说明
id TEXT PRIMARY KEY 唯一标识
name TEXT NOT NULL 服务器名称
host TEXT NOT NULL 主机地址
port INTEGER DEFAULT 22 SSH 端口
username TEXT NOT NULL 登录用户名
auth_type TEXT DEFAULT 'password' 认证方式(password/key)
password TEXT 密码(加密存储)
private_key_path TEXT 私钥路径
passphrase TEXT 私钥密码
group_name TEXT 分组名称
tags TEXT 标签(JSON 数组)
description TEXT 描述
status TEXT DEFAULT 'unknown' 状态
last_check TEXT 最后检查时间
created_at TEXT 创建时间
updated_at TEXT 更新时间

execution_history(执行历史表)

字段 类型 说明
id TEXT PRIMARY KEY 唯一标识
server_id TEXT NOT NULL 服务器 ID
server_name TEXT 服务器名称
command TEXT NOT NULL 执行的命令
exit_code INTEGER 退出码
stdout TEXT 标准输出
stderr TEXT 标准错误
executed_at TEXT 执行时间
duration_ms INTEGER 执行耗时(毫秒)
source TEXT DEFAULT 'web' 来源

custom_tasks(自定义任务表)

字段 类型 说明
id TEXT PRIMARY KEY 唯一标识
name TEXT NOT NULL 任务名称
description TEXT 任务描述
icon TEXT DEFAULT '📋' 任务图标
steps TEXT NOT NULL 执行步骤(JSON 数组)
created_at TEXT 创建时间
updated_at TEXT 更新时间

配置说明

系统配置文件位于 backend/config.json,首次启动自动创建。

{
  "server": {
    "host": "0.0.0.0",
    "port": 8765
  },
  "ai": {
    "provider": "openai_compatible",
    "api_url": "https://api.openai.com/v1/chat/completions",
    "api_key": "",
    "model": "gpt-4o",
    "max_tokens": 4096,
    "temperature": 0.3
  },
  "security": {
    "command_blacklist": [
      "^rm\\s+-rf\\s+/",
      "^mkfs",
      "^dd\\s+if=",
      "^shutdown",
      "^reboot"
    ],
    "command_whitelist": [],
    "require_confirm": true
  }
}

配置项说明

配置项 说明 默认值
server.host 服务监听地址 0.0.0.0
server.port 服务监听端口 8765
ai.api_url AI API 地址 OpenAI 官方地址
ai.api_key AI API 密钥
ai.model AI 模型名称 gpt-4o
ai.max_tokens 最大 token 数 4096
ai.temperature 温度参数 0.3
security.command_blacklist 命令黑名单(正则表达式) 见上方
security.require_confirm 危险命令是否需要确认 true

预设任务模板

系统内置以下预设任务模板,用户可以直接执行或基于它们创建自定义任务:

任务名称 图标 描述 步骤
系统健康检查 🏥 检查CPU、内存、磁盘、服务状态 系统信息、磁盘使用、内存使用、系统负载、运行服务
应用部署 🚀 拉取代码、构建、重启服务 拉取代码、安装依赖、构建项目、重启服务
日志清理 🧹 清理7天前的日志文件 查看日志大小、清理旧日志、清理后大小
Docker 清理 🐳 清理未使用的镜像和容器 查看磁盘使用、清理未使用资源、清理后磁盘使用
数据库备份 💾 备份MySQL/PostgreSQL数据库 检查服务、创建备份目录、执行备份、查看备份文件

使用指南

服务器管理

  1. 添加服务器:点击右上角"+ 添加服务器"按钮,填写连接信息
  2. 测试连接:添加后可点击"测试连接"验证 SSH 连通性
  3. 分组管理:服务器支持按分组归类,左侧边栏可折叠展开
  4. 批量操作:点击"批量操作"按钮,可同时选择多台服务器执行相同命令

终端连接

  1. 选择服务器后,点击"终端"标签
  2. 系统自动建立 WebSocket 连接
  3. 支持完整的终端交互,包括 vim、top 等交互式程序
  4. 切换其他标签页后返回,终端连接保持不中断

AI 智能助手

  1. 切换到"AI"标签页
  2. 首次使用需要配置 AI API(点击"AI 设置")
  3. 输入自然语言描述,AI 会生成对应的 Linux 命令
  4. 生成的命令可一键复制或直接执行

任务中心

  1. 切换到"任务"标签页
  2. 执行预设任务:点击任务卡片的"执行"按钮,确认后执行
  3. 创建自定义任务:点击"+ 创建任务"按钮,填写任务名称、描述、图标和执行步骤
  4. 编辑任务:点击"编辑"按钮,预设任务会保存为自定义副本
  5. 删除任务:仅自定义任务可删除

文件管理

  1. 切换到"文件"标签页
  2. 浏览远程服务器文件系统(面包屑导航)
  3. 支持文件上传、下载、在线编辑保存

系统监控

  1. 切换到"监控"标签页
  2. 实时查看 CPU、内存、磁盘、负载、进程、服务、网络状态
  3. Docker 容器管理:查看容器列表,进行启动/停止/重启/查看日志操作

安全说明

  • 密码使用明文存储在本地 SQLite 数据库中(生产环境建议加密)
  • 支持命令黑名单,可配置危险命令拦截规则
  • 危险命令执行前需要用户确认
  • 建议在内网环境使用,或配置 HTTPS 和访问控制

开发计划

  • SSH 终端连接(WebSocket)
  • 命令执行与历史记录
  • AI 智能助手(OpenAI 兼容)
  • 系统监控(CPU/内存/磁盘/进程/服务/网络)
  • Docker 容器管理
  • 文件管理(上传/下载/编辑)
  • 批量操作
  • 任务中心(预设模板 + 自定义任务)
  • 审计日志
  • 用户认证与权限管理
  • HTTPS 支持
  • 数据库密码加密
  • 服务器状态自动检测
  • 告警通知(邮件/钉钉/企业微信)

许可证

MIT License

贡献指南

欢迎提交 Issue 和 Pull Request。在提交代码前,请确保:

  1. 代码符合项目现有风格
  2. 新功能附带必要的测试
  3. 更新相关文档

联系方式

如有问题或建议,欢迎通过以下方式联系:

  • 提交 GitHub Issue
  • 发送邮件至维护者

注意:本项目为个人/小团队运维工具,建议在内网环境使用。如需在生产环境部署,请配置 HTTPS、访问控制和密码加密等安全措施。

About

关于web运维Linux服务器的AI项目

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages