2025-12-20 09:37:43 +08:00
|
|
|
|
# IDC设备管理系统 - 安装部署指南
|
|
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
本文档详细介绍IDC设备管理系统的多种部署方式,包括开发环境、生产环境的配置方法。
|
2026-02-05 12:35:50 +08:00
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 目录
|
|
|
|
|
|
|
|
|
|
|
|
- [快速开始](#快速开始)
|
|
|
|
|
|
- [环境要求](#环境要求)
|
|
|
|
|
|
- [开发环境部署](#开发环境部署)
|
|
|
|
|
|
- [生产环境部署](#生产环境部署)
|
|
|
|
|
|
- [Docker部署](#docker部署)
|
|
|
|
|
|
- [数据库配置](#数据库配置)
|
|
|
|
|
|
- [更新升级](#更新升级)
|
|
|
|
|
|
- [监控维护](#监控维护)
|
|
|
|
|
|
- [常见问题](#常见问题)
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 快速开始
|
|
|
|
|
|
|
|
|
|
|
|
### 一键部署脚本(推荐)⭐
|
2026-02-05 12:35:50 +08:00
|
|
|
|
|
|
|
|
|
|
我们提供了交互式安装脚本,自动完成环境检测、依赖安装、数据库初始化和服务启动。
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 方式一:使用 npm
|
|
|
|
|
|
npm run deploy
|
|
|
|
|
|
|
|
|
|
|
|
# 方式二:直接运行
|
|
|
|
|
|
node install.js
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**脚本功能:**
|
|
|
|
|
|
- ✅ 自动检测 Node.js、npm、PM2、Nginx
|
|
|
|
|
|
- ✅ Linux 系统支持自动安装 Node.js(交互式)
|
|
|
|
|
|
- ✅ 交互式配置数据库(SQLite/MySQL)
|
|
|
|
|
|
- ✅ 交互式选择前端部署方式(Nginx/PM2 serve)
|
|
|
|
|
|
- ✅ 自动安装项目依赖
|
|
|
|
|
|
- ✅ 自动初始化数据库
|
|
|
|
|
|
- ✅ 自动构建前端项目
|
|
|
|
|
|
- ✅ 使用 PM2 启动和管理服务
|
|
|
|
|
|
|
|
|
|
|
|
**Linux 自动安装 Node.js:**
|
|
|
|
|
|
- 支持 Ubuntu、Debian、CentOS、RHEL、Fedora、Arch
|
|
|
|
|
|
- 自动检测发行版并使用对应安装方式
|
|
|
|
|
|
- 无需手动下载,一键完成
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-01-26 17:21:20 +08:00
|
|
|
|
## 环境要求
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
| 项目 | 要求 | 说明 |
|
|
|
|
|
|
|------|------|------|
|
|
|
|
|
|
| Node.js | ≥14.0.0(推荐 20.x LTS) | 运行环境 |
|
|
|
|
|
|
| npm | ≥6.0.0 | 包管理器(随 Node.js 安装) |
|
|
|
|
|
|
| 操作系统 | Windows 10/11、macOS、Linux | 支持主流操作系统 |
|
|
|
|
|
|
| 内存 | 开发:4GB+ / 生产:8GB+ | 根据数据量调整 |
|
|
|
|
|
|
| 磁盘空间 | ≥2GB | 包含依赖和日志 |
|
2025-12-20 09:45:13 +08:00
|
|
|
|
|
2026-02-05 12:35:50 +08:00
|
|
|
|
### Node.js 安装
|
|
|
|
|
|
|
|
|
|
|
|
#### Linux(自动安装)
|
2026-02-05 13:59:28 +08:00
|
|
|
|
|
2026-02-05 12:35:50 +08:00
|
|
|
|
运行 `node install.js`,选择自动安装即可。
|
|
|
|
|
|
|
|
|
|
|
|
#### Linux(手动安装)
|
|
|
|
|
|
|
|
|
|
|
|
**Ubuntu/Debian:**
|
|
|
|
|
|
```bash
|
|
|
|
|
|
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
|
|
|
|
|
|
sudo apt-get install -y nodejs
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**CentOS/RHEL/Fedora:**
|
|
|
|
|
|
```bash
|
|
|
|
|
|
curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash -
|
|
|
|
|
|
sudo yum install -y nodejs
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**Arch Linux:**
|
|
|
|
|
|
```bash
|
|
|
|
|
|
sudo pacman -S nodejs npm
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**使用 nvm(推荐开发者):**
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 安装 nvm
|
|
|
|
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
|
|
|
|
|
|
|
|
|
|
|
|
# 安装 Node.js 20
|
|
|
|
|
|
nvm install 20
|
|
|
|
|
|
nvm use 20
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### Windows
|
|
|
|
|
|
|
|
|
|
|
|
**方式一:官方安装包(推荐)**
|
|
|
|
|
|
1. 访问: https://nodejs.org/
|
|
|
|
|
|
2. 下载 LTS 版本(推荐 v20.x)
|
|
|
|
|
|
3. 运行安装包,按向导完成安装
|
|
|
|
|
|
|
|
|
|
|
|
**方式二:nvm-windows(推荐开发者)**
|
|
|
|
|
|
1. 下载安装 nvm-windows: https://github.com/coreybutler/nvm-windows/releases
|
|
|
|
|
|
2. 执行: `nvm install 20`
|
|
|
|
|
|
3. 执行: `nvm use 20`
|
|
|
|
|
|
|
|
|
|
|
|
**方式三:Winget(Windows 10/11)**
|
|
|
|
|
|
```powershell
|
|
|
|
|
|
winget install OpenJS.NodeJS.LTS
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### macOS
|
|
|
|
|
|
|
|
|
|
|
|
**方式一:Homebrew(推荐)**
|
|
|
|
|
|
```bash
|
2026-02-05 13:59:28 +08:00
|
|
|
|
brew install node@20
|
2026-02-05 12:35:50 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**方式二:官方安装包**
|
|
|
|
|
|
1. 访问: https://nodejs.org/
|
|
|
|
|
|
2. 下载 macOS 安装包并安装
|
|
|
|
|
|
|
|
|
|
|
|
**方式三:nvm(推荐开发者)**
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 安装 nvm
|
|
|
|
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
|
|
|
|
|
|
|
|
|
|
|
|
# 安装 Node.js 20
|
|
|
|
|
|
nvm install 20
|
|
|
|
|
|
nvm use 20
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-01-26 17:21:20 +08:00
|
|
|
|
---
|
2025-12-20 09:45:13 +08:00
|
|
|
|
|
2026-01-26 17:21:20 +08:00
|
|
|
|
## 开发环境部署
|
2025-12-20 09:45:13 +08:00
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
### 1. 克隆项目
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
**方式一:从GitHub克隆(推荐)**
|
|
|
|
|
|
```bash
|
|
|
|
|
|
git clone https://github.com/gituib/idc_assest.git
|
|
|
|
|
|
cd idc_assest
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**方式二:从Gitee克隆(国内访问更快)**
|
|
|
|
|
|
```bash
|
|
|
|
|
|
git clone https://gitee.com/zhang96110/idc_assest.git
|
|
|
|
|
|
cd idc_assest
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 2. 安装依赖
|
2026-01-26 17:21:20 +08:00
|
|
|
|
|
2025-12-20 09:37:43 +08:00
|
|
|
|
```bash
|
2026-02-05 13:59:28 +08:00
|
|
|
|
# 安装后端依赖
|
|
|
|
|
|
cd backend && npm install
|
|
|
|
|
|
|
|
|
|
|
|
# 安装前端依赖
|
|
|
|
|
|
cd ../frontend && npm install
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 3. 配置环境变量
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
cd ../backend
|
2025-12-20 09:37:43 +08:00
|
|
|
|
cp .env.example .env
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
编辑 `.env` 文件(开发环境使用默认SQLite配置即可):
|
2025-12-20 09:37:43 +08:00
|
|
|
|
```env
|
2026-02-05 13:59:28 +08:00
|
|
|
|
NODE_ENV=development
|
|
|
|
|
|
PORT=8000
|
|
|
|
|
|
DB_TYPE=sqlite
|
2025-12-20 09:37:43 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
### 4. 启动服务
|
2026-01-26 17:21:20 +08:00
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
**启动后端(端口8000):**
|
2025-12-20 09:37:43 +08:00
|
|
|
|
```bash
|
2026-02-05 13:59:28 +08:00
|
|
|
|
cd backend
|
2025-12-20 09:37:43 +08:00
|
|
|
|
npm run dev
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
**启动前端(端口3000)- 新终端:**
|
2025-12-20 09:37:43 +08:00
|
|
|
|
```bash
|
|
|
|
|
|
cd frontend
|
2026-01-26 17:21:20 +08:00
|
|
|
|
npm run dev
|
2025-12-20 09:37:43 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
**访问地址:**
|
|
|
|
|
|
- 前端应用:http://localhost:3000
|
|
|
|
|
|
- 后端API:http://localhost:8000/api
|
|
|
|
|
|
- 健康检查:http://localhost:8000/health
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
### 5. 开发脚本
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 同时启动前后端(项目根目录)
|
|
|
|
|
|
npm start
|
|
|
|
|
|
|
|
|
|
|
|
# 仅启动后端
|
|
|
|
|
|
npm run start:backend
|
|
|
|
|
|
|
|
|
|
|
|
# 仅启动前端
|
|
|
|
|
|
npm run start:frontend
|
|
|
|
|
|
|
|
|
|
|
|
# 安装所有依赖
|
|
|
|
|
|
npm run install:all
|
2025-12-20 09:37:43 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-01-26 17:21:20 +08:00
|
|
|
|
## 生产环境部署
|
2025-12-20 09:45:13 +08:00
|
|
|
|
|
2026-02-05 12:35:50 +08:00
|
|
|
|
### 方式一:一键部署脚本(推荐)
|
2025-12-20 09:45:13 +08:00
|
|
|
|
|
2026-02-05 12:35:50 +08:00
|
|
|
|
```bash
|
|
|
|
|
|
npm run deploy
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
按提示选择:
|
|
|
|
|
|
- 数据库类型:SQLite 或 MySQL
|
|
|
|
|
|
- 前端部署方式:Nginx(推荐)或 PM2 serve
|
|
|
|
|
|
- 是否自动安装 Nginx(Windows)
|
|
|
|
|
|
|
|
|
|
|
|
### 方式二:手动部署
|
|
|
|
|
|
|
|
|
|
|
|
#### 后端部署
|
|
|
|
|
|
|
|
|
|
|
|
##### 1. 配置环境变量
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
cd backend
|
|
|
|
|
|
cp .env.example .env
|
2026-01-26 17:21:20 +08:00
|
|
|
|
```
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-26 17:21:20 +08:00
|
|
|
|
编辑 `.env` 文件:
|
|
|
|
|
|
```env
|
2025-12-20 09:37:43 +08:00
|
|
|
|
NODE_ENV=production
|
|
|
|
|
|
PORT=8000
|
|
|
|
|
|
DB_TYPE=mysql
|
|
|
|
|
|
MYSQL_HOST=localhost
|
|
|
|
|
|
MYSQL_PORT=3306
|
2026-01-26 17:21:20 +08:00
|
|
|
|
MYSQL_USERNAME=idc_user
|
|
|
|
|
|
MYSQL_PASSWORD=secure_password
|
2025-12-20 09:37:43 +08:00
|
|
|
|
MYSQL_DATABASE=idc_management
|
2026-02-05 13:59:28 +08:00
|
|
|
|
JWT_SECRET=your_jwt_secret_key_here
|
2025-12-20 09:37:43 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-02-05 12:35:50 +08:00
|
|
|
|
##### 2. 安装生产依赖
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-26 17:21:20 +08:00
|
|
|
|
```bash
|
2026-02-05 13:59:28 +08:00
|
|
|
|
npm install --production
|
2025-12-20 09:37:43 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-02-05 12:35:50 +08:00
|
|
|
|
##### 3. 配置数据库
|
2026-01-26 17:21:20 +08:00
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
**创建数据库:**
|
2025-12-20 09:37:43 +08:00
|
|
|
|
```sql
|
|
|
|
|
|
CREATE DATABASE idc_management CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
|
|
CREATE USER 'idc_user'@'localhost' IDENTIFIED BY 'secure_password';
|
|
|
|
|
|
GRANT ALL PRIVILEGES ON idc_management.* TO 'idc_user'@'localhost';
|
|
|
|
|
|
FLUSH PRIVILEGES;
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-02-05 12:35:50 +08:00
|
|
|
|
##### 4. 初始化数据库
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
node scripts/init-database.js
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
##### 5. 使用PM2管理进程
|
2026-01-26 17:21:20 +08:00
|
|
|
|
|
2025-12-20 09:37:43 +08:00
|
|
|
|
```bash
|
2026-02-05 13:59:28 +08:00
|
|
|
|
# 安装 PM2
|
2025-12-20 09:37:43 +08:00
|
|
|
|
npm install -g pm2
|
2026-02-05 13:59:28 +08:00
|
|
|
|
|
|
|
|
|
|
# 启动服务
|
|
|
|
|
|
pm2 start server.js --name "idc-backend" --cwd ./backend --env production
|
|
|
|
|
|
|
|
|
|
|
|
# 配置开机自启
|
2025-12-20 09:37:43 +08:00
|
|
|
|
pm2 startup
|
|
|
|
|
|
pm2 save
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-02-05 12:35:50 +08:00
|
|
|
|
#### 前端部署
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-02-05 12:35:50 +08:00
|
|
|
|
##### 1. 构建生产版本
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
cd frontend
|
|
|
|
|
|
npm install
|
|
|
|
|
|
npm run build
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
构建输出目录:`frontend/dist/`
|
|
|
|
|
|
|
2026-02-05 12:35:50 +08:00
|
|
|
|
##### 2. 部署静态文件
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
**Nginx 方式(推荐):**
|
2026-01-26 17:21:20 +08:00
|
|
|
|
```bash
|
2026-02-05 13:59:28 +08:00
|
|
|
|
# 复制构建文件到Nginx目录
|
|
|
|
|
|
sudo cp -r frontend/dist/* /var/www/idc-frontend/
|
2025-12-20 09:37:43 +08:00
|
|
|
|
sudo chown -R www-data:www-data /var/www/idc-frontend
|
|
|
|
|
|
sudo chmod -R 755 /var/www/idc-frontend
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-02-05 12:35:50 +08:00
|
|
|
|
**PM2 serve 方式:**
|
|
|
|
|
|
```bash
|
|
|
|
|
|
npm install -g serve
|
2026-02-05 13:59:28 +08:00
|
|
|
|
pm2 start serve --name "idc-frontend" -- -s frontend/dist -l 3000
|
2026-02-05 12:35:50 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-01-26 17:21:20 +08:00
|
|
|
|
### Nginx配置
|
|
|
|
|
|
|
|
|
|
|
|
#### 1. 创建配置文件
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
**Linux:**
|
2025-12-20 09:37:43 +08:00
|
|
|
|
```bash
|
|
|
|
|
|
sudo nano /etc/nginx/sites-available/idc_assest
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
**Windows:**
|
|
|
|
|
|
编辑 `C:\nginx\conf\nginx.conf` 或在 `conf.d` 目录创建新配置
|
|
|
|
|
|
|
2026-01-26 17:21:20 +08:00
|
|
|
|
#### 2. 配置内容
|
|
|
|
|
|
|
2025-12-20 09:37:43 +08:00
|
|
|
|
```nginx
|
|
|
|
|
|
server {
|
|
|
|
|
|
listen 80;
|
2026-01-26 17:21:20 +08:00
|
|
|
|
server_name your-domain.com;
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
|
|
|
|
|
root /var/www/idc-frontend;
|
|
|
|
|
|
index index.html;
|
|
|
|
|
|
|
2026-02-05 12:35:50 +08:00
|
|
|
|
# Gzip压缩
|
|
|
|
|
|
gzip on;
|
|
|
|
|
|
gzip_vary on;
|
|
|
|
|
|
gzip_min_length 1024;
|
|
|
|
|
|
gzip_types text/plain text/css text/xml text/javascript application/javascript application/xml+rss application/json;
|
|
|
|
|
|
|
|
|
|
|
|
# 静态资源缓存
|
|
|
|
|
|
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
|
|
|
|
|
|
expires 1y;
|
|
|
|
|
|
add_header Cache-Control "public, immutable";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
# 前端路由支持
|
2025-12-20 09:37:43 +08:00
|
|
|
|
location / {
|
|
|
|
|
|
try_files $uri $uri/ /index.html;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
# API代理
|
2025-12-20 09:37:43 +08:00
|
|
|
|
location /api {
|
|
|
|
|
|
proxy_pass http://127.0.0.1:8000;
|
|
|
|
|
|
proxy_http_version 1.1;
|
|
|
|
|
|
proxy_set_header Host $host;
|
|
|
|
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
|
|
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
2026-02-05 12:35:50 +08:00
|
|
|
|
proxy_connect_timeout 60s;
|
|
|
|
|
|
proxy_send_timeout 60s;
|
|
|
|
|
|
proxy_read_timeout 60s;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
# 文件上传代理
|
2026-02-05 12:35:50 +08:00
|
|
|
|
location /uploads {
|
|
|
|
|
|
proxy_pass http://127.0.0.1:8000;
|
|
|
|
|
|
proxy_http_version 1.1;
|
|
|
|
|
|
proxy_set_header Host $host;
|
|
|
|
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
|
|
|
|
client_max_body_size 50M;
|
2025-12-20 09:37:43 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-01-26 17:21:20 +08:00
|
|
|
|
#### 3. 启用配置
|
|
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
**Linux:**
|
2025-12-20 09:37:43 +08:00
|
|
|
|
```bash
|
|
|
|
|
|
sudo ln -s /etc/nginx/sites-available/idc_assest /etc/nginx/sites-enabled/
|
|
|
|
|
|
sudo nginx -t
|
|
|
|
|
|
sudo systemctl restart nginx
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
**Windows:**
|
|
|
|
|
|
```cmd
|
|
|
|
|
|
nginx -t
|
|
|
|
|
|
nginx -s reload
|
|
|
|
|
|
```
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
### SSL证书配置(可选)
|
|
|
|
|
|
|
|
|
|
|
|
**使用 Let's Encrypt(Linux):**
|
2025-12-20 09:37:43 +08:00
|
|
|
|
```bash
|
|
|
|
|
|
sudo apt install certbot python3-certbot-nginx
|
2026-01-26 17:21:20 +08:00
|
|
|
|
sudo certbot --nginx -d your-domain.com
|
2025-12-20 09:37:43 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
**手动配置SSL:**
|
|
|
|
|
|
```nginx
|
|
|
|
|
|
server {
|
|
|
|
|
|
listen 443 ssl http2;
|
|
|
|
|
|
server_name your-domain.com;
|
|
|
|
|
|
|
|
|
|
|
|
ssl_certificate /path/to/cert.pem;
|
|
|
|
|
|
ssl_certificate_key /path/to/key.pem;
|
|
|
|
|
|
ssl_protocols TLSv1.2 TLSv1.3;
|
|
|
|
|
|
ssl_ciphers HIGH:!aNULL:!MD5;
|
|
|
|
|
|
|
|
|
|
|
|
# ... 其他配置
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# HTTP重定向到HTTPS
|
|
|
|
|
|
server {
|
|
|
|
|
|
listen 80;
|
|
|
|
|
|
server_name your-domain.com;
|
|
|
|
|
|
return 301 https://$server_name$request_uri;
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-12-20 09:37:43 +08:00
|
|
|
|
---
|
|
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
## Docker部署
|
2026-02-05 12:35:50 +08:00
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
### 使用 Docker Compose(推荐)
|
2026-02-05 12:35:50 +08:00
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
创建 `docker-compose.yml`:
|
|
|
|
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
|
|
version: '3.8'
|
|
|
|
|
|
|
|
|
|
|
|
services:
|
|
|
|
|
|
backend:
|
|
|
|
|
|
build:
|
|
|
|
|
|
context: ./backend
|
|
|
|
|
|
dockerfile: Dockerfile
|
|
|
|
|
|
ports:
|
|
|
|
|
|
- "8000:8000"
|
|
|
|
|
|
environment:
|
|
|
|
|
|
- NODE_ENV=production
|
|
|
|
|
|
- DB_TYPE=mysql
|
|
|
|
|
|
- MYSQL_HOST=mysql
|
|
|
|
|
|
- MYSQL_PORT=3306
|
|
|
|
|
|
- MYSQL_USERNAME=idc_user
|
|
|
|
|
|
- MYSQL_PASSWORD=idc_password
|
|
|
|
|
|
- MYSQL_DATABASE=idc_management
|
|
|
|
|
|
volumes:
|
|
|
|
|
|
- ./backend/uploads:/app/uploads
|
|
|
|
|
|
depends_on:
|
|
|
|
|
|
- mysql
|
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
|
|
|
|
|
|
|
frontend:
|
|
|
|
|
|
build:
|
|
|
|
|
|
context: ./frontend
|
|
|
|
|
|
dockerfile: Dockerfile
|
|
|
|
|
|
ports:
|
|
|
|
|
|
- "80:80"
|
|
|
|
|
|
depends_on:
|
|
|
|
|
|
- backend
|
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
|
|
|
|
|
|
|
mysql:
|
|
|
|
|
|
image: mysql:8.0
|
|
|
|
|
|
environment:
|
|
|
|
|
|
- MYSQL_ROOT_PASSWORD=root_password
|
|
|
|
|
|
- MYSQL_DATABASE=idc_management
|
|
|
|
|
|
- MYSQL_USER=idc_user
|
|
|
|
|
|
- MYSQL_PASSWORD=idc_password
|
|
|
|
|
|
volumes:
|
|
|
|
|
|
- mysql_data:/var/lib/mysql
|
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
|
|
|
|
|
|
|
volumes:
|
|
|
|
|
|
mysql_data:
|
2026-02-05 12:35:50 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
启动服务:
|
2026-02-05 12:35:50 +08:00
|
|
|
|
```bash
|
2026-02-05 13:59:28 +08:00
|
|
|
|
docker-compose up -d
|
2026-02-05 12:35:50 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-01-26 17:21:20 +08:00
|
|
|
|
## 数据库配置
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
### SQLite(开发环境/小规模)
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-26 17:21:20 +08:00
|
|
|
|
- 默认配置,无需额外设置
|
|
|
|
|
|
- 数据库文件:`backend/idc_management.db`
|
2026-02-05 13:59:28 +08:00
|
|
|
|
- 优点:零配置,便携
|
|
|
|
|
|
- 缺点:不适合高并发,单文件限制
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
### MySQL(生产环境推荐)
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-26 17:21:20 +08:00
|
|
|
|
#### 创建数据库
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
|
|
|
|
|
```sql
|
|
|
|
|
|
CREATE DATABASE idc_management CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
2026-01-26 17:21:20 +08:00
|
|
|
|
```
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-01-26 17:21:20 +08:00
|
|
|
|
#### 创建用户
|
|
|
|
|
|
|
|
|
|
|
|
```sql
|
|
|
|
|
|
CREATE USER 'idc_user'@'localhost' IDENTIFIED BY 'secure_password';
|
|
|
|
|
|
GRANT ALL PRIVILEGES ON idc_management.* TO 'idc_user'@'localhost';
|
2025-12-20 09:37:43 +08:00
|
|
|
|
FLUSH PRIVILEGES;
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
#### 配置优化
|
|
|
|
|
|
|
|
|
|
|
|
```ini
|
|
|
|
|
|
# my.cnf 或 my.ini
|
|
|
|
|
|
[mysqld]
|
|
|
|
|
|
character-set-server=utf8mb4
|
|
|
|
|
|
collation-server=utf8mb4_unicode_ci
|
|
|
|
|
|
max_connections=200
|
|
|
|
|
|
innodb_buffer_pool_size=1G
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-01-26 17:21:20 +08:00
|
|
|
|
### 数据备份
|
|
|
|
|
|
|
|
|
|
|
|
#### SQLite备份
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-02-05 13:59:28 +08:00
|
|
|
|
# 手动备份
|
2026-01-26 17:21:20 +08:00
|
|
|
|
cp backend/idc_management.db backup/database_$(date +%Y%m%d).db
|
2026-02-05 13:59:28 +08:00
|
|
|
|
|
|
|
|
|
|
# 自动备份脚本
|
|
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
BACKUP_DIR="/var/backups/idc_assest"
|
|
|
|
|
|
DATE=$(date +%Y%m%d_%H%M%S)
|
|
|
|
|
|
mkdir -p $BACKUP_DIR
|
|
|
|
|
|
cp backend/idc_management.db "$BACKUP_DIR/database_$DATE.db"
|
|
|
|
|
|
gzip "$BACKUP_DIR/database_$DATE.db"
|
|
|
|
|
|
|
|
|
|
|
|
# 清理30天前的备份
|
|
|
|
|
|
find $BACKUP_DIR -name "database_*.gz" -mtime +30 -delete
|
2025-12-20 09:37:43 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-01-26 17:21:20 +08:00
|
|
|
|
#### MySQL备份
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-02-05 13:59:28 +08:00
|
|
|
|
# 手动备份
|
2026-01-26 17:21:20 +08:00
|
|
|
|
mysqldump -u idc_user -p idc_management > backup/database_$(date +%Y%m%d).sql
|
|
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
# 自动备份脚本
|
2025-12-20 09:37:43 +08:00
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
BACKUP_DIR="/var/backups/idc_assest"
|
|
|
|
|
|
DATE=$(date +%Y%m%d_%H%M%S)
|
|
|
|
|
|
mkdir -p $BACKUP_DIR
|
|
|
|
|
|
|
2026-01-26 17:21:20 +08:00
|
|
|
|
mysqldump -u idc_user -pYourPassword idc_management > "$BACKUP_DIR/database_$DATE.sql"
|
|
|
|
|
|
gzip "$BACKUP_DIR/database_$DATE.sql"
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
|
|
|
|
|
# 清理30天前的备份
|
|
|
|
|
|
find $BACKUP_DIR -name "database_*.gz" -mtime +30 -delete
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-01-26 17:21:20 +08:00
|
|
|
|
添加到crontab:
|
2025-12-20 09:37:43 +08:00
|
|
|
|
```bash
|
|
|
|
|
|
crontab -e
|
2026-01-26 17:21:20 +08:00
|
|
|
|
# 每天凌晨2点执行
|
|
|
|
|
|
0 2 * * * /path/to/backup_script.sh
|
2025-12-20 09:37:43 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-02-05 12:35:50 +08:00
|
|
|
|
## 更新升级
|
|
|
|
|
|
|
|
|
|
|
|
### 方式一:一键更新脚本(推荐)
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
npm run update
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
功能:自动备份 → 拉取代码 → 更新依赖 → 重建前端 → 重启服务
|
|
|
|
|
|
|
|
|
|
|
|
### 方式二:手动更新
|
|
|
|
|
|
|
|
|
|
|
|
#### 1. 备份数据
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-02-05 13:59:28 +08:00
|
|
|
|
# MySQL
|
2026-02-05 12:35:50 +08:00
|
|
|
|
mysqldump -u idc_user -p idc_management > backup.sql
|
2026-02-05 13:59:28 +08:00
|
|
|
|
|
|
|
|
|
|
# SQLite
|
|
|
|
|
|
cp backend/idc_management.db backup.db
|
2026-02-05 12:35:50 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### 2. 拉取最新代码
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
git pull origin master
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### 3. 更新依赖
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
cd backend && npm install
|
|
|
|
|
|
cd ../frontend && npm install && npm run build
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### 4. 重启服务
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
pm2 restart idc-backend
|
|
|
|
|
|
sudo systemctl restart nginx
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 监控维护
|
|
|
|
|
|
|
|
|
|
|
|
### 查看日志
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-02-05 13:59:28 +08:00
|
|
|
|
# PM2 日志
|
2026-02-05 12:35:50 +08:00
|
|
|
|
pm2 logs idc-backend
|
2026-02-05 13:59:28 +08:00
|
|
|
|
pm2 logs idc-frontend
|
|
|
|
|
|
|
|
|
|
|
|
# Nginx 日志(Linux)
|
2026-02-05 12:35:50 +08:00
|
|
|
|
tail -f /var/log/nginx/idc_assest-error.log
|
2026-02-05 13:59:28 +08:00
|
|
|
|
tail -f /var/log/nginx/idc_assest-access.log
|
|
|
|
|
|
|
|
|
|
|
|
# 系统日志(Linux)
|
|
|
|
|
|
journalctl -u idc-backend -f
|
2026-02-05 12:35:50 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 健康检查
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-02-05 13:59:28 +08:00
|
|
|
|
# 服务状态
|
2026-02-05 12:35:50 +08:00
|
|
|
|
curl http://localhost:8000/health
|
2026-02-05 13:59:28 +08:00
|
|
|
|
|
|
|
|
|
|
# 数据库连接检查
|
|
|
|
|
|
curl http://localhost:8000/api/health/db
|
2026-02-05 12:35:50 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
### 性能监控
|
2026-02-05 12:35:50 +08:00
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
**PM2配置**(`ecosystem.config.js`):
|
2026-02-05 12:35:50 +08:00
|
|
|
|
```javascript
|
|
|
|
|
|
module.exports = {
|
|
|
|
|
|
apps: [{
|
|
|
|
|
|
name: 'idc-backend',
|
|
|
|
|
|
script: './server.js',
|
|
|
|
|
|
cwd: './backend',
|
|
|
|
|
|
instances: 1,
|
|
|
|
|
|
exec_mode: 'fork',
|
|
|
|
|
|
max_memory_restart: '1G',
|
2026-02-05 13:59:28 +08:00
|
|
|
|
autorestart: true,
|
|
|
|
|
|
env: {
|
|
|
|
|
|
NODE_ENV: 'production'
|
|
|
|
|
|
},
|
|
|
|
|
|
log_file: './logs/combined.log',
|
|
|
|
|
|
out_file: './logs/out.log',
|
|
|
|
|
|
error_file: './logs/error.log',
|
|
|
|
|
|
log_date_format: 'YYYY-MM-DD HH:mm:ss Z'
|
2026-02-05 12:35:50 +08:00
|
|
|
|
}]
|
|
|
|
|
|
};
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
### 服务管理命令
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# PM2 管理
|
|
|
|
|
|
pm2 status # 查看服务状态
|
|
|
|
|
|
pm2 logs idc-backend # 查看后端日志
|
|
|
|
|
|
pm2 logs idc-frontend # 查看前端日志(PM2方式)
|
|
|
|
|
|
pm2 restart idc-backend # 重启后端服务
|
|
|
|
|
|
pm2 stop idc-backend # 停止后端服务
|
|
|
|
|
|
pm2 delete idc-backend # 删除后端服务
|
|
|
|
|
|
pm2 save # 保存当前进程列表
|
|
|
|
|
|
pm2 startup # 配置开机自启
|
|
|
|
|
|
pm2 monit # 实时监控
|
|
|
|
|
|
|
|
|
|
|
|
# Nginx 管理(Linux)
|
|
|
|
|
|
sudo nginx -t # 测试配置
|
|
|
|
|
|
sudo systemctl restart nginx # 重启服务
|
|
|
|
|
|
sudo systemctl status nginx # 查看状态
|
|
|
|
|
|
|
|
|
|
|
|
# Nginx 管理(Windows)
|
|
|
|
|
|
nginx -t # 测试配置
|
|
|
|
|
|
nginx -s reload # 重载配置
|
|
|
|
|
|
nginx -s stop # 停止Nginx
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-02-05 12:35:50 +08:00
|
|
|
|
---
|
|
|
|
|
|
|
2026-01-26 17:21:20 +08:00
|
|
|
|
## 常见问题
|
|
|
|
|
|
|
|
|
|
|
|
### 端口冲突
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 检查端口占用
|
2026-02-05 13:59:28 +08:00
|
|
|
|
# Linux
|
2025-12-20 09:37:43 +08:00
|
|
|
|
netstat -tulpn | grep :8000
|
2026-02-05 13:59:28 +08:00
|
|
|
|
# Windows
|
|
|
|
|
|
netstat -ano | findstr :8000
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
|
|
|
|
|
# 修改端口
|
2026-01-26 17:21:20 +08:00
|
|
|
|
PORT=8001 npm run dev
|
2025-12-20 09:37:43 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-01-26 17:21:20 +08:00
|
|
|
|
### 依赖安装失败
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-02-05 13:59:28 +08:00
|
|
|
|
# 清理缓存
|
2025-12-20 09:37:43 +08:00
|
|
|
|
npm cache clean --force
|
2026-02-05 13:59:28 +08:00
|
|
|
|
|
|
|
|
|
|
# 删除 node_modules
|
2025-12-20 09:37:43 +08:00
|
|
|
|
rm -rf node_modules package-lock.json
|
2026-02-05 13:59:28 +08:00
|
|
|
|
|
|
|
|
|
|
# 重新安装
|
2025-12-20 09:37:43 +08:00
|
|
|
|
npm install
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-01-26 17:21:20 +08:00
|
|
|
|
### 数据库连接失败
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
**SQLite:**
|
2026-01-26 17:21:20 +08:00
|
|
|
|
- 检查文件权限
|
|
|
|
|
|
- 确保磁盘空间充足
|
2026-02-05 13:59:28 +08:00
|
|
|
|
- 检查文件是否被其他进程占用
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
**MySQL:**
|
|
|
|
|
|
- 检查服务状态:`systemctl status mysql`(Linux)
|
|
|
|
|
|
- 验证连接参数(主机、端口、用户名、密码)
|
2026-01-26 17:21:20 +08:00
|
|
|
|
- 确认数据库已创建
|
2026-02-05 13:59:28 +08:00
|
|
|
|
- 检查防火墙设置
|
|
|
|
|
|
- 确认用户权限:`SHOW GRANTS FOR 'idc_user'@'localhost'`
|
2026-01-26 17:21:20 +08:00
|
|
|
|
|
2026-02-05 12:35:50 +08:00
|
|
|
|
### 部署脚本问题
|
2026-01-26 17:21:20 +08:00
|
|
|
|
|
2026-02-05 12:35:50 +08:00
|
|
|
|
**Linux 自动安装 Node.js 失败:**
|
|
|
|
|
|
- 检查 sudo 权限
|
|
|
|
|
|
- 检查网络连接
|
|
|
|
|
|
- 尝试手动安装后重新运行脚本
|
2026-01-26 17:21:20 +08:00
|
|
|
|
|
2026-02-05 12:35:50 +08:00
|
|
|
|
**Nginx 未安装(选择 Nginx 部署时):**
|
|
|
|
|
|
- Windows:脚本会询问是否自动下载安装
|
|
|
|
|
|
- Linux/macOS:脚本会显示安装命令,需手动安装
|
2025-12-20 09:37:43 +08:00
|
|
|
|
|
2026-02-05 13:59:28 +08:00
|
|
|
|
### 前端构建失败
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 检查 Node.js 版本
|
|
|
|
|
|
node -v
|
|
|
|
|
|
|
|
|
|
|
|
# 清理并重新构建
|
|
|
|
|
|
cd frontend
|
|
|
|
|
|
rm -rf node_modules dist
|
|
|
|
|
|
npm install
|
|
|
|
|
|
npm run build
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 权限问题
|
|
|
|
|
|
|
|
|
|
|
|
**Linux:**
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 修复文件权限
|
|
|
|
|
|
sudo chown -R $(whoami):$(whoami) /path/to/project
|
|
|
|
|
|
sudo chmod -R 755 /path/to/project
|
|
|
|
|
|
|
|
|
|
|
|
# 上传目录权限
|
|
|
|
|
|
sudo chmod -R 777 backend/uploads
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 内存不足
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 增加 Node.js 内存限制
|
|
|
|
|
|
node --max-old-space-size=4096 server.js
|
|
|
|
|
|
|
|
|
|
|
|
# PM2 配置
|
|
|
|
|
|
pm2 start server.js --name "idc-backend" --node-args="--max-old-space-size=4096"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-12-20 09:37:43 +08:00
|
|
|
|
---
|
|
|
|
|
|
|
2026-02-05 12:35:50 +08:00
|
|
|
|
## 项目结构
|
2026-01-26 17:21:20 +08:00
|
|
|
|
|
2025-12-20 09:37:43 +08:00
|
|
|
|
```
|
2026-02-05 12:35:50 +08:00
|
|
|
|
idc_assest/
|
|
|
|
|
|
├── backend/ # 后端服务
|
2026-02-05 13:59:28 +08:00
|
|
|
|
│ ├── middleware/ # 中间件(认证、验证)
|
|
|
|
|
|
│ ├── models/ # 数据模型(Sequelize)
|
2026-02-05 12:35:50 +08:00
|
|
|
|
│ ├── routes/ # API路由
|
|
|
|
|
|
│ ├── scripts/ # 数据库脚本
|
|
|
|
|
|
│ ├── uploads/ # 文件上传目录
|
2026-02-05 13:59:28 +08:00
|
|
|
|
│ ├── validation/ # 数据验证Schema
|
2026-02-05 12:35:50 +08:00
|
|
|
|
│ ├── server.js # 服务入口
|
|
|
|
|
|
│ └── package.json
|
|
|
|
|
|
├── frontend/ # 前端应用
|
|
|
|
|
|
│ ├── src/
|
|
|
|
|
|
│ │ ├── api/ # API接口
|
|
|
|
|
|
│ │ ├── components/ # 组件
|
|
|
|
|
|
│ │ ├── pages/ # 页面
|
|
|
|
|
|
│ │ └── utils/ # 工具函数
|
|
|
|
|
|
│ ├── dist/ # 构建输出
|
|
|
|
|
|
│ └── package.json
|
2026-02-05 13:59:28 +08:00
|
|
|
|
├── docs/ # 项目文档
|
|
|
|
|
|
│ ├── api/ # 接口文档
|
|
|
|
|
|
│ └── images/ # 文档图片
|
2026-02-05 12:35:50 +08:00
|
|
|
|
├── install.js # 交互式安装脚本 ⭐
|
|
|
|
|
|
├── update.js # 一键更新脚本 ⭐
|
2026-02-05 13:59:28 +08:00
|
|
|
|
├── uninstall.js # 卸载脚本
|
|
|
|
|
|
├── check.js # 环境检查脚本
|
|
|
|
|
|
├── modify.js # 配置修改脚本
|
2026-02-05 12:35:50 +08:00
|
|
|
|
├── package.json
|
2026-02-05 13:59:28 +08:00
|
|
|
|
├── README.md # 项目说明
|
|
|
|
|
|
├── CHANGELOG.md # 版本记录
|
2026-02-05 12:35:50 +08:00
|
|
|
|
└── DEPLOYMENT.md # 本文件
|
2025-12-20 09:37:43 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-01-26 17:21:20 +08:00
|
|
|
|
**⭐ 如果这个部署指南对您有帮助,请给我们一个Star!**
|