Docker 部署 AssppWeb 服务,基于 Web 的 Apple 应用下载和许可证管理界面。

Dejavu Moe 2026-02-25 15:34 1

Docker 部署 AssppWeb 步骤:



mkdir assppweb && cd $_
vim compose.yml

写入:


services:
asspp:
image: ghcr.io/lakr233/assppweb:latest
container_name: asspp
restart: unless-stopped
ports:
- "127.0.0.1:8080:8080"
volumes:
- ./data:/data
environment:
- DATA_DIR=/data
- PORT=8080

启动 AssppWeb 服务


sudo docker compose up -d

Nginx 虚拟主机配置:



将 asspp.your.domain 替换为你的实际访问域名



server {
listen 80;
listen [::]:80;
server_name asspp.your.domain;
return 301 https://$host$request_uri;
}

server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
server_name asspp.your.domain;

# 替换 SSL 证书路径
ssl_certificate /etc/nginx/cert/asspp.your.domain;
ssl_certificate_key /etc/nginx/cert/asspp.your.domain;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ecdh_curve X25519:P-256:P-384;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:ECDHE+AES128:RSA+AES128:ECDHE+AES256:RSA+AES256';
ssl_prefer_server_ciphers off;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

access_log /var/log/nginx/asspp.your.domain.access.log;
error_log /var/log/nginx/asspp.your.domain.error.log;

add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always;
add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline' 'unsafe-eval' 'wasm-unsafe-eval'" always;

location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
proxy_send_timeout 86400;
}
}

重载 Nginx 配置


sudo ngin -t && sudo nginx -s reload

访问 asspp.your.domain (你的域名)即可











愉快使用吧

最新回复 (19)
  • Dejavu Moe 楼主 02-25 15:53
    1

    除了管理多个 Apple ID,还能获取历史版本,非常棒

  • 大帅哥 02-25 15:55
    2

    感谢大佬

  • Dejavu Moe 楼主 02-25 16:33
    3

    这个无论是项目作者的倡议,还是项目本身,你都不应当公开自己的实例。


    因为这个会在你服务器下载 IPA,搜索、登录、下载都会请求 App Store 服务器,如果有人恶意刷的话可能会导致服务器 IP 进黑名单。


    一大堆人使用你的服务器 IP 登录一堆不同的 Apple ID,也可能会导致连坐风险。


    如何防范?


    使用 Cloudflare Zero Trust 应用?


    不,这可能导致有些请求未携带 Cookie 导致被 Cloudflare 拦截请求。


    请优先考虑使用 Cloudflare WAF 规则,将你的 IP 添加到自己的 IP 列表(自己搭建的节点一般是固定 IP 吧)


  • figozhu 02-26 09:23
    4

    手机登录的是美区账号

    assppweb网页里登录了国区账号

    下载国区app,安装到手机后,打开闪退(腾讯的元宝)


    是需要手机上也登录国区账号???

  • xysec 03-23 16:21
    5

    手机下载后安装成功,app闪退,是怎么回事呀

  • 少发帖,少被举报 03-31 23:01
    6

    安装失败啊,我看教程是不是要弄信任证书啥的? 卡在这里了

  • Dejavu Moe 楼主 03-31 23:19
    7

    不,无需证书。如果你直接在面板上下载好 iPA 后点击安装,安装失败的话,很可能是你的反向代理没启用 WebSocket 支持

  • 少发帖,少被举报 03-31 23:37
    8

    我宝塔里面是开着的呀;

  • Dejavu Moe 楼主 03-31 23:42
    9

    宝塔这种图形界面我们不清楚它底层的 Nginx 虚拟主机配置怎么写的,文中给了一个示例:



    server {
    listen 80;
    listen [::]:80;
    server_name asspp.your.domain;
    return 301 https://$host$request_uri;
    }

    server {
    listen 443 ssl;
    listen [::]:443 ssl;
    http2 on;
    server_name asspp.your.domain;

    # 替换 SSL 证书路径
    ssl_certificate /etc/nginx/cert/asspp.your.domain;
    ssl_certificate_key /etc/nginx/cert/asspp.your.domain;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ecdh_curve X25519:P-256:P-384;
    ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:ECDHE+AES128:RSA+AES128:ECDHE+AES256:RSA+AES256';
    ssl_prefer_server_ciphers off;
    ssl_session_timeout 1d;
    ssl_session_cache shared:MozSSL:10m;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

    access_log /var/log/nginx/asspp.your.domain.access.log;
    error_log /var/log/nginx/asspp.your.domain.error.log;

    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-XSS-Protection "1; mode=block" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header Referrer-Policy "no-referrer-when-downgrade" always;
    add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline' 'unsafe-eval' 'wasm-unsafe-eval'" always;

    location / {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_read_timeout 86400;
    proxy_send_timeout 86400;
    }
    }


    你也可以打开宝塔文件管理器,检查一下Nginx虚拟主机配置

  • 少发帖,少被举报 04-01 00:19
    10

    成功了 谢谢佬

  • tofo 04-22 11:03
    11

    佬遇到更新的时候,需要将原应用删除后重新安装吗?

    有没有更优雅的方式?

  • Dejavu Moe 楼主 04-22 19:00
    12

    不用删除,直接正常更新就行了。因为我自己日常两个Apple ID,一个登录 iCloud,有时候下载 App 要切换另一个 ID,有了这个就不用切换了,App Store 两个 ID 下载的 App可以直接更新,几乎没有再输入过账号密码。

  • 安安 04-22 19:16
    13

    现在各种部署我现在都是把项目的地址直接给到codex或者其他,让AI来干,只要开好 SSH 就可以了,AI现在干的比我好,大家也可以试试(生产环境,有重要资料的请慎重哦)

  • tofo 04-22 21:53
    14

    比如说我用AssppWeb下载的「抖省省」,在App Store中没有更新提示,但在AssppWeb提示更新;

    接着,我在AssppWeb中更新后,点击「在设备上安装」,弹窗提示「抖省省已经安装」,必须删除以后才可以安装

  • Paspar 05-21 21:06
    15



    Invalid plist: root element is not

    最近有人登陆Apple ID的时候遇到这样的问题嘛?会不会是苹果改登陆流程了?

    作者仓库没开issue,都不知道去哪儿反馈和找解决方案(;′⌒`)

  • cloudflare 05-21 21:24
    16

    这个东西有什么用啊?可以把apple Store 的应用商店装成网页版使用?

  • 少发帖,少被举报 05-22 15:39
    17

    可以这样理解。。。


    最主要的是免切换账号下载不同国家的app,也能下载历史低版本的app

  • kingdom908 05-22 15:57
    18

    这样下载的就没办法通过苹果商店更新app了吧

  • dabaobei 06-09 16:46
    19

    手机上用证书下载安装了这个app之后,登不上id,提示response body is empty,佬知道怎么用吗

* 帖子来源Linux.do
返回