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:
182
README.md
182
README.md
@@ -1,91 +1,91 @@
|
||||
# SSH 管理器
|
||||
|
||||
基于 Web 的 SSH 连接管理工具,支持终端与 SFTP 文件传输。技术栈:Vue 3、Spring Boot(JDK 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:5173(API 与 WebSocket 会代理到后端)
|
||||
|
||||
### 生产构建
|
||||
|
||||
```bash
|
||||
# 后端
|
||||
cd backend && mvn package
|
||||
|
||||
# 前端
|
||||
cd frontend && npm run build
|
||||
```
|
||||
|
||||
将 `frontend/dist` 目录内容复制到后端的静态资源目录,或单独部署前端。
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
ssh-manager/
|
||||
├── backend/ # Spring Boot(JDK 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 Boot(JDK 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:5173(API 与 WebSocket 会代理到后端)
|
||||
|
||||
### 生产构建
|
||||
|
||||
```bash
|
||||
# 后端
|
||||
cd backend && mvn package
|
||||
|
||||
# 前端
|
||||
cd frontend && npm run build
|
||||
```
|
||||
|
||||
将 `frontend/dist` 目录内容复制到后端的静态资源目录,或单独部署前端。
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
ssh-manager/
|
||||
├── backend/ # Spring Boot(JDK 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 仅允许前端来源
|
||||
|
||||
Reference in New Issue
Block a user