|
| 1 | +name: zpan |
| 2 | +services: |
| 3 | + zpan: |
| 4 | + image: ghcr.io/saltbo/zpan:2.7.1 |
| 5 | + deploy: |
| 6 | + resources: |
| 7 | + reservations: |
| 8 | + memory: "256M" |
| 9 | + network_mode: bridge |
| 10 | + ports: |
| 11 | + - target: 8222 |
| 12 | + published: ${WEBUI_PORT:-8222} |
| 13 | + protocol: tcp |
| 14 | + environment: |
| 15 | + PORT: "8222" |
| 16 | + BETTER_AUTH_SECRET: ${BETTER_AUTH_SECRET:-} |
| 17 | + BETTER_AUTH_URL: http://localhost:${WEBUI_PORT:-8222} |
| 18 | + DATABASE_URL: /data/zpan.db |
| 19 | + restart: unless-stopped |
| 20 | + volumes: |
| 21 | + - type: bind |
| 22 | + source: /DATA/AppData/$AppID/data |
| 23 | + target: /data |
| 24 | + healthcheck: |
| 25 | + test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:8222/api/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"] |
| 26 | + interval: 10s |
| 27 | + timeout: 3s |
| 28 | + retries: 12 |
| 29 | + start_period: 20s |
| 30 | + x-casaos: |
| 31 | + envs: |
| 32 | + - container: BETTER_AUTH_SECRET |
| 33 | + description: |
| 34 | + en_us: Optional Better Auth secret. Leave empty to let ZPan generate one. |
| 35 | + zh_cn: 可选 Better Auth 密钥。留空时由 ZPan 自动生成。 |
| 36 | + - container: BETTER_AUTH_URL |
| 37 | + description: |
| 38 | + en_us: Public URL used by ZPan authentication callbacks. |
| 39 | + zh_cn: ZPan 认证回调用的公开访问地址。 |
| 40 | + ports: |
| 41 | + - container: "8222" |
| 42 | + description: |
| 43 | + en_us: WebUI HTTP Port |
| 44 | + zh_cn: WebUI HTTP 端口 |
| 45 | + volumes: |
| 46 | + - container: /data |
| 47 | + description: |
| 48 | + en_us: ZPan database and application data. |
| 49 | + zh_cn: ZPan 数据库和应用数据。 |
| 50 | + container_name: zpan |
| 51 | + |
| 52 | + zpan-downloader: |
| 53 | + image: ghcr.io/saltbo/zpan:2.7.1-cli |
| 54 | + deploy: |
| 55 | + resources: |
| 56 | + reservations: |
| 57 | + memory: "128M" |
| 58 | + network_mode: bridge |
| 59 | + hostname: zpan-downloader |
| 60 | + command: ["--config", "/data/config.yaml", "downloader", "up"] |
| 61 | + ports: |
| 62 | + - target: 6881 |
| 63 | + published: "6881" |
| 64 | + protocol: tcp |
| 65 | + - target: 6881 |
| 66 | + published: "6881" |
| 67 | + protocol: udp |
| 68 | + environment: |
| 69 | + ZPAN_SERVER_URL: http://zpan:8222 |
| 70 | + ZPAN_DOWNLOADER_ENGINE: auto |
| 71 | + ZPAN_DOWNLOADER_DOWNLOAD_DIR: /data/downloads |
| 72 | + ZPAN_DOWNLOADER_STATE_DIR: /data/state |
| 73 | + ZPAN_DOWNLOADER_BT_LISTEN_PORT: "6881" |
| 74 | + ZPAN_DOWNLOADER_SEED_CACHE_LIMIT: 10GB |
| 75 | + restart: unless-stopped |
| 76 | + volumes: |
| 77 | + - type: bind |
| 78 | + source: /DATA/AppData/$AppID/downloader |
| 79 | + target: /data |
| 80 | + depends_on: |
| 81 | + zpan: |
| 82 | + condition: service_healthy |
| 83 | + x-casaos: |
| 84 | + envs: |
| 85 | + - container: ZPAN_SERVER_URL |
| 86 | + description: |
| 87 | + en_us: Internal ZPan server URL used by the downloader worker. |
| 88 | + zh_cn: 下载器连接 ZPan 主服务使用的内部地址。 |
| 89 | + - container: ZPAN_DOWNLOADER_ENGINE |
| 90 | + description: |
| 91 | + en_us: Downloader engine. Keep auto unless you need to force aria2 or qbittorrent. |
| 92 | + zh_cn: 下载器引擎。通常保持 auto,除非需要强制使用 aria2 或 qbittorrent。 |
| 93 | + - container: ZPAN_DOWNLOADER_SEED_CACHE_LIMIT |
| 94 | + description: |
| 95 | + en_us: Maximum cache size kept for seeding torrent downloads. |
| 96 | + zh_cn: BT 下载做种缓存的最大保留空间。 |
| 97 | + ports: |
| 98 | + - container: "6881" |
| 99 | + description: |
| 100 | + en_us: BitTorrent listen port (TCP) |
| 101 | + zh_cn: BitTorrent 监听端口(TCP) |
| 102 | + - container: "6881" |
| 103 | + description: |
| 104 | + en_us: BitTorrent listen port (UDP) |
| 105 | + zh_cn: BitTorrent 监听端口(UDP) |
| 106 | + protocol: udp |
| 107 | + volumes: |
| 108 | + - container: /data |
| 109 | + description: |
| 110 | + en_us: Downloader configuration, state, cache, and temporary files. |
| 111 | + zh_cn: 下载器配置、状态、缓存和临时文件。 |
| 112 | + container_name: zpan-downloader |
| 113 | + |
| 114 | +x-casaos: |
| 115 | + architectures: |
| 116 | + - amd64 |
| 117 | + - arm64 |
| 118 | + main: zpan |
| 119 | + author: saltbo |
| 120 | + category: Cloud |
| 121 | + description: |
| 122 | + en_US: | |
| 123 | + ZPan is a lightweight file hosting platform built on top of S3-compatible storage. Clients upload directly to object storage through presigned URLs, so the application server does not sit in the file transfer path. |
| 124 | +
|
| 125 | + Use it as an S3-backed web drive, image host, file sharing portal, personal homepage, or WebDAV-accessible file service. ZPan also includes deployable downloader workers for remote-download workflows; the downloader can run next to the main service or separately in an environment with better network access. |
| 126 | + zh_CN: | |
| 127 | + ZPan 是一个基于 S3 兼容对象存储的轻量文件托管平台。客户端通过预签名 URL 直接上传到对象存储,应用服务不会成为文件传输链路中的带宽瓶颈。 |
| 128 | +
|
| 129 | + 你可以把它用作 S3 网盘、图床、文件分享站、个人主页或支持 WebDAV 的文件服务。ZPan 还包含可独立部署的下载器 worker,适合远程下载场景;下载器可以和主服务一起运行,也可以部署在网络条件更好的独立环境中。 |
| 130 | + developer: saltbo |
| 131 | + icon: https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/ZPan/icon.png |
| 132 | + port_map: ${WEBUI_PORT:-8222} |
| 133 | + scheme: http |
| 134 | + tagline: |
| 135 | + en_US: Open-source file hosting for your S3-compatible storage. |
| 136 | + zh_CN: 面向 S3 兼容存储的开源文件托管平台。 |
| 137 | + title: |
| 138 | + en_us: ZPan |
| 139 | + zh_cn: ZPan |
| 140 | + version: "2.7.1" |
| 141 | + updateAt: "2026-06-07" |
| 142 | + releaseNotes: |
| 143 | + en_US: |- |
| 144 | + - Adds ZPan with the main web service and a deployable downloader worker. |
| 145 | + - Uses pinned GHCR images instead of latest tags. |
| 146 | + zh_CN: |- |
| 147 | + - 新增 ZPan 主服务和可部署的下载器 worker。 |
| 148 | + - 使用固定版本的 GHCR 镜像,不使用 latest 标签。 |
0 commit comments