Files
crypto_okx/部署文档.md
T
dekun 56618a6655 Harden embed live refresh with reconnect backoff and poll fallback.
Document Nginx SSE proxy settings for long-lived live streams.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-14 18:10:54 +08:00

4.7 KiB

crypto_okx 部署文档(Ubuntu)

独立仓库:https://git.bz121.com/dekun/crypto_okx.git

功能与页面操作见同目录 使用说明.md.脚本细节见 deploy/README.md.


一键部署(推荐)

新服务器无需先 clone:

curl -fsSL https://git.bz121.com/dekun/crypto_okx/raw/branch/main/deploy/manage.sh | bash

菜单:

  1. 一键部署 — 环境识别、系统依赖、Node/PM2、venv、密钥、启动 crypto_okx
  2. 一键卸载 — 备份 .env 后移走 /opt/crypto_okx
  3. 更新git pull + 重启 / 依赖更新
  4. 仅检测 — 识别环境与依赖,不安装
  5. 退出

已安装后再次进入:

bash /opt/crypto_okx/deploy/manage.sh

默认安装路径:/opt/crypto_okx
默认端口:5004(.envAPP_PORT)
访问:http://<服务器IP>:5004 → 默认进入期权页 /options


本地部署 + SSH SOCKS 转发 + PM2(可选)

本机直连 OKX 若被 TLS/SNI reset,可用本机 ssh -D 把 SOCKS 出口放到可达 OKX 的 VPS,并配置:

OKX_SOCKS_PROXY=socks5h://127.0.0.1:1080

安全提醒:不要把 .env、私钥、OKX API Key 提交到 Git.

0. 准备

  • Ubuntu 本机或云主机
  • 能访问 OKX 的 VPS(SSH)
  • Python 3.10+、python3-venvgitcurlnode/npm(装 PM2)

1. 克隆本仓库

cd /opt
git clone https://git.bz121.com/dekun/crypto_okx.git crypto_okx
cd /opt/crypto_okx
cp -n .env.example .env

或用一键脚本自动克隆到 /opt/crypto_okx.

2. SSH SOCKS(可选)

~/.ssh/config 示例:

Host okx-vps
  HostName YOUR_VPS_IP
  User root
  IdentityFile ~/.ssh/vps1.pem
  IdentitiesOnly yes
  ServerAliveInterval 30
  ServerAliveCountMax 3
  ExitOnForwardFailure yes
  BatchMode yes

开隧道并验证:

ssh -N -D 127.0.0.1:1080 okx-vps
curl -4 -Iv --max-time 15 --proxy socks5h://127.0.0.1:1080 https://www.okx.com/api/v5/public/time

3. 环境与依赖

推荐:

cd /opt/crypto_okx
bash deploy/setup_env.sh --install-system-deps

手动等价:

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

走 SOCKS 须已安装 PySocks(含在 requirements.txt).

4. 配置 .env

文件 是否进 Git 说明
.env.example 模板
.env 真实配置;app.py 只读此文件

首次:

cp -n .env.example .env
nano .env

至少确认:

APP_HOST=0.0.0.0
APP_PORT=5004
APP_USERNAME=admin
APP_PASSWORD=你的强密码
FLASK_SECRET_KEY=长随机串

LIVE_TRADING_ENABLED=false
OKX_API_KEY=...
OKX_API_SECRET=...
OKX_API_PASSPHRASE=...
OKX_SOCKS_PROXY=socks5h://127.0.0.1:1080

git pull 不会覆盖 .env.升级前可备份:cp .env .env.backup.$(date +%Y%m%d).

5. 手工启动验证

cd /opt/crypto_okx
source .venv/bin/activate
python app.py

浏览器:http://127.0.0.1:5004

6. PM2 常驻

cd /opt/crypto_okx
pm2 start ecosystem.config.cjs
pm2 save
pm2 startup

进程名:crypto_okx.日志:pm2 logs crypto_okx --lines 100

SOCKS 隧道建议用 tmux/autossh/ssh -D 常驻,不要交给本项目的 PM2 配置(见 ecosystem.config.cjs 注释).

7. 更新 / 卸载

# 更新
bash /opt/crypto_okx/deploy/manage.sh   # 选 3
# 或
bash /opt/crypto_okx/deploy/pull_and_restart.sh

# 卸载
bash /opt/crypto_okx/deploy/manage.sh   # 选 2

8. 常见问题

  • 页面打不开:pm2 status / pm2 logs crypto_okx --lines 50
  • OKX 失败:先确认 SOCKS ss -lntp | grep 1080,再 curl --proxy socks5h://...
  • 脚本 pipefail 报错(Windows 编辑过):sed -i 's/\r$//' deploy/*.sh deploy/lib/*.sh
  • 几分钟后资金/行情不自动刷新:embed 壳靠 SSE(/api/instance/live/stream).若前面有 Nginx,需关闭缓冲并拉长超时,例如:
location / {
    proxy_pass http://127.0.0.1:5004;
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    proxy_buffering off;
    proxy_read_timeout 3600s;
    proxy_send_timeout 3600s;
    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;
}

改完后 nginx -t && systemctl reload nginx,浏览器强刷.前端另有断开重连与轮询兜底.


环境变量覆盖(可选)

INSTALL_ROOT=/opt/crypto_okx
GIT_URL=https://git.bz121.com/dekun/crypto_okx.git
GIT_BRANCH=main
BACKUP_ROOT=/root/backups

免责声明

请遵守当地法律法规与交易所条款.实盘风险自负.