EpicMaster 摒弃了臃肿的 Selenium/Playwright,采用 DrissionPage 直接通过 CDP 协议控制系统级 Chromium。它专为 Raspberry Pi 这种低功耗设备优化,能够有效规避 Cloudflare Turnstile 等高难度验证,实现全自动领取的“零干预”体验。
| 特性 | 说明 |
|---|---|
| 🛡️ 底层隐蔽 | 注入 Windows/NVIDIA 显卡指纹,伪装成桌面环境,拒绝被识别为 Headless 机器人。 |
| 🧠 智能过盾 | 自动识别 Cloudflare/Arkose,采用拟人化键鼠轨迹与键盘盲打策略突破验证。 |
| 🐋 Docker 隔离 | 基于 appuser (非 Root) 运行,支持严格的 HTTP 代理隔离,不污染宿主机网络。 |
| 👁️ 可视化监控 | 暴露 6080 端口 (NoVNC),允许在极少数卡顿时进行人工远程介入。 |
| ♻️ 自动守护 | 内置内存看门狗 (Keep-Alive),浏览器崩溃或 OOM 时自动重启会话。 |
EpicMaster/
├── data/ # [持久化] 运行数据挂载点
│ ├── logs/ # 运行日志 (按周轮转)
│ ├── userdata/ # 浏览器 Cookies 与缓存
│ └── screenshots/ # 调试截图
├── src/ # 源代码
│ ├── core/ # 核心逻辑 (Browser, Auth, Claimer)
│ └── fingerprints.json # 伪造指纹库
├── Dockerfile # ARM64 构建文件
└── .env # 配置文件
由于树莓派 (ARM64) 的特殊性,建议直接使用 Docker 部署,避免复杂的依赖问题。
git clone [https://github.com/awtrre/EpicMaster.git](https://github.com/awtrre/EpicMaster.git)
cd EpicMaster构建过程会拉取系统级 Chromium,耗时约 3-5 分钟,请耐心等待。
# 1. 赋予脚本执行权限
chmod +x entrypoint.sh
# 2. 开始构建
docker build -t epic-master:v1 .docker run -d \
--name epic-bot \
--restart unless-stopped \
-p 6080:6080 \
-v $(pwd)/data:/app/data \
--env-file .env \
--shm-size=1gb \
epic-master:v1
⚠️ 关键参数说明
--shm-size=1gb: 必须添加。Chromium 在树莓派上极易因共享内存不足而崩溃 (Page Crash),1GB 是稳定运行的最小值。-v .../data: 挂载目录,确保重启容器后 Cookies 和日志不丢失。
请在项目根目录新建 .env 文件,参照下表填写:
| 变量名 | 必填 | 默认值 | 说明 / 示例 |
|---|---|---|---|
EPIC_EMAIL |
✅ | - | 你的 Epic 登录邮箱 |
EPIC_PASSWORD |
✅ | - | 你的 Epic 登录密码 |
PROXY_URL |
无 | 强烈建议配置。格式:http://192.168.1.X:7890若不配置,在国内网络环境下极大概率无法加载验证盾。 |
|
HEADLESS |
❌ | True |
True: 无头模式 (生产环境)False: 调试模式 (开启浏览器界面) |
📝 提示:程序会自动忽略系统环境变量(如
http_proxy),只认.env里的PROXY_URL,以确保 Docker 容器内的网络隔离性。
程序内置了调度器,启动后会立即执行一次检测,随后进入静默等待模式(每天随机时间唤醒)。
# 查看实时滚动日志
docker logs -f epic-bot
# 或查看详细的历史日志文件
tail -f data/logs/epicmaster.log如果日志提示 Waiting for manual login 或卡在复杂的图形验证码上:
- 访问地址: 浏览器打开
http://<树莓派IP>:6080 - 操作: 你会看到浏览器画面,直接用鼠标点击解决验证。
- 结果: 解决后程序会自动检测通过,并保存 Cookies,下次即可自动登录。
| 现象 | 原因 | 解决方案 |
|---|---|---|
| Browser is dead | 树莓派内存不足,进程被杀 | 无需操作。内置看门狗 (Keep-Alive) 会在 1 分钟内自动重启浏览器。 |
| Cloudflare Loop | IP 质量过低或指纹失效 | 1. 更换代理节点 2. 通过 NoVNC 手动点击一次验证框。 |
| Permission denied | Docker 挂载权限问题 | 执行 chown -R 1000:1000 data/ 修正权限。 |
- 本项目仅供 Python 自动化技术研究 与 编程学习 使用。
- 请勿将本项目用于商业用途、批量注册或任何违反 Epic Games 服务条款的行为。
- 使用本工具产生的任何后果(包括但不限于账号封禁、数据丢失)由使用者 自行承担。