Skip to content

应用商店 & 服务凭据

服务器工作台的「应用商店」里一键安装常用软件(对标 1Panel 应用商店);装好的服务,其连接凭据由 Reeve 自动加密入库成「服务凭据」——AI 全程拿不到密码

应用商店

工作台应用商店 标签,三个视图分段切换:

视图内容
全部可装应用目录(分类 chips + 搜索),点卡片看详情,一键安装
已安装(N)本机已装应用,卡片化启停 / 重启 / 日志 / 改参数 / 卸载
可升级(N)当前版本 ≠ 目录推荐版本的应用,一键升级(保数据卷)

Compose 化安装

商店应用以 Docker Compose 栈方式安装:

  • 点安装弹预览 Modal,确认后逐行流式日志显示安装进度(可最小化到右下角 dock)
  • 安装状态以 compose 栈发现为准(栈目录持久,停了也算已装)
  • 引擎 / 宿主类应用(Docker、OpenResty)从宿主状态探测

外部栈纳管

不是通过 Reeve 装的应用也能管:Reeve 发现宿主上已有的 compose 栈和容器,自动纳管进「已安装」,把它们和目录项匹配上(按镜像名),照样能启停 / 看日志 / 升级。

应用图标

应用商店、详情、已装列表统一用 AppLogo 渲染官方 SVG 图标(Docker、Nginx、Grafana、Gitea、PostgreSQL…),找不到时 emoji 兜底,不再是散落的 emoji。

密码自动生成入库

商店应用装好后(如 MySQL / Redis / 1Panel),密码由后端生成 + 加密入库,前端和 AI 永远看不到明文——这就是下面的「服务凭据」。

服务凭据

「服务凭据」= AI 用 install_with_secret 一键装服务后自动入库的凭据(1Panel / Portainer / MySQL / Postgres / Redis 等),也可以手动新建。

进入:主界面左侧导航 → 服务凭据

列表

每条凭据显示:

字段示例
服务类型1Panel / MySQL / Portainer
服务器关联的服务器别名
字段组URL / Host / Port / Username / Password 等
创建时间
来源AI 自动装 / 手动

一键装服务 = AI 拿不到密码

当 AI 调 install_with_secret(template="mysql", params={...})

  1. AI 看到:模板 + 参数(不含密码字段)
  2. Reeve 后端:随机生成强密码(密码学安全 RNG)
  3. 远端:用密码运行模板(装 MySQL + 初始化 root 密码)
  4. 入库:URL / Host / Port / Username / 生成的密码 AES-256-GCM 加密入 installed_services
  5. AI 拿到的返回vault_id + 部分公开字段(URL / Host / Port)
  6. AI 永远不知道真密码

字段 Reveal(显示明文)

每个字段旁有 🔒 按钮:

  1. 点击 → 二次确认弹窗
  2. AES-GCM 解密 + 显示
  3. 同时复制到剪贴板
  4. 10 秒后剪贴板自动清空
  5. 行为写审计:accessed_at + access_count++

字段优先级:URL / HOST → USERNAME → PASSWORD → PORT → 其它。

手动新建 DB 凭据

右上 新建(仅支持 DB 类型,其它由 AI 装):

字段示例
类型MySQL / MariaDB / PostgreSQL / SQLite / SQL Server / MongoDB / ClickHouse / Redis
名称prod-db-master
服务器(可选)关联 服务器
Host / Portlocalhost / 3306
Username / Password输入即加密
数据库mydb(可选)
隧道可选关联 端口转发

关联 Web UI / 快速查询

  • 有 Web UI 的服务(1Panel / Portainer / Grafana)卡片显示 打开 Web UI 按钮
  • SQL 类凭据卡片有 查询 按钮,右侧抽屉直接打开数据库工作台,自动连接

一键转敏感库

凭据右键 → 转敏感库:把凭据当作「已确认敏感」存入敏感库,用于跨客户端协同(敏感库可 CSV 导出,凭据库不直接出)。

删除

二次确认 → 同时删关联隧道 → 加密数据从表清除;审计保留 installed_service_deleted 事件。

安全特性

特性实现
密码加密AES-256-GCM;DEK 在 keyring(可选主密码再包 Argon2 KEK)
Reveal 审计每次解密都写 audit_log;access_count 累加
剪贴板自清复制后 10 秒清空
AI 不可见install_with_secret 只返回 vault_id + 公开字段
主密码锁屏锁定时无法 Reveal、无法删除

故障排查

症状排查
Reveal 失败主密码可能锁了,先解锁
复制后剪贴板空已过 10 秒清空,重新 Reveal
应用装一半失败看流式日志定位;国内网络可在 Docker 镜像加速器配镜像源
装的服务凭据格式不对检查 install_with_secret 模板参数

下一步

若依科技工作室 · 承接后台管理 / 桌面软件 / 全栈 / 小程序定制开发 · 技术服务咨询