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
分享
二维码
打赏
海报
Apple ID 自动化管理方案 Docker 项目部署
项目介绍 “以全新方式管理你的 Apple ID”这是一款基于密保问题的自动化 Apple ID 检测 & 解锁程序。前端用于管理账号,支持添加多个账号,并提供展示账号……
<<上一篇
下一篇>>