Sena Repo 客户端使用说明书
Sena Repo 客户端用于连接 Sena Repo 服务端,浏览游戏库、下载并解压游戏、导入 Steam 非 Steam 游戏,以及注入 Steam 汉化补丁。当前支持 Windows、Android 和 Linux。
目录
安装
从 GitHub Releases 下载对应平台的客户端:
| 平台 | 文件 | 说明 |
|---|---|---|
| Windows | .exe 安装包 / .zip 便携版 | 推荐安装版;便携版解压后直接运行 |
| Android | .apk | 需要授予文件访问权限 |
| Linux | .AppImage | 适合桌面 Linux / 掌机系统 |
Windows 和 Linux 客户端内置 7zip-zstd 解压组件。Android 使用应用内下载与解压流程,不显示 Steam 相关功能。
首次启动
客户端首次启动时会弹出免责声明,同意后进入本机设置:
- 游戏下载目录 — 下载的游戏压缩包和解压后文件存放位置
- Steam
steamapps目录 — 用于 Steam 补丁匹配,填写 Steam 库的steamapps文件夹路径 - Steam 用户 ID — Steam 好友代码,也可在 Steam 安装目录
userdata文件夹中找到纯数字目录名
这些设置保存在本设备,不写入服务端。之后可在登录/服务器选择界面右上角的齿轮按钮修改,或在「设置 → 下载设置」中更改。
连接服务器
添加服务器
在服务器选择界面点击「添加服务器」,进入二级界面填写:
- 配置名称
- 服务器地址(IP 或域名)
- 端口(默认
11451) - 是否使用 HTTPS
- 用户名和密码
保存后作为一条服务器配置显示在列表中。每条配置右侧的三点菜单可编辑或删除;编辑服务器地址、协议、用户名或密码后相当于重新登录该配置。
自动登录
客户端启动时会优先尝试自动登录上次使用的服务器配置。启动时会请求 /api/auth/profile/me 检查保存的 token 是否仍然有效:
- token 有效 → 直接进入游戏库
- token 过期或服务端已重置 → 弹出重新登录或初始化流程
- 连接异常 → 弹窗提示连接失败,不会静默失败
退出登录
在「我的」界面点击「退出登录」,回到服务器选择界面。退出只清除当前激活会话,不删除已保存的服务器配置。
首次初始化服务端
连接到未初始化的服务端时,客户端会进入服务端初始化向导:
第零步:选择初始化方式
- 新建服务端 — 走下面的三步向导,从零开始配置
- 导入备份 — 选择
senacli backup导出的.zip(或--json-only导出的.json)上传,服务端会恢复游戏库、补丁规则、账号和封面图片。导入完成后用备份里的账号登录,向导直接结束
第一步:创建管理员 填写首个管理员的用户名和密码。
第二步:配置目录与刮削
- 游戏库目录(可添加多个,支持本地路径或 OpenList 源)
- Steam 补丁库目录
- 批量刮削字段来源配置(封面用哪个源、简介用哪个源等)
- 自动扫描开关与间隔
第三步(可选):本地配置 确认客户端本机的下载目录和 Steam 目录。
初始化完成后,服务端会在后台自动触发首次扫描和刮削。
OpenList 文件源
在第二步配置目录时,游戏库目录和 Steam 补丁库目录都可以选择本地路径或 OpenList 文件源:
- 添加 OpenList 服务器,填写地址、用户名和密码;留空时使用 OpenList 访客模式。
- 填写 OpenList 地址,例如
http://192.168.1.100:5244。如果遗漏协议,服务端会尝试补http://。 - 添加游戏库目录或 Steam 补丁目录时选择该 OpenList 服务器。
- 填写 OpenList 内部路径,例如
/115/Games/GalGame/Library。 - 选择目录结构 / 游戏目录深度。
OpenList 地址必须同时能被 Sena 服务端和客户端设备访问;只在服务端可访问会导致扫描成功但客户端下载失败。服务端侧的部署方式和下载链路见 OpenList 文件源。
游戏库浏览
进入游戏库后:
- 网格/列表视图切换 — 在上方工具栏「筛选与显示方式」面板里切换
- 搜索 — 顶部搜索栏实时过滤
- 排序 — 按导入时间、名称、别名、会社、游玩时长排序
- 筛选 — 按标签、平台筛选;多条件可叠加
- 下拉刷新 — 列表顶部下拉重新加载
游戏详情与下载
点击游戏进入详情页,显示封面、背景图、简介、标签、版本列表。
下载游戏
- 点击版本右侧「下载」按钮
- 下载进度在页面底部/通知栏显示
- 下载完成后弹出操作选项:
- 解压 — 解压到下载目录
- 创建快捷方式(Windows)
- 导入 Steam(Windows/Linux)
- 打开文件夹 — 打开解压目标文件夹
- 如果版本预设了解压密码,解压时自动使用;有密码但解压失败时弹窗提示
取消下载
下载弹窗中点击取消,终止当前下载任务并清理临时文件。
元数据编辑(管理员)
游戏详情页右上角菜单可进入编辑界面:
- 修改名称、别名、会社、简介、发行日期等文字字段
- 修改封面/背景图(上传本地文件或粘贴 URL)
- 按版本修改平台分类(PC / KRKR 等)
- 按版本设置解压密码
- 按版本移动到其他游戏条目
Steam 集成
Steam 集成功能仅在 Windows 和 Linux 上显示。
导入 Steam
下载解压完成后选择「导入 Steam」,客户端会将游戏以非 Steam 游戏的形式添加到 Steam 库,并尝试设置游戏图标。
需要在首次启动时正确填写 Steam steamapps 目录和 Steam 用户 ID。
Steam 补丁注入
Steam 补丁页面分为「补丁注入」和「补丁配置」两个 Tab:前者在客户端执行扫描与注入,后者在服务端维护补丁匹配与类型关键词。
补丁注入 Tab:
- 点击「扫描 Steam 库」,客户端读取本地
steamapps目录并发送游戏列表给服务端 - 服务端根据
patches.json匹配 AppID - 匹配到的游戏会显示可用补丁列表
- 补丁规则已配置时显示「注入」,点击后下载补丁压缩包并解压到对应游戏目录;规则未配置时按钮显示「规则待配置」,需要先在「补丁配置」中配置规则
补丁下载走的是签名直链(POST /api/steam/patches/{key}/link 取一次带时效的 URL),因此和游戏下载共用同一条管线:优先交给内置 aria2 多连接下载,失败再退回分片/流式;网盘上的补丁还会按来源类型用浏览器 UA 和分片降级重试。链接过期时客户端会自动换一条新的继续下。
补丁配置 Tab(管理员):
- 查看和编辑
patches.json中的补丁条目 - 手动触发补丁扫描
- 通过右上角「关键词匹配」编辑类型识别关键词
- 每行右侧可以锁定元数据:锁上后自动扫描与「重新刮削 AppID」都不会改动这条的 AppID、游戏名、标签、类型与注入规则(文件大小、来源路径这类文件事实仍会随扫描更新),再点一次解锁
设置
进入「我的 → 设置」:
扫描设置(管理员)
- 查看和管理游戏库根目录
- 手动触发扫描
- 开关自动扫描、设置扫描间隔
- 调整目录结构(会社/游戏、仅游戏、扁平)
- 清空游戏库并重新扫描
- 管理 OpenList 服务器
刮削设置(管理员)
- 配置 Bangumi / VNDB API Token
- 配置代理
- 设置批量自动刮削的字段来源规则
下载设置
- 最大同时下载数(最高 10)
- 下载目录
- 下载限速(KB/s,0 为不限速)
- 快捷方式保存位置(Windows)
备份与恢复(管理员)
「设置 → 服务端 → 备份与恢复」:
- 导出备份 — 先选备份范围:仅游戏库(游戏、版本、标签、账号)、仅补丁(匹配规则 + 类型关键词)或两个都备份;选游戏库时可以勾选是否包含封面/背景/头像。生成后出现在下面的列表里,文件名里带范围标识(例如
…-patch-….json) - 备份列表 — 显示服务端上已有的备份:文件名、大小、时间、是否含图片;每行可以「下载」(桌面端选保存位置,手机端存到应用目录并提示路径)或「删除」
- 导入备份 — 选择 zip/JSON 上传,导入前先选:恢复范围(全部 / 仅补丁规则 / 仅游戏库与账号)、已存在条目怎么处理(合并更新 / 清空重建)、同名图片怎么处理(跳过 / 覆盖);导入完成后弹出各项统计
备份文件里有账号密码哈希与解压密码,请妥善保管。
显示设置
- 封面大小
- 外观偏好
- 主题色
客户端本地设置
登录/服务器选择界面右上角齿轮按钮,可修改:
- 游戏下载目录
- Steam
steamapps目录 - Steam 用户 ID
用户与通知
注册
在登录界面点击注册,提交后需等待管理员审批方可登录。
管理员审批
管理员可在:
- 通知页审批注册请求
- 「设置 → 用户管理」中审批或拒绝用户、授予或撤销管理员权限
审批完成后对应通知自动标记已读。
Linux 触屏
Linux AppImage 针对 Wayland、X11、Gamescope、Bazzite 等环境做了触屏兼容处理,启动时自动优先 GDK_BACKEND=wayland,x11。
用终端启动可查看触屏诊断日志:
./Sena-Repo_Linux_v*.AppImage 2>&1 | tee sena-touch.log正常情况下触摸屏幕会输出:
Sena Linux touch event: begin x=... y=...
Sena Linux touch event: update x=... y=...如果有日志但界面无响应,请反馈日志中的 backend 和 widget 字段。
排障
点击服务器无反应
检查:
- 服务器地址和端口是否填写正确
- 是否选择了正确的 HTTP/HTTPS 协议
- 服务端
/api/health是否可访问 - token 是否过期,必要时从服务器配置菜单重新登录
下载报 401
保存的登录 token 已失效。回到服务器选择界面,点击对应配置重新登录。
OpenList 下载卡住
查看客户端日志中的 download request / download redirect 序列,判断卡在哪一跳:
- 卡在第一跳:客户端到 Sena 服务端不通
- 卡在第二跳:客户端访问不了 OpenList 地址(OpenList 地址必须客户端可访问)
- 卡在第三跳:CDN 对当前网络有限制
Android 安装 APK 失败
报错类似 Failed to find configured root that contains .../xxx.apk,通常是安装来源路径不在应用可共享目录下。将下载目录设置到 Android 公共下载文件夹并确认已授予文件访问权限。