Reslms

Reslms
AG666机场订阅管理系统 - 完整部署指南
项目简介:一个基于Node.js和React的TZ信息管理系统,支持多种代理协议的订阅链接管理和节点信息展示。
📋 目录
🔧 系统要求
基础要求
- Node.js: v16.0.0 或更高版本
- npm: v8.0.0 或更高版本
- 操作系统: Windows 10+, Linux (Ubuntu 18.04+, CentOS 7+), macOS 10.15+
- 内存: 最少 512MB,推荐 1GB+
- 存储: 最少 500MB 可用空间
- 网络: 需要访问外网(用于获取订阅信息)
可选要求
- Docker: 20.10+ (容器化部署)
- Nginx: 1.18+ (反向代理)
- PM2: 5.0+ (进程管理)
🚀 快速部署
Windows 一键部署
下载项目代码
1
2git clone <项目仓库地址>
cd reslms运行启动脚本
1
start.bat
脚本将自动:
- 检查Node.js和npm版本
- 安装所有依赖
- 启动开发服务器
访问应用
- 前端界面:http://localhost:5173
- 后端API:http://localhost:3000
- 管理后台:http://localhost:5173/admin
Linux/macOS 一键部署
下载项目代码
1
2git clone <项目仓库地址>
cd reslms添加执行权限并运行
1
2chmod +x server-start.sh
./server-start.sh访问应用
- 前端界面:http://服务器IP:3000
- 后端API:http://服务器IP:3001
- 管理后台:http://服务器IP:3000/admin
🔨 手动部署
步骤1:环境准备
安装Node.js (推荐使用nvm)
Linux/macOS:
1 | # 安装nvm |
Windows:
直接从 Node.js官网 下载安装包
验证安装
1 | node -v # 应显示 v16.0.0 或更高 |
步骤2:项目安装
- 安装依赖
1
2
3
4
5
6
7
8
9
10
11
12# 安装根目录依赖
npm install
# 安装前端依赖
cd frontend
npm install
cd ..
# 安装后端依赖
cd backend
npm install
cd ..
步骤3:环境配置
创建环境变量文件
1
cp docker.env .env
编辑环境变量
1
nano .env
关键配置项:
1
2
3
4
5
6
7
8
9
10
11
12
13
14# 基本配置
NODE_ENV=production
PORT=3001
# 安全配置(生产环境必须修改)
ADMIN_PASSWORD=your_secure_password_here
JWT_SECRET=your_jwt_secret_32_chars_minimum
SESSION_SECRET=your_session_secret_32_chars
# CORS配置
CORS_ORIGIN=https://yourdomain.com
# 数据库配置
DATABASE_PATH=./data/subscriptions.db创建数据目录
1
mkdir -p data
步骤4:构建和启动
构建项目
1
npm run build
启动服务
1
2
3
4
5
6# 开发模式
npm run dev
# 生产模式
cd backend
npm start
🐳 Docker 容器化部署
方法1:使用Docker Compose(推荐)
准备环境文件
1
2cp docker.env .env
# 编辑 .env 文件,设置生产环境配置构建和启动
1
2
3
4
5# 构建项目
npm run build
# 启动容器
docker-compose up -d访问应用
- 主应用:http://localhost:80
- 直接访问前端:http://localhost:3000
- 直接访问后端:http://localhost:3001
方法2:单独使用Docker
构建镜像
1
2npm run build
docker build -t airport-subscription-manager .运行容器
1
2
3
4
5
6
7docker run -d \
--name airport-subscription \
-p 3001:3001 \
-v $(pwd)/data:/app/data \
-v $(pwd)/logs:/app/logs \
--env-file .env \
airport-subscription-manager
Docker Compose 配置说明
完整的 docker-compose.yml 包含:
- Frontend: Nginx提供前端静态文件
- Backend: Node.js后端API服务
- Nginx Proxy: 主入口反向代理
- 数据持久化: 数据库文件和日志文件映射
🏭 生产环境部署
使用PM2进程管理
全局安装PM2
1
npm install -g pm2
运行PM2部署脚本
1
2chmod +x pm2.sh
./pm2.shPM2常用命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15# 查看状态
pm2 status
# 查看日志
pm2 logs
# 重启应用
pm2 restart all
# 停止应用
pm2 stop all
# 设置开机自启
pm2 startup
pm2 save
手动配置PM2
创建PM2配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19// ecosystem.config.js
module.exports = {
apps: [
{
name: 'reslms-backend',
cwd: './backend',
script: 'npm',
args: 'start',
env: {
NODE_ENV: 'production',
PORT: 3001
},
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '1G'
}
]
};启动PM2
1
pm2 start ecosystem.config.js
🌐 Nginx 反向代理配置
基础配置
安装Nginx
1
2
3
4
5
6
7# Ubuntu/Debian
sudo apt update
sudo apt install nginx
# CentOS
sudo yum install epel-release
sudo yum install nginx创建站点配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24# /etc/nginx/sites-available/airport-subscription
server {
listen 80;
server_name yourdomain.com;
# 前端静态文件
location / {
root /path/to/reslms/frontend/dist;
try_files $uri $uri/ /index.html;
}
# API代理
location /api/ {
proxy_pass http://localhost:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
}启用站点
1
2
3sudo ln -s /etc/nginx/sites-available/airport-subscription /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
SSL配置(HTTPS)
安装Certbot
1
sudo apt install certbot python3-certbot-nginx
获取SSL证书
1
sudo certbot --nginx -d yourdomain.com
自动续期
1
2
3sudo crontab -e
# 添加以下行
0 12 * * * /usr/bin/certbot renew --quiet
⚙️ 环境变量配置
完整环境变量说明
1 | # 基本配置 |
安全配置检查清单
- 修改默认管理员密码
- 设置强随机JWT密钥(至少32字符)
- 设置强随机会话密钥(至少32字符)
- 配置正确的CORS源
- 设置合适的日志级别
- 确保数据库文件权限正确
🔐 安全配置
1. 密码安全
1 | # 生成强密码 |
2. 文件权限
1 | # 设置数据目录权限 |
3. 防火墙配置
1 | # Ubuntu/Debian (ufw) |
4. 定期备份
1 |
|
🔍 故障排除
常见问题
1. 端口被占用
问题: Error: listen EADDRINUSE :::3001
解决方案:
1 | # 查找占用端口的进程 |
2. Node.js版本过低
问题: 应用启动失败,提示语法错误
解决方案:
1 | # 检查版本 |
3. 数据库连接失败
问题: Error: SQLITE_CANTOPEN
解决方案:
1 | # 检查数据目录权限 |
4. 依赖安装失败
问题: npm install 失败
解决方案:
1 | # 清理缓存 |
5. 前端访问404
问题: 前端路由无法访问
解决方案:
1 | # Nginx配置添加 |
日志分析
查看应用日志
1 | # PM2日志 |
常见错误日志
配置错误:
1
配置验证失败: 配置项 server.adminPassword 未设置或为空
检查环境变量文件
数据库错误:
1
数据库初始化失败: SQLITE_CANTOPEN
检查数据目录权限
网络错误:
1
获取订阅失败: timeout of 8000ms exceeded
检查网络连接或增加超时时间
📊 维护与监控
1. 健康检查
应用提供健康检查端点:
1 | curl http://localhost:3001/api/health |
返回格式:
1 | { |
2. 性能监控
PM2监控
1 | # 实时监控 |
系统监控
1 | # 内存使用 |
3. 日志轮转
创建logrotate配置:
1 | # /etc/logrotate.d/airport-subscription |
4. 自动更新脚本
1 |
|
5. 监控告警
使用PM2监控
1 | # 安装PM2监控模块 |
自定义监控脚本
1 |
|
6. 数据备份策略
每日备份脚本
1 |
|
设置定时任务
1 | # 编辑crontab |
📞 技术支持
如遇到部署问题,请检查:
- 系统要求: 确保Node.js版本 >= 16.0.0
- 网络连接: 确保可以访问外网
- 端口占用: 检查3000、3001端口是否被占用
- 权限问题: 确保有读写数据目录的权限
- 环境变量: 检查.env文件配置是否正确
调试模式启动:
1 | DEBUG=* NODE_ENV=development npm run dev |
说明
其实上面大部分是由ai生成的,具体的很简单,记录一下怕自己忘了
1.配置文件
1.首先修改frontend/vite.config.ts文件里面的target,使其正确指向后端地址。
2.其次再修改backend/src/config/index.ts文件里面的additionalCorsOrigins,添加前端地址,否则跨域无法访问。
3.运行端口在backend/src/config/index.ts里面的port选项。
2.执行运行代码
1.首先进入frontend文件夹,执行一下命令:
1 | npm install&&npm run build:production |
2.再进入backend文件夹,依旧执行
1 | npm install |
3.持久化运行,使用pm2:
1 | pm2 start npm --name'reslms' -- run dev #pm2启动项目 |
最后更新: 2025年8月
版本: v1.0.0



