Files
crypto_key/DEPLOY.md
T

5.8 KiB
Raw Blame History

部署文档 — crypto_keyUbuntu /opt

仓库地址:https://git.bz121.com/dekun/crypto_key
部署路径:/opt/crypto_key
进程守护:PM2 · 服务端口:5200

币圈 API 密钥本地管理工具。数据保存在服务器本地 data.json,无登录,默认仅监听 127.0.0.1


一、架构

浏览器 / SSH 隧道 → http://127.0.0.1:5200
                        ↓
                   PM2 (api-key-manager)
                        ↓
              /opt/crypto_key/venv/python app.py
                        ↓
              /opt/crypto_key/data.json
路径 说明
/opt/crypto_key 项目根目录(从 Git 克隆)
/opt/crypto_key/data.json 账户数据(不纳入 Git
/opt/crypto_key/logs/ PM2 日志
/opt/crypto_key/venv/ Python 虚拟环境

二、服务器要求

项目 要求
系统 Ubuntu 20.04 / 22.04 / 24.04 LTS
权限 具备 sudo 的普通用户或 root
Python 3.8+python3
Node.js 16+(用于 PM2
磁盘 ≥ 100MB

三、首次部署(推荐:一键脚本)

3.1 克隆仓库并执行安装

# 若仓库尚未克隆,可先克隆再安装
sudo mkdir -p /opt
sudo git clone https://git.bz121.com/dekun/crypto_key.git /opt/crypto_key
cd /opt/crypto_key
sudo bash scripts/install-ubuntu.sh

脚本将自动完成:安装 python3 / git / Node.js / PM2 → 创建 venv → 安装 Flask → PM2 启动服务。

3.2 验证

pm2 status
curl -s http://127.0.0.1:5200/api/accounts

浏览器或 SSH 端口转发访问:http://127.0.0.1:5200

# 本机 SSH 转发示例(在你自己的电脑上执行)
ssh -L 5200:127.0.0.1:5200 user@your-server-ip
# 然后浏览器打开 http://127.0.0.1:5200

四、手动部署(逐步)

适合需要自定义权限或不用一键脚本的环境。

4.1 安装系统依赖

sudo apt update
sudo apt install -y python3 python3-venv python3-pip git curl

# Node.js + PM2
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
sudo npm install -g pm2

4.2 克隆到 /opt

sudo mkdir -p /opt
sudo git clone https://git.bz121.com/dekun/crypto_key.git /opt/crypto_key
cd /opt/crypto_key

若目录已存在,更新代码:

cd /opt/crypto_key
sudo git pull

4.3 Python 环境

cd /opt/crypto_key
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

4.4 PM2 启动

cd /opt/crypto_key
mkdir -p logs
chmod +x pm2-start.sh pm2-stop.sh
./pm2-start.sh

或:

pm2 start ecosystem.config.cjs
pm2 save

4.5 目录权限(可选)

若用普通用户运行 PM2,建议将项目目录属主改为该用户:

sudo chown -R $USER:$USER /opt/crypto_key

五、开机自启

pm2 startup
# 终端会输出一行 sudo 命令,复制并执行
pm2 save

重启后检查:

pm2 status
# api-key-manager 应为 online

六、日常运维

查看状态与日志

pm2 status
pm2 logs api-key-manager
pm2 logs api-key-manager --lines 100

重启 / 停止

cd /opt/crypto_key
./pm2-start.sh          # 启动
# 或
pm2 restart api-key-manager

./pm2-stop.sh           # 停止
# 或
pm2 stop api-key-manager

更新代码

cd /opt/crypto_key
git pull
source venv/bin/activate
pip install -r requirements.txt
pm2 restart api-key-manager

备份数据

sudo cp /opt/crypto_key/data.json /opt/crypto_key/data.json.bak.$(date +%F)

data.json 含明文 API 密钥,请加密存储或限制文件权限:

chmod 600 /opt/crypto_key/data.json

七、PM2 配置说明

文件:/opt/crypto_key/ecosystem.config.cjs

配置
进程名 api-key-manager
工作目录 项目根目录(自动)
Python venv/bin/python
自动重启
日志 logs/pm2-out.log / logs/pm2-error.log

八、项目文件结构

/opt/crypto_key/
├── app.py
├── index.html
├── requirements.txt
├── ecosystem.config.cjs
├── pm2-start.sh
├── pm2-stop.sh
├── scripts/
│   └── install-ubuntu.sh
├── logs/
├── venv/
├── data.json          # 运行时生成,已 .gitignore
├── README.md
└── DEPLOY.md

九、故障排查

现象 处理
pm2 status 为 errored pm2 logs api-key-manager --err;确认 venv 已创建
端口 5200 占用 sudo ss -tlnp | grep 5200;修改 app.pyportpm2 restart
git clone 需认证 配置 SSH Key 或 git config credential.helper store
无法访问页面 服务仅监听 127.0.0.1,需 SSH 隧道或在本机 curl
更新后异常 pip install -r requirements.txtpm2 restart api-key-manager

十、安全说明

  • 默认绑定 127.0.0.1,不对外网直接暴露。
  • 无登录鉴权,切勿将 0.0.0.0:5200 开放到公网。
  • data.json 已加入 .gitignore,不会推送到仓库。
  • 建议在防火墙仅允许 SSH,通过隧道访问管理页。

十一、Windows 本地开发(附录)

cd C:\path\to\crypto_key
python -m venv venv
.\venv\Scripts\activate
pip install -r requirements.txt
npm install -g pm2
.\pm2-start.ps1

访问:http://127.0.0.1:5200


十二、命令速查

# 首次部署
sudo git clone https://git.bz121.com/dekun/crypto_key.git /opt/crypto_key
cd /opt/crypto_key && sudo bash scripts/install-ubuntu.sh

# 日常
pm2 status
pm2 restart api-key-manager
cd /opt/crypto_key && git pull && pm2 restart api-key-manager