Lap 是一个注重隐私的本地照片管理器,部署方式很灵活:普通用户可以直接下载安装包,开发者则可以从源码构建。

💻 方案一:安装预编译版本(推荐普通用户)

这是最快捷的方式。根据你的操作系统,在 Lap 的 Releases 页面 下载对应的文件即可。

平台 架构 包类型 备注
macOS Apple Silicon / Intel .dmg 已通过 Apple 公证,可直接安装
Windows x64 / ARM64 .msi 未签名,若被 SmartScreen 拦截,点击“仍要保留”即可
Linux x64 / ARM64 .deb / .AppImage .deb 适用于 Debian/Ubuntu 系;.AppImage 需赋予执行权限后运行

macOS 用户额外选择:如果安装了 Homebrew,可以使用以下命令安装:

1
2
brew tap julyx10/lap
brew install --cask lap

🛠️ 方案二:从源码构建(面向开发者)

如果你想体验最新特性或参与开发,可以从源码构建。

1. 环境准备

需要提前安装以下工具:

  • Node.js:20 或更高版本
  • pnpm:包管理器
  • Rust:稳定版工具链
  • Tauri CLI:通过 cargo install tauri-cli --version "^2.0.0" --locked 安装

各平台系统依赖

  • macOS:运行 xcode-select --install,然后通过 Homebrew 安装 nasmpkg-configcmake 等工具。
  • Linux (Debian/Ubuntu):安装 libwebkit2gtk-4.1-devlibappindicator3-devlibrsvg2-devpatchelf 等开发包。
  • Windows:需要安装 Microsoft C++ Build Tools。

2. 克隆仓库与下载依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
# 克隆仓库并初始化子模块
git clone --recursive https://github.com/julyx10/lap.git
cd lap
git submodule update --init --recursive

# 下载 AI 模型和 FFmpeg(脚本会自动处理平台差异)
# macOS / Linux:
./scripts/download_models.sh
./scripts/download_ffmpeg_sidecar.sh

# Windows (PowerShell):
# .\scripts\download_models.ps1
# .\scripts\download_ffmpeg_sidecar.ps1

3. 构建与运行

1
2
3
4
5
6
7
8
# 安装前端依赖
cd src-vite && pnpm install && cd ..

# 以开发模式运行(用于调试)
cargo tauri dev

# 构建生产版本(生成安装包)
cargo tauri build

构建产物会生成在 src-tauri/target/release/bundle/ 目录下。

🔧 部署后故障排查

  • Linux 视频无法播放:Lap 依赖系统的 GStreamer 插件。若在 Ubuntu/Debian 上遇到问题,请安装 sudo apt install gstreamer1.0-libav gstreamer1.0-plugins-good
  • 数据库与配置备份:Lap 的标签、收藏、智能相册等元数据存储在本地 SQLite 数据库中,不会写入原照片文件。建议定期在 设置 → 存储 中备份数据库,以防数据丢失。

希望这份教程能帮你顺利部署 Lap。如果你在具体某个步骤遇到问题,可以告诉我你的操作系统和错误提示,我再帮你进一步排查。

https://github.com/Christ9038/Ydisks-Xianyu-Helper 写一篇详细的部署教程

Ydisks Xianyu Helper 是一个闲鱼多账号管理、自动发货和消息回复系统。它完全自托管,支持通过 Docker 快速部署,也可以从源码运行或安装桌面版。下面这份教程会帮你一步步完成部署。

📋 准备工作

在开始之前,你需要先准备好以下环境:

  • Docker 部署(推荐):需要安装 Docker Engine 或 Docker Desktop,并确保 Docker Compose 版本为 v2。
  • 源码运行:需要 Go 1.26.4 或兼容版本、Node.js 24 和 npm、Chromium 系统依赖(可选 SQLite)。
  • 桌面安装包:直接从 Releases 页面下载对应系统的安装包即可。

重要提醒:根据项目说明,此工具仅供个人学习研究,未获得闲鱼官方授权。使用时请务必遵守平台规则和法律法规,并自行承担相关风险。

🐳 方案一:使用 Docker Compose 部署(推荐)

这是最快捷、最稳定的方式,支持 Linux x86_64、Linux ARM64 和 Apple Silicon。

1. 克隆项目并配置环境变量

1
2
3
git clone https://github.com/Christ9038/Ydisks-Xianyu-Helper.git
cd Ydisks-Xianyu-Helper
cp .env.example .env

2. 编辑 .env 文件
你至少需要设置以下变量,请务必修改为强密码和随机密钥:

1
2
3
4
5
6
POSTGRES_DB=xianyu
POSTGRES_USER=xianyu
POSTGRES_PASSWORD=替换为强密码
DATABASE_URL=postgres://xianyu:url编码后的密码@postgres:5432/xianyu?sslmode=disable
XIANYU_DATA_KEY=替换为长期随机密钥
XIANYU_ADMIN_PASSWORD=替换为管理员密码

你可以用以下命令生成随机值:

1
2
openssl rand -hex 24
openssl rand -base64 48

注意:如果密码包含 @:/# 等特殊字符,在 DATABASE_URL 中需要进行 URL 编码。

3. 启动应用

1
docker compose up -d

4. 访问控制台
在浏览器中打开 http://localhost:59188,使用你在 .env 中配置的管理员密码登录。

