Sign inSign up

longmeidao/peach

By longmeidao

•Updated about 14 hours ago

Peach 自托管影片馆藏:本地硬盘与 CloudDrive2 网盘,适用于 VPS / NAS。

Image
Content management system
0

2.6K

longmeidao/peach repository overview

Peach

⁠Peach 蜜桃

给自己用的私人影片馆藏:本地硬盘、网盘和关注的创作者,放在一个地方看。

官网⁠ · 在线演示⁠ · 源码与 README⁠ · Docker 部署文档⁠ · 问题反馈⁠

18+ 仅供成年人管理自己的成人内容馆藏。镜像不含媒体、馆藏数据或站点账号;连接外部站点时使用部署者自己的账号和访问权。

⁠能做什么

  • 已有资料直接用:读取视频旁的 NFO、海报和已有元数据,扫描只读,媒体文件留在原处。
  • 本地与网盘统一浏览:CloudDrive2 挂载的 115、PikPak 与本地媒体进入同一馆藏。
  • 浏览与播放:搜索、筛选、封面播放墙、版本与分卷、播放进度、收藏和播放列表。
  • 资料与关注:人物资料、厂牌、高清封面,以及创作者跨站关注和新作订阅。
  • 自己的数据自己保存:观看记录、收藏和设置保存在自托管机器的数据卷中。
  • 多端访问:电脑、平板、手机均通过浏览器访问。

Peach 首页

完整功能、更多截图和 Windows / macOS 使用方式见 项目 README⁠。

⁠镜像与标签

项目说明
镜像longmeidao/peach
edge主线候选;每次主线构建验收通过后更新
版本号标签对应发布提交,发布后可在 Tags 查看
已验收平台linux/amd64
ARM NAS尚未验收
运行身份UID/GID 1000,非 root
容器端口8900/tcp
数据目录/data,必须持久化
媒体目录/media,默认只读挂载

镜像包含 Peach、Web 资源、FFmpeg、FFprobe 和 OpenSSL。它运行 Linux 无桌面服务,适合单人 VPS 或 NAS 部署。

⁠建议部署方式:Docker Compose

以下示例用于 Linux 宿主机,要求 Docker Engine 和 Docker Compose。先准备可读的媒体目录;使用 CloudDrive2 时,先完成网盘绑定和宿主机挂载。

在一个独立目录保存以下 compose.yaml。媒体目录必须已存在,UID 1000 需要读取权限。

services:
  peach:
    image: longmeidao/peach:${PEACH_VERSION:-edge}
    init: true
    restart: unless-stopped
    stop_grace_period: 75s
    ports:
      - "${PEACH_BIND:-127.0.0.1}:${PEACH_PORT:-8900}:8900"
    volumes:
      - peach-data:/data
      - type: bind
        source: ${PEACH_MEDIA_ROOT:?请在 .env 中指定已存在的媒体目录}
        target: /media
        read_only: true
        bind:
          propagation: rslave
          create_host_path: false

volumes:
  peach-data:

在同一目录保存 .env,把媒体路径替换为宿主机上的实际绝对路径。默认只绑定宿主机回环地址。

PEACH_MEDIA_ROOT=/absolute/path/to/media
PEACH_BIND=127.0.0.1
PEACH_PORT=8900

在该目录拉取镜像:

docker compose pull

启动服务:

docker compose up -d

取得首次登录口令;该命令会显示私有口令,只在自己的终端查看:

docker compose exec peach peach token

在宿主机浏览器打开 http://127.0.0.1:8900,或通过私有 VPN / SSH 隧道访问。登录后设置访问密码,在配置页添加容器内的媒体路径,例如 /media/115。115 的声明根使用 B:\,PikPak 使用 A:\;填写方式见 Docker 部署文档⁠。

容器内端口固定为 8900,宿主机端口由 PEACH_PORT 设置。需要局域网访问时,将 PEACH_BIND 设为宿主机的局域网地址,并设置访问密码。配置管理接受经过鉴权的回环或私有网络连接,带转发头的管理请求会被拒绝。公网访问边界见 安全说明⁠。

⁠CloudDrive2 与 NAS

CloudDrive2 与 Peach 分别运行,Peach 镜像不包含 CloudDrive2。NAS 上已有 CloudDrive2 时可直接复用;安装方式见 CloudDrive2 官方 Docker 指南⁠。

宿主机需要支持 FUSE,CloudDrive2 的挂载目录需要共享传播。Peach 使用只读媒体挂载与 rslave 接收挂载,不需要特权容器。需要云下载或推送发现时,CloudDrive2 API 地址填写同一容器网络的服务名或可达宿主机地址;Peach 容器中的 127.0.0.1 仅指向 Peach 自己。

⁠数据、更新与范围

  • /data 保存配置、SQLite 账本、凭据和图片缓存。更新镜像时保留 peach-data 卷,不要使用 docker compose down -v 删除它。
  • 空数据卷会自动初始化。已有配置不会被覆盖;只有账本而没有配置时,服务会拒绝启动。
  • 使用已有数据前,先做完整备份并确保 UID 1000 可写;不要让两个 Peach 实例同时写同一份账本。
  • 入口不会自动迁移已有账本。有待执行迁移时,先备份,再按 运行与配置⁠ 处理。
  • 扫描和播放使用只读媒体挂载。整理、移动和删除需要部署者明确提供可写挂载。
  • Linux 容器不读取用户电脑的浏览历史,也不包含交互式浏览器;依赖本机浏览器验证的来源在此环境不可用。
  • Docker 镜像是单人自托管应用,不提供多人账号或租户隔离。

⁠Docker 验证

已在独立 Docker Engine 和 GitHub Actions 的 Linux 容器中,以正式锁定依赖、临时数据卷和合成视频完成以下实际验收:非 root、服务就绪、鉴权、配置保存、视频扫描、HTTP Range、配置重载、容器重启、数据持久化。

每次自动发布先运行 容器验收脚本⁠,通过后才上传镜像。查看 Docker 工作流⁠。健康检查使用 /healthz?ready=1。

ARM、真实 CloudDrive2 账号与网盘流量、VPS / NAS 实机挂载尚未验收;这些需要在目标机器验证。

⁠项目资料

Tag summary

Content type

Image

Digest

sha256:6abfc05de…

Size

249.2 MB

Last updated

about 14 hours ago

docker pull longmeidao/peach:edge