Refactor project structure and update .gitignore; enhance README with setup instructions and environment requirements. Clean up backend code for improved readability and maintainability.

This commit is contained in:
liumangmang
2026-02-04 11:07:42 +08:00
parent 765d05c0a7
commit 7e6ebd18a5
49 changed files with 3381 additions and 3389 deletions

182
README.md
View File

@@ -1,91 +1,91 @@
# SSH 管理器
基于 Web 的 SSH 连接管理工具,支持终端与 SFTP 文件传输。技术栈Vue 3、Spring BootJDK 8、JSch、xterm.js。
## 功能
- **认证**本地用户登录JWT
- **连接管理**SSH 连接的增删改查(密码或私钥)
- **Web 终端**:通过 WebSocket + xterm.js 实现实时 SSH 终端
- **SFTP**:文件浏览,支持上传、下载、删除、创建目录
## 环境要求
- JDK 8+
- Node.js 18+
- Maven 3.6+
## 快速开始
### 后端
```bash
cd backend
mvn spring-boot:run
```
后端运行在 http://localhost:8080
默认登录:`admin` / `admin123`
### 前端
```bash
cd frontend
npm install
npm run dev
```
前端运行在 http://localhost:5173API 与 WebSocket 会代理到后端)
### 生产构建
```bash
# 后端
cd backend && mvn package
# 前端
cd frontend && npm run build
```
`frontend/dist` 目录内容复制到后端的静态资源目录,或单独部署前端。
## 项目结构
```
ssh-manager/
├── backend/ # Spring BootJDK 8
│ └── src/main/java/com/sshmanager/
│ ├── config/ # 安全、WebSocket、CORS
│ ├── controller/
│ ├── service/
│ ├── entity/
│ └── repository/
├── frontend/ # Vue 3 + Vite + Tailwind
│ └── src/
│ ├── views/
│ ├── components/
│ ├── stores/
│ └── api/
└── design-system/ # UI/UX 规范
```
## 配置
### 后端application.yml
- `sshmanager.encryption-key`:用于加密连接密码的 Base64 32 字节密钥
- `sshmanager.jwt-secret`JWT 签名密钥
- `spring.datasource.url`H2 数据库路径(默认:`./data/sshmanager`
### 环境变量
- `SSHMANAGER_ENCRYPTION_KEY`:覆盖加密密钥
- `SSHMANAGER_JWT_SECRET`:覆盖 JWT 密钥
## 安全说明
- 连接密码与私钥均以 AES-256-GCM 加密存储
- 所有 API 接口需 JWT 认证
- WebSocket 连接在握手时校验 JWT
- CORS 仅允许前端来源
# SSH 管理器
基于 Web 的 SSH 连接管理工具,支持终端与 SFTP 文件传输。技术栈Vue 3、Spring BootJDK 8、JSch、xterm.js。
## 功能
- **认证**本地用户登录JWT
- **连接管理**SSH 连接的增删改查(密码或私钥)
- **Web 终端**:通过 WebSocket + xterm.js 实现实时 SSH 终端
- **SFTP**:文件浏览,支持上传、下载、删除、创建目录
## 环境要求
- JDK 8+
- Node.js 18+
- Maven 3.6+
## 快速开始
### 后端
```bash
cd backend
mvn spring-boot:run
```
后端运行在 http://localhost:8080
默认登录:`admin` / `admin123`
### 前端
```bash
cd frontend
npm install
npm run dev
```
前端运行在 http://localhost:5173API 与 WebSocket 会代理到后端)
### 生产构建
```bash
# 后端
cd backend && mvn package
# 前端
cd frontend && npm run build
```
`frontend/dist` 目录内容复制到后端的静态资源目录,或单独部署前端。
## 项目结构
```
ssh-manager/
├── backend/ # Spring BootJDK 8
│ └── src/main/java/com/sshmanager/
│ ├── config/ # 安全、WebSocket、CORS
│ ├── controller/
│ ├── service/
│ ├── entity/
│ └── repository/
├── frontend/ # Vue 3 + Vite + Tailwind
│ └── src/
│ ├── views/
│ ├── components/
│ ├── stores/
│ └── api/
└── design-system/ # UI/UX 规范
```
## 配置
### 后端application.yml
- `sshmanager.encryption-key`:用于加密连接密码的 Base64 32 字节密钥
- `sshmanager.jwt-secret`JWT 签名密钥
- `spring.datasource.url`H2 数据库路径(默认:`./data/sshmanager`
### 环境变量
- `SSHMANAGER_ENCRYPTION_KEY`:覆盖加密密钥
- `SSHMANAGER_JWT_SECRET`:覆盖 JWT 密钥
## 安全说明
- 连接密码与私钥均以 AES-256-GCM 加密存储
- 所有 API 接口需 JWT 认证
- WebSocket 连接在握手时校验 JWT
- CORS 仅允许前端来源