Apple ID 自动化管理方案 Docker 项目部署

项目介绍

“以全新方式管理你的 Apple ID”这是一款基于密保问题的自动化 Apple ID 检测 & 解锁程序。前端用于管理账号,支持添加多个账号,并提供展示账号页面;支持创建包含多个账号的分享页面,并可以为分享页面设置密码与有效期。后端定时检测账号是否被锁定,若被锁定或开启二步验证则自动解锁,修改密码并向 API 回报密码。登录 Apple ID 并自动删除 Apple ID 中的设备。启用代理池和 Selenium 集群,提高解锁成功率,防止风控。

项目特点

  • 多用户使用,权限控制
  • 多账号管理
  • 账号分享页,支持设置密码、有效期、自定义HTML内容
  • 自动解锁与关闭二步验证
  • 自动/定时修改密码
  • 自动删除Apple ID中的设备
  • 代理池与Selenium集群,提高解锁成功率
  • 允许手动触发解锁
  • ……

后端API介绍

后端 API 可实现在前端手动控制解锁任务,例如:

  • 前端添加/编辑/删除账号时,实时同步到后端;
  • 分享页允许用户触发解锁……

.env[BACKEND] 部分的 ENABLE_APItrue 时,后端会自动启用接口。监听的 IP 与端口也在前端配置文件中。由于后端 API 采用 HTTP 协议,我们强烈建议监听 127.0.0.1 而非 0.0.0.0 。如果前端与后端不在同一台服务器上但需要使用后端 API ,强烈建议使用 nginx 等进行反代。

后端文件说明

您可以使用"后端程序安装"部分的一键安装脚本来跳过本部分

  • backend\unblocker_manager.py 后端管理程序
    说明:用于定时从 API 获取任务列表,并部署 task 对应的 docker 容器。(如果您使用本程序,您可以不用看下面第二个程序的介绍,会自动部署)
    启动参数:-api_url <API地址> -api_key <API key> (API 地址格式为 http(s)://xxx.xxx 末尾不需要加/或路径)
  • backend\unlocker\main.py 后端解锁程序
    说明:通过 Webdriver 实现账号改密解锁,并向 API 提交新密码。该程序依赖 API 运行。
    启动参数:-api_url <API地址> -api_key <API key> -taskid <Task ID>

后端管理程序会自动从API站点获取任务并部署容器,默认同步时间为10分钟(重启服务即可立即同步)
若不想使用自动同步,也可以手动部署后端解锁程序 ,docker 版 sahuidhsu/appleid_auto

架构

前端面板使用ThinkPHP6框架开发,前端框架使用Tabler

后端程序使用Python3编写

前端网站安装

网页端运行环境推荐 PHP 7.4 & MySQL 8.0,理论支持MySQL5.x,其他版本PHP可能不支持。

  1. 前往 Release 从最新版本下载网页源码(Source code)并解压
  2. 将配置文件 .example.env 复制一份,名字改为 .env,并填写设置项
    有关后端 API 请参阅后端 API 介绍

    • # 启用调试模式
    • APP_DEBUG = false
    • # 是否开启注册功能
    • ENABLE_REGISTER = true
    • # API Key,用于调用前端的API
    • API_KEY = 123456
    • # Webdriver地址,末尾不要加斜杠
    • WEBDRIVER = http://localhost:4444
    • # 是否启用任务后台运行,即不显示浏览器窗口
    • TASK_HEADLESS = true
    • # 是否启用代理池
    • ENABLE_PROXY_POOL = false
    • # 当后端报告代理不可用时,是否自动禁用该代理
    • PROXY_AUTO_DISABLE = false
    • # 当任务执行失败时,是否5分钟后重试,否则直接等待下一次执行任务
    • FAIL_RETRY = true
    • [BACKEND]
    • # 后端API配置
    • # 通过后端API可实现在前端控制解锁任务,做到实时更新,并允许用户触发解锁
    • # 由于后端API采用HTTP协议,强烈建议监听127.0.0.1而非0.0.0.0
    • # 如果前端与后端不在同一台服务器上,强烈建议使用nginx等进行反代
    • ENABLE_API = false
    • LISTEN_IP = 127.0.0.1
    • LISTEN_PORT = 3939
    • API_URL = http://127.0.0.1:3939
    • TOKEN = 1234561
    • [DATABASE]
    • # 数据库连接信息
    • TYPE = mysql
    • HOSTNAME = 127.0.0.1
    • DATABASE = appleid_auto
    • USERNAME = root
    • PASSWORD = 123456
    • HOSTPORT = 3306
    • [APP]
    • # 时区设置
    • DEFAULT_TIMEZONE = Asia/Shanghai
    展开
  3. 前往 PHP 设置,删除对 putenv 函数的禁用,并安装 fileinfo 拓展
    对于宝塔用户,请前往软件商店->对应PHP的设置
    禁用函数->删除 putenvproc_open
    安装拓展->安装 fileinfo
  4. 前往网站根目录,执行以下指令
    • wget https://getcomposer.org/installer -O composer.phar
    • php composer.phar
    • php composer.phar install
  5. 设置网站运行目录为 /public,并设置伪静态为
    • location ~* (runtime|application)/{
    • return 403;
    • }
    • location / {
    • if (!-e $request_filename){
    • rewrite ^(.*)$ /index.php?s=$1 last; break;
    • }
    • }
  6. 手动导入数据库文件 (db/db.sql)
  7. 在网站根目录下执行指令,创建管理员账户
    php think register 用户名 密码
  8. 登录网站,此时请先不要添加账号,完成后端安装后再添加

后端程序安装

注意事项

环境需求

后端运行基于 Docker,安装脚本会自动检测 Docker 是否安装。

Selenium

后端执行任务需要调用 Webdriver,有两种部署方式:单机节点和集群。

单机节点(standalone)

请根据需求修改参数

  • docker run -d --name=webdriver --log-opt max-size=1m --log-opt max-file=1 --shm-size="2g" --restart=always -e SE_NODE_MAX_SESSIONS=10 -e SE_NODE_OVERRIDE_MAX_SESSIONS=true -e SE_SESSION_RETRY_INTERVAL=1 -e SE_VNC_VIEW_ONLY=1 -p 4444:4444 -p 5900:5900 selenium/standalone-chrome

其中:

SE_VNC_VIEW_ONLY=1 表示 VNC 仅允许查看,不允许操作。

SE_NODE_MAX_SESSIONS=10 表示最多允许 10 个会话数。

4444 端口用于执行任务和面板,5900 端口用于 VNC。

VNC 默认密码 secret

如需在 ARM 设备上使用,请参阅 seleniarm/standalone-chromium

集群(grid)

Selenium Grid 需要一个中心控制器(Hub),并允许在多台服务器上部署节点(Node)。Hub 收到请求后会自动分配 Node,实现负载均衡,多 IP 访问等功能。

快速部署脚本请参考 sahuidhsu/selenium-grid-docker (这个脚本提供 x86_64 和 arm 部署支持)

一键部署后端

  • bash <(curl -Ls https://raw.githubusercontent.com/pplulee/appleid_auto/backend/backend/install_unblocker.sh)

安装时按照提示输入参数即可。

默认会以 appleauto 为容器名部署一个 Docker 容器。

部署完成后可通过 docker logs appleauto 查看管理容器日志。

通过 docker ps | grep apple-auto | awk '{print $1}' | xargs docker logs $1 查看后端容器日志。

项目地址

THE END
分享
二维码
打赏
海报
<<上一篇
下一篇>>