5. 升级与备份
升级前请务必备份数据库和 .env 文件。更新时执行:

1
2
docker compose pull app
docker compose up -d

PostgreSQL 备份命令:

1
2
3
4
5
set -a
. ./.env
set +a
docker compose exec -T postgres pg_dump -U "$POSTGRES_USER" -d "$POSTGRES_DB" \
> "xianyu-$(date +%Y%m%d-%H%M%S).sql"

警告:不要在生产环境使用 docker compose down -v,因为这会删除数据库和应用程序数据卷。

🛠️ 方案二:从源码运行(适合开发调试)

1. 克隆仓库并安装依赖

1
2
3
4
git clone https://github.com/Christ9038/Ydisks-Xianyu-Helper.git
cd Ydisks-Xianyu-Helper
npm --prefix frontend ci
npm --prefix frontend run build

2. 启动服务

1
go run ./cmd/server -db data/xianyu_data.db -addr 127.0.0.1:59188

首次访问时,如果数据库中没有管理员,页面会显示初始化表单,让你设置管理员密码。
对于无头环境或需要重置密码的情况,可以使用以下命令:

1
go run ./cmd/server -init-admin -db data/xianyu_data.db -admin-password '替换为强密码'

提示:前端资源在构建时通过 go:embed 嵌入,重新构建前端后需要重启 Go 服务。

💻 方案三:桌面安装包

如果你不想管理服务器,可以直接从 Releases 页面下载对应系统的安装包。安装包内含后端服务 xianyu-server 和 Chromium,以及用于控制的托盘程序。

平台 服务 控制器 数据和日志位置
Windows Windows 服务 xianyu-tray.exe C:\ProgramData\YdisksXianyuHelper
macOS LaunchAgent 菜单栏程序 ~/Library/Application Support/YdisksXianyuHelper~/Library/Logs/YdisksXianyuHelper
Linux systemd 服务 无桌面托盘 /var/lib/ydisks-xianyu-helper/var/log/ydisks-xianyu-helper

桌面版首次运行地址为 http://127.0.0.1:59188,在网页中设置并确认管理员密码即可。

⚙️ 关键配置说明

数据库连接优先级DATABASE_URL > -db-url > -db

重要环境变量

变量 默认值 说明
DATABASE_URL SQLite、MySQL 或 PostgreSQL 连接 URL
XIANYU_DATA_KEY 用于加密 Cookies、密码、令牌等敏感信息的长期密钥
XIANYU_ADMIN_PASSWORD Docker Compose 非交互式管理员初始化密码
XIANYU_UPLOAD_DIR data/uploads 批量上架的上传和临时资源目录
LOG_LEVEL info 日志级别:debuginfowarnerror
BROWSER_HEADLESS 每账号配置;Docker 中为 true 强制启用或禁用无头 Chromium

更完整的配置项和命令行选项,可以参考项目的 Deployment and Database Wiki

🚀 首次使用流程

  1. 以管理员身份登录。
  2. 账号管理 中,使用闲鱼 App 扫描二维码登录。
  3. 仅通过官方流程完成人脸或安全验证。
  4. 等待账号上线后,同步商品和订单。
  5. 卡券库存 中创建发货内容。
  6. 自动化 中关联商品、卡券、规格和触发器。
  7. 使用 聊天 功能查看历史记录,并测试文本、表情或图片消息。
  8. 账号管理 中配置自动评价和每日刷新。
  9. 根据需要配置关键词回复、默认回复、AI 回复和通知。

注意:Go 客户端目前仅支持二维码登录。请勿分享 Cookies、密码、二维码或验证链接。

🔧 故障排查

  • 管理员初始化失败:打开管理页面,如果没有管理员,设置一个至少8位字符的密码。Docker Compose 要求 XIANYU_ADMIN_PASSWORD 非空。
  • PostgreSQL 连接问题:确认 POSTGRES_DBPOSTGRES_USERPOSTGRES_PASSWORDDATABASE_URL 匹配。Compose 中的主机名是 postgres,不是 localhost。密码中的特殊字符需要 URL 编码。
  • Chromium 或 Playwright 问题:优先使用项目镜像或独立安装包,它们包含匹配的驱动和 Chromium 运行时。源码运行需要权限下载驱动和浏览器。
  • 账号离线或安全验证:检查账号管理状态和续期日志,在闲鱼 App 中完成官方验证,并检查服务器时间、时区和网络。不要在同一实例中运行同一账号的多个副本。
  • 丢失 XIANYU_DATA_KEY:这是预期的安全行为。请恢复原始密钥。如果无法恢复,需要重新登录并重新输入受保护的密钥。不要清空生产数据库或绕过解密检查。

🔒 安全建议

  • 通过 HTTPS 暴露管理控制台,并限制可信来源。
  • 为管理员、数据库、GHCR、AI、SMTP 和通知服务使用独立的强凭据。
  • 保持 XIANYU_DATA_KEY 不变,并与数据库一起离线备份。
  • 切勿提交 .env、数据库文件、Cookies、二维码、日志、浏览器数据、API 密钥或 Webhook 令牌。
  • 定期备份 PostgreSQL 并测试恢复流程。
  • 在生产环境使用版本或 SHA 镜像标签。
  • 当账号行为异常时,停止该账号并检查审计和续期日志。