Appearance
普通部署
本文档介绍如何在 Linux 服务器上通过 Node.js 环境部署 TG2Trade 系统。
1. 环境准备
在开始部署之前,请确保服务器满足以下条件。
1.1 运行环境
| 项目 | 要求 | 说明 |
|---|---|---|
| 操作系统 | Linux(Ubuntu 20.04+ / CentOS 7+) | 生产环境建议使用 Linux 服务器 |
| Node.js | >= 20 | 建议使用 LTS 版本 |
| 包管理器 | pnpm | 本项目使用 pnpm 管理依赖 |
| 数据库 | SQLite | 本地文件型数据库,无需额外安装 |
| 进程管理 | pm2 | 用于进程守护和自动重启 |
1.2 安装依赖软件
如果尚未安装所需软件,请依次执行以下命令:
安装 Node.js 20:
bash
# 使用 NodeSource 官方源安装(推荐)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs验证安装
安装完成后,运行以下命令确认版本:
bash
node -v # 应输出 v20.x.x
npm -v # 应输出 10.x.x安装 pnpm:
bash
npm install -g pnpm安装 pm2:
bash
npm install -g pm2什么是 pm2?
pm2 是 Node.js 应用的进程管理工具,可以守护应用进程、自动重启崩溃的应用、记录日志等。
1.3 网络要求
- 服务器需能连接到 Telegram 服务器(部分网络环境可能需要配置代理)
- 如需连接交易所进行真实交易,需能访问对应交易所 API
- 建议服务器网络稳定,避免消息接收延迟
2. 下载发布包
bash
# 进入应用目录
mkdir -p /opt/TG2Trade && cd /opt/TG2Trade
# 下载发布包(wget / curl 二选一)
wget -O TG2Trade-Node.tar.gz https://download.mw3ai.com/TG2Trade-Node.tar.gz
# 或
# curl -O https://download.mw3ai.com/TG2Trade-Node.tar.gz提示
如果下载速度较慢,可以先用浏览器下载到本地,再通过 SCP 等工具上传到服务器的 /tmp 目录。
3. 首次部署
按顺序执行以下步骤即可完成部署。
3.1 解压发布包
bash
# 解压到应用目录
tar -xzf TG2Trade-Node.tar.gz3.2 配置环境变量
bash
# 默认端口为 3000,如需修改端口号编辑 .env 文件
nano .env3.3 环境变量说明
| 变量名 | 必填 | 默认值 | 说明 |
|---|---|---|---|
DATABASE_URL | 是 | file:./data/data.db | SQLite 数据库文件路径 |
PORT | 否 | 3000 | Web 管理面板端口 |
3.4 安装依赖并启动
bash
# 确保在应用目录下
cd /opt/TG2Trade
# 启动应用
bash scripts/start.sh3.5 确认服务运行
bash
# 查看 pm2 进程状态
pm2 status预期 tg2trade 状态为 online:
┌─────┬──────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
├─────┼──────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0 │ tg2trade │ default │ 1.0.0 │ fork │ 12345 │ 5s │ 0 │ online │ 0% │ 80.0mb │ root │ disabled │
└─────┴──────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘3.6 访问管理面板
打开浏览器访问:
http://<服务器IP>:3000防火墙设置
如果无法访问,请检查服务器防火墙是否已放行 3000 端口:
bash
# Ubuntu(ufw)
sudo ufw allow 3000
# CentOS(firewalld)
sudo firewall-cmd --add-port=3000/tcp --permanent
sudo firewall-cmd --reload云服务器额外步骤
如果使用阿里云 / 腾讯云等云服务器,还需要在安全组中添加入方向规则,放行 TCP 3000 端口。
4. 版本升级
升级只需替换程序文件,已有的数据和配置不会被覆盖。
4.1 下载新版本
bash
cd /opt/TG2Trade
# 下载新版本发布包(wget / curl 二选一)
wget -O TG2Trade-Node.tar.gz https://download.mw3ai.com/TG2Trade-Node.tar.gz
# 或
# curl -O https://download.mw3ai.com/TG2Trade-Node.tar.gz4.2 更新应用
bash
# 进入应用目录
cd /opt/TG2Trade
# 解压新版本(⚠️重要:排除 .env 配置文件和 data 数据目录)
tar -xzf TG2Trade-Node.tar.gz --exclude=.env --exclude=data
# 重启应用
bash scripts/start.sh4.3 验证升级
bash
# 确认进程正常运行
pm2 status
# 查看日志确认无错误
pm2 logs tg2trade --lines 205. 日常运维
5.1 常用命令
bash
# 查看应用状态
pm2 status
# 重启应用
pm2 restart tg2trade
# 停止应用
pm2 stop tg2trade
# 启动应用
pm2 start tg2trade
# 查看实时日志(Ctrl+C 退出)
pm2 logs tg2trade
# 查看最近 100 行日志
pm2 logs tg2trade --lines 1005.2 日常检查项
- 检查 pm2 进程是否正常运行:
pm2 status - 检查日志是否有持续的新信号产生
- 检查交易日志是否有异常订单
- 检查服务器磁盘空间是否充足:
df -h - 检查内存使用是否正常:
free -h
5.3 备份建议
建议定期备份以下数据:
bash
# 进入应用目录
cd /opt/TG2Trade
# 备份数据库
cp data/data.db data/data.db.backup.$(date +%Y%m%d)
# 备份 .env 配置文件
cp .env .env.backup.$(date +%Y%m%d)自动化备份
可将以上命令添加为定时任务(crontab),实现每日自动备份:
bash
# 编辑定时任务
crontab -e
# 添加以下行(每天凌晨 2 点执行备份)
0 2 * * * cd /opt/TG2Trade && cp data/data.db data/data.db.backup.$(date +\%Y\%m\%d) && cp .env .env.backup.$(date +\%Y\%m\%d)6. 常见问题
6.1 端口被占用
bash
# 查看占用 3000 端口的进程
lsof -i :3000解决方法: 修改 .env 中的 PORT 为其他端口(如 8080),然后重启应用:
bash
cd /opt/TG2Trade
# 编辑 .env,将 PORT 改为 8080
nano .env
# 重启应用
pm2 restart tg2trade6.2 pm2 进程异常退出
bash
# 查看错误日志
pm2 logs tg2trade --err
# 或查看所有日志
pm2 logs tg2trade --lines 50常见原因:
- 端口被占用 → 参考 6.1
- 内存不足 → 检查服务器内存使用
free -h - 依赖缺失 → 重新执行
pnpm install
6.3 数据库文件损坏
bash
# 1. 停止应用
pm2 stop tg2trade
# 2. 恢复备份(替换为实际备份文件名)
cd /opt/TG2Trade
cp data/data.db.backup.20260721 data/data.db
# 3. 重启应用
pm2 start tg2trade