自建闲鱼自动发货系统:Docker 部署全流程,24小时自动回复发卡券

zheng头像
zheng 2026-07-18 17:44
楼主

在闲鱼上卖虚拟商品(卡券、会员、教程等),最烦的就是每次买家付款后要手动回复卡密。尤其凌晨下单的,等你第二天看到,买家可能已经退款差评了。

今天就来搭建一个完全自托管的闲鱼自动发货系统,用 Docker 一键部署,支持:

  • 买家下单 → 自动检测订单
  • 自动发送卡券内容(卡密/链接/教程)
  • 自动确认收货
  • 多账号、多商品管理
  • Web 面板可视化管理

系统架构

整套系统由 6 个 Docker 容器组成:

┌─────────────────────────────────────┐
│          Nginx / 前端 (9000)          │
│          Vue.js Web 面板              │
└──────────────┬──────────────────────┘
               │
┌──────────────▼──────────────────────┐
│      Backend Web (8089)              │
│      FastAPI 管理接口                 │
└──────────────┬──────────────────────┘
               │
┌──────────────▼──────────────────────┐
│      WebSocket (8090)                │
│      闲鱼 LWP 长连接,收发消息         │
└──────────────┬──────────────────────┘
               │
┌──────────────▼──────────────────────┐
│      Scheduler (8091)                │
│      定时轮询订单,触发发货            │
└─────────────────────────────────────┘
        │              │
┌───────▼──┐    ┌─────▼─────┐
│  MySQL   │    │   Redis   │
│  订单存储  │    │  缓存/队列  │
└──────────┘    └───────────┘

准备工作

服务器要求

  • Linux 服务器(推荐 CentOS 7+ / Ubuntu 20.04+)
  • 至少 2GB 内存(实际运行约 1.2GB)
  • 安装 Docker 和 Docker Compose
  • 开放端口:9000(前端)、8089-8091(后端服务)

闲鱼账号准备

  • 一个闲鱼卖家账号
  • 在闲鱼 App 上发布商品(虚拟卡券类)
  • 准备好卡券内容(卡密列表)

第一步:安装 Docker

如果你的服务器还没装 Docker,用官方脚本一键安装:

# 安装 Docker
curl -fsSL https://get.docker.com | bash

# 启动并设置开机自启
systemctl enable docker
systemctl start docker

# 安装 Docker Compose
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

# 验证
docker --version
docker-compose --version

第二步:拉取并启动系统

创建项目目录并下载配置文件:

mkdir -p /opt/xianyu-auto-ship/xianyu_auto_reply
cd /opt/xianyu-auto-ship

# 下载 docker-compose 配置文件
# (配置文件包含 mysql、redis、backend-web、websocket、scheduler、frontend 6个服务)

# 启动所有服务
docker-compose up -d

# 查看运行状态
docker ps

首次启动会从阿里云镜像仓库拉取镜像,等待几分钟后所有容器变为 healthy 即可。


第三步:配置系统

打开浏览器访问 http://你的服务器IP:9000,进入 Web 管理面板。

3.1 登录闲鱼账号

在管理面板 → 账号管理 → 添加闲鱼账号,系统会引导你扫码登录。登录成功后 WebSocket 服务会建立与闲鱼的长连接,实时监听消息。

3.2 添加商品

在商品管理中录入闲鱼商品 ID(从闲鱼商品链接中获取),并关联上你的卡券库。

3.3 导入卡券

在卡券管理中批量导入卡密,每行一条,支持文本、CSV 格式。


第四步:发货流程

配置完成后,系统的自动发货流程如下:

  1. Scheduler 定时轮询:每 5 分钟检查一次待发货订单
  2. 匹配卡券:根据商品 ID 从卡券库中取一条未使用的卡密
  3. 发送消息:通过 WebSocket 长连接发送卡券内容给买家
  4. 确认收货:自动确认发货,订单状态更新为已发货
  5. 记录日志:所有操作记录入库,可追溯

常见问题与踩坑记录

1. WebSocket 连接断开

闲鱼的 LWP(Long Web Polling)连接有超时机制,长时间无消息会自动断开。系统内置了心跳保活和自动重连,一般不需要干预。如果频繁断开,检查:

  • 服务器网络是否稳定
  • 闲鱼账号是否被风控(频繁操作会触发)

2. 无法获取会话 chat_id

发货需要知道买家会话的 chat_id。如果买家从未主动发过消息,系统无法创建会话,需要手动在闲鱼 App 上先给买家发一条消息激活会话。

3. 滑块验证码

闲鱼登录或频繁操作时会弹出滑块验证。系统内置了 DrissionPage 浏览器自动化引擎来处理验证码,首次处理可能较慢(约 15-25 秒)。

4. 账号风控

如果闲鱼检测到异常操作(频繁发送相似消息、短时间大量操作),可能会限制账号功能。建议:

  • 消息间隔设置 20 秒以上
  • 不同订单的回复内容增加随机变化
  • 不要同时登录多个设备

资源占用实测

在 2 核 2G 的阿里云轻量服务器上运行 6 个容器,实际资源占用:

容器 内存 说明
MySQL ~200MB 订单/卡券/日志存储
Redis ~30MB 缓存和消息队列
WebSocket ~300MB 含浏览器引擎(处理验证码)
Backend Web ~180MB API 服务
Scheduler ~150MB 定时任务
Frontend ~50MB 静态页面
合计 ~900MB 建议 1.5GB 以上内存

如果用不到的时候想释放资源,直接 docker stop 全部容器即可,内存立即回收。


管理命令速查

# 启动所有服务
docker-compose up -d

# 停止所有服务
docker stop xianyu-scheduler xianyu-frontend xianyu-websocket \
  xianyu-backend-web xianyu-redis xianyu-mysql

# 查看日志
docker logs -f xianyu-websocket --tail 100

# 重启单个服务
docker restart xianyu-backend-web

# 进入容器调试
docker exec -it xianyu-websocket bash

# 查看数据库
docker exec -it xianyu-mysql mysql -u xianyu -p

总结

这套系统用 Docker 部署,好处是:

  • 一键部署:不用折腾 Python 环境、依赖包
  • 隔离运行:每个服务独立容器,互不影响
  • 资源可控:可以限制每个容器的内存上限
  • 迁移方便:换服务器只需打包数据目录

如果你也在闲鱼卖虚拟商品,值得花半小时部署一套。至少不用半夜被买家消息吵醒了。


相关文章

Cloudflare R2 对象存储:零成本搭建博客图床,告别图片拖慢网站 Grafana + Prometheus 服务器监控

最新回复

暂无回复,来说两句吧

发表评论

站点总访问量:6157