
在 iOS 生态中,想要安装 App Store 之外的应用(侧载),往往面临着信任证书过期、个人开发者账号昂贵、或使用不可信的第三方企业证书等风险。
AssppWeb是一个基于 Web 的工具,允许你通过自己的 Apple ID 直接获取、编译并安装 IPA 文件。更关键的是,它采用了零信任架构,确保你的 Apple ID 凭证永远只停留在本地浏览器中,服务器无法窥探。

本文将深入解析 AssppWeb 的安全原理,并提供从 Cloudflare、Railway 到本地 Docker 的全流程自托管部署指南。
核心原理:什么是“零信任”架构?
AssppWeb 与传统侧载工具的最大区别在于其数据流向。
在传统模式下,你通常需要将 Apple ID 和密码输入到某个服务器端,由服务器去请求 Apple 接口。这意味着你的凭证完全暴露给服务提供者。
而在 AssppWeb 中:
- 本地加密通信:所有与 Apple API 的交互(登录、搜索、获取许可证)都通过 WebAssembly(使用集成了 Mbed TLS 1.3 的
libcurl.js)直接在你的浏览器内完成。 - 盲中继模式:后端服务器仅仅充当一个“盲 TCP 中继”(基于 Wisp 协议)。它负责转发加密的数据包,但无法解密,因此永远看不到你的 Apple ID 或密码。
- 仅处理编译:服务器的唯一任务是下载公共 CDN 上的 IPA 源文件,进行必要的重签名编译,然后提供下载链接。
⚠️ 重要安全警示:
尽管架构本身是零信任的,但前端代码是由服务器下发的。如果你使用不明来源的公共实例,恶意运营者可以修改前端 JavaScript 代码,在数据加密前窃取你的凭证。
- 结论:没有官方公共实例。为了绝对安全,请务必自行托管,或仅使用你完全信任的合作伙伴提供的实例。始终检查 SSL 证书,确保连接的是真实端点。
部署方案一:Cloudflare Workers + Containers(高性能推荐)
利用 Cloudflare 的全球边缘网络,可以获得极快的下载速度和稳定性。
前置要求:
- Cloudflare Workers 付费计划(免费计划不支持 Containers 功能)。
- 具备以下权限的部署令牌:Workers 脚本编辑、Containers 编辑、Cloudchamber 编辑。
部署步骤:
- 使用已发布的镜像:
ghcr.io/lakr233/assppweb:latest。 - 在 Cloudflare Dashboard 中创建新的 Worker,选择“容器”类型。
- 配置构建令牌。如果日志在“部署容器应用”步骤报错“未经授权”,请检查令牌是否缺少 Containers/Cloudchamber 权限。
此方案优势在于无需维护服务器,且天然具备 DDoS 防护能力。
部署方案二:Railway(简单易用,适合个人)
Railway 提供了极简的容器部署体验,适合快速搭建个人服务。
操作步骤:
- 创建服务:访问
railway.com/new/image,输入镜像地址ghcr.io/lakr233/assppweb:latest。 - 健康检查:在服务“设置”中,将健康检查路径设为
/api/settings。 - 数据持久化:右键服务 -> “附加卷”,挂载路径设为
/data。 - 环境变量:在“变量”中添加
DATA_DIR=/data。 - 网络配置:在“设置” -> “网络”中生成公共域名。
💡 优化建议:
- 计划选择:免费试用版存在卷过期和网络限制,建议使用 Hobby 计划($5/月)以保证稳定。
- 自动缩容:开启“无服务器”模式,空闲时自动缩容至零以节省费用。
- 自动更新:Railway 会自动拉取
:latest镜像,新版本发布后几小时内自动部署。
⚠️ Cloudflare 集成避坑指南:
如果你通过 Railway 绑定了 Cloudflare 域名:
- 默认生成的 DNS 记录是“代理模式”(橙色云)。
- 必须修改:前往 Cloudflare DNS 设置,将该 CNAME 记录改为 “仅 DNS”(灰色云)。Railway 会自动处理 TLS 证书。
- 若必须开启代理:需将 Cloudflare 的 SSL/TLS 模式设置为 “完全 (Full)”,否则会导致无限重定向循环。
部署方案三:Docker Compose 自托管(完全可控)
适合拥有 VPS、NAS 或本地服务器的用户,数据完全掌握在自己手中。
一键启动:
curl -O https://raw.githubusercontent.com/Lakr233/AssppWeb/main/compose.yml
docker compose up -d
关键环境变量配置:
| 变量 | 说明 | 推荐设置 |
|---|---|---|
PORT | 监听端口 | 8080 |
DATA_DIR | IPA 缓存目录 | ./data (需映射卷) |
PUBLIC_BASE_URL | 对外访问地址 | https://asspp.yourdomain.com |
AUTO_CLEANUP_DAYS | 缓存自动清理天数 | 7 (防止磁盘爆满) |
MAX_DOWNLOAD_MB | 最大下载限制 | 500 (防止内存溢出) |
🚨 关键配置:反向代理与 HTTPS
iOS 的 itms-services:// 协议强制要求安装链接必须是 HTTPS。因此,你不能直接暴露 8080 端口,必须前置一个反向代理(如 Nginx, Caddy, Traefik)。
Caddy 配置示例(推荐,自动 HTTPS):
asspp.example.com {
reverse_proxy 127.0.0.1:8080
}
Nginx 配置注意事项:
- WebSocket 支持:AssppWeb 依赖
/wisp/路径的 WebSocket 连接进行零信任通信。必须在 Nginx 中正确配置Upgrade和Connection头,否则无法连接 Apple 服务器。 - 重定向循环问题:某些代理(如部分 NAS 自带代理)可能错误地发送
X-Forwarded-Proto: http,导致 AssppWeb 认为连接不安全并不断重定向。- 解决方法:确保代理正确传递
X-Forwarded-Proto: https。 - 最后手段:若无法修正代理配置,可设置环境变量
UNSAFE_DANGEROUSLY_DISABLE_HTTPS_REDIRECT=true。注意:此时你必须在外层代理强制开启 HTTPS,否则凭证将明文传输!
- 解决方法:确保代理正确传递
安全加固建议
- DDoS 防护:IPA 文件体积较大(几百 MB),公开实例极易被流量攻击。强烈建议将实例置于 Cloudflare 等 CDN 之后,利用其带宽吸收攻击流量。
- 访问控制:如果可能,通过反向代理添加基本的 HTTP Auth 或 IP 白名单,避免实例被陌生人滥用消耗资源。
- 定期清理:配置
AUTO_CLEANUP_DAYS自动删除旧缓存,既节省空间,也减少潜在的法律风险。
数据统计
相关导航


StoryTribe

enableAppleAI

OutRay

PDF2Audio

ClipSketch AI (剪辑·素描)

Grok prompts







