iOS IPA 自托管私有源 | Esign/AltStore 兼容 | 单容器部署 | TG 自动下载
3.3K
iOS IPA 自托管私有源 | Esign/AltStore 兼容 | 单容器部署 | TG 自动下载
把家里 NAS 变成 iOS 私有签名源,配合 Esign / AltStore 订阅安装 IPA。一个容器、一份 compose、零依赖。
repo.jsonmkdir -p ipaes && cd ipaes
curl -O https://raw.githubusercontent.com/chinahhy/ipaes/main/docker-compose.yml
curl -O https://raw.githubusercontent.com/chinahhy/ipaes/main/.env.example
cp .env.example .env
# 编辑 .env,至少设置 REPO_BASE_URL
docker compose up -d
services:
ipaes:
image: hoya0803/ipaes:${IPAES_TAG:-latest}
container_name: ipaes
restart: unless-stopped
ports:
- "${HOST_PORT_NGINX:-8080}:80"
- "${HOST_PORT_WEBUI:-8085}:8085"
volumes:
- "${IPA_DIR:-./data/ipa}:/data/ipa"
- "${ICONS_DIR:-./data/icons}:/data/icons"
- ./config:/config
- ./session:/session
- ./logs:/logs
- ./data:/data
environment:
- REPO_BASE_URL=${REPO_BASE_URL}
- REPO_NAME=${REPO_NAME:-Private IPA Repo}
- REPO_IDENTIFIER=${REPO_IDENTIFIER:-com.private.ipa.repo}
- TG_PROXY=${TG_PROXY:-}
- "TG_SCAN_CRON=${TG_SCAN_CRON:-0 1 * * *}"
- TG_SCAN_HOURS=${TG_SCAN_HOURS:-25}
- TG_DOWNLOAD_TIMEOUT=${TG_DOWNLOAD_TIMEOUT:-3600}
- TG_MAX_CONCURRENT=${TG_MAX_CONCURRENT:-1}
- TZ=${TZ:-Asia/Shanghai}
| 变量 | 说明 | 默认值 |
|---|---|---|
REPO_BASE_URL | 源的公网 URL | - (必填) |
REPO_NAME | 源名称(Esign 显示) | Private IPA Repo |
REPO_IDENTIFIER | 源 BundleId | com.private.ipa.repo |
TG_PROXY | TG 代理(socks5://host:port) | 空(直连) |
TG_SCAN_CRON | TG 扫描 cron 表达式 | 0 1 * * * |
TG_SCAN_HOURS | 回溯小时数 | 25 |
TG_DOWNLOAD_TIMEOUT | 单个 IPA 下载超时秒数 | 3600 |
TG_MAX_CONCURRENT | 同时下载数 | 1 |
TZ | 容器时区 | Asia/Shanghai |
IPAES_TAG | 镜像标签,可固定稳定版 | latest |
HOST_PORT_NGINX | 订阅源宿主端口 | 8080 |
HOST_PORT_WEBUI | WebUI 宿主端口 | 8085 |
IPA_DIR | IPA 宿主目录 | ./data/ipa |
ICONS_DIR | 图标宿主目录 | ./data/icons |
容器首次启动会自动生成 ./config/config.json 模板,编辑填入:
{
"api_id": 12345678,
"api_hash": "your_api_hash",
"phone": "+8613800138000",
"groups": ["https://t.me/your_group"],
"priority_groups": ["https://t.me/priority_group"],
"whitelist": [
{"name": "App名", "keywords": ["关键词1", "关键词2"]}
],
"rate_limit": {
"min_interval_sec": 30,
"max_interval_sec": 120,
"max_per_day": 50
}
}
docker exec -it ipaes /app/tg-login.sh
按提示输入验证码完成登录,session 持久化到 ./session/。
# 拉取最新镜像并重启
docker compose pull && docker compose up -d
# 手动触发 TG 扫描(不等 cron)
docker exec ipaes /app/run-tg-scan.sh
# 手动重建 repo.json
docker exec ipaes /app/scanner.py
# 查看实时日志
docker logs -f ipaes
tail -f logs/scanner.log
tail -f logs/tg-cron.log
公网用户/iPhone Esign 订阅
↓ HTTPS
[反向代理 nginx/Lucky/Traefik]
↓ HTTP :8080
┌──────────────────────────────┐
│ 容器 ipaes │
│ ├─ nginx (对外服务) │
│ ├─ scanner-watcher (inotify) │
│ └─ cron (TG 定时扫描) │
└──────────────────────────────┘
| Tag | 说明 |
|---|---|
latest | 主分支最新构建(推荐) |
main | 同 latest |
sha-xxxxxxx | 特定 commit 的镜像 |
vX.Y.Z | 语义化版本(如有发布) |
支持架构:linux/amd64、linux/arm64
MIT
Content type
Image
Digest
sha256:bd2bb78d8…
Size
62.4 MB
Last updated
7 days ago
docker pull hoya0803/ipaes