feat: add wallet types, image upload, backup tabs, and manage.sh

Add mnemonic/key credentials with image upload, tabbed UI for add/query
and settings (auth/types/backup), daily backup to /root, and interactive
deploy script that updates via git pull only.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-07-17 20:35:24 +08:00
parent 703fd912f8
commit 3e52b8eb87
11 changed files with 1081 additions and 421 deletions
+52 -78
View File
@@ -9,6 +9,7 @@
**crypto_key** 是一款在浏览器中使用的本地/局域网凭证管理工具,用于集中保存:
- 交易所 APIBinance、OKX、Gate
- **钱包助记词**、**钱包密钥**(支持图片附件)
- 网站账号(可点击打开网址)
- 邮箱账户(可点击发邮件或打开网页登录)
- 企业微信 / 钉钉机器人 Webhook
@@ -31,7 +32,7 @@
3. 首次部署时,若未配置 `.env`,系统可能自动生成默认账号:
- 用户名:`admin`
- 密码:`admin123`
4. **登录后请立即进入「系统设置」修改用户名和密码**
4. **登录后请立即进入「系统设置 → 账户密码」修改。**
> 登录状态保存在服务端 SessionHttpOnly Cookie),关闭浏览器后需重新登录(约 30 分钟无操作也会失效)。
@@ -39,139 +40,112 @@
## 3. 界面总览
登录成功后主界面包含三块
登录后顶部为两个主 Tab
| 区域 | 作用 |
|------|------|
| **添加凭证** | 选择类型、填写字段、保存 |
| **查询凭证** | 类型/关键词筛选,点击「确认后展示列表 |
| **凭证列表** | 展示查询结果;支持打码显示与复制 |
| Tab | 作用 |
|-----|------|
| **添加凭证** | 选择类型、填写字段(可含图片)、保存 |
| **查询凭证** | 类型下拉筛选 + 关键词,确认后展示列表 |
右上角:
- **系统设置**修改登录账号、管理自定义类型
- **系统设置**账户密码 / 自定义类型 / 备份恢复
- **退出**:清除登录状态
---
## 4. 添加凭证
### 4.1 选择类型
1. 切换到 **「添加凭证」** Tab。
2. 在凭证类型输入框搜索并点击类型(如「钱包助记词」)。
3. 填写表单;若有图片字段,选择本地图片后会自动上传。
4. 点击 **「添加」**。成功后建议切到「查询凭证」查看。
1. 在「添加凭证」区域的 **凭证类型** 输入框中输入关键字(如「交易所」「邮箱」「小红书」)。
2. 从下拉列表中点击需要的类型。
3. 下方会显示「已选:xxx」,并出现对应表单。
### 4.2 各类型必填说明
### 各类型主要字段
| 类型 | 主要字段 |
|------|----------|
| 交易所 API | 交易所、账户名称、API Key、API Secret**OKX 额外必填 Passphrase 密码** |
| 交易所 API | 交易所、账户名称、API Key、API SecretOKX 额外必填密码 |
| 钱包助记词 | 名称、链/网络、助记词、地址、图片、备注 |
| 钱包密钥 | 名称、链/网络、私钥、地址、图片、备注 |
| 网站账号 | 名称、网址、用户名、密码 |
| 邮箱账户 | 名称、邮箱地址、密码;可选网页登录地址 |
| 企业微信机器人 | 名称、Webhook |
| 钉钉机器人 | 名称、Webhook |
| 微信 | 名称、微信号、手机号 |
| QQ | 名称、QQ 号、手机号 |
| 企业微信 / 钉钉机器人 | 名称、Webhook |
| 微信 / QQ | 名称、微信号或 QQ 号、手机号 |
| 自定义类型 | 按你在系统设置中定义的字段填写 |
### 4.3 提交
1. 填写完成后点击 **「添加」**。
2. 添加成功后会提示:**不会自动显示在列表中**。
3. 需要到「查询凭证」区域选择类型并点击 **「确认」** 才能查看。
---
## 5. 查询凭证
### 5.1 基本查询
1. 在「查询凭证」中选择或搜索 **类型**(下拉框支持输入过滤)
2. (可选)在 **关键词** 中输入名称、账号、邮箱等片段
3. 若类型为 **交易所 API**,可再选 Binance / OKX / Gate
4. 点击右侧 **「确认」**。
5. 列表显示该条件下所有记录。
### 5.2 列表操作
1. 切换到 **「查询凭证」** Tab。
2.**类型筛选** 下拉框选择类型(或「全部类型」)。
3. (可选)关键词:名称、账号、邮箱、地址等
4. 若类型为交易所 API,可再选 Binance / OKX / Gate
5. 点击 **「确认」** 显示列表
| 操作 | 说明 |
|------|------|
| **隐藏敏感字段** | 勾选后界面以圆点显示密码、Key 等;**复制按钮仍为真实明文** |
| **复制** | 每条字段右侧「复制」按钮 |
| **链接** | 网站「网址」、邮箱「邮箱地址」、邮箱「网页登录地址」可点击跳转 |
| **删除** | 卡片右上角「删除」,需确认 |
### 5.3 未查询时
默认显示:「选择类型并点击「确认」查看」——不会展示任何凭证内容。
| **隐藏敏感字段** | 勾选后以圆点显示;复制仍为明文 |
| **复制** | 字段右侧「复制」 |
| **图片** | 助记词/密钥等记录可预览已上传图片 |
| **删除** | 卡片右上角,需确认 |
---
## 6. 系统设置
点击右上角 **「系统设置」** 进入。
右上角进入,内含三个 Tab
### 6.1 修改登录账号(写入 .env
### 6.1 账户密码
1. 填写 **新用户名**、**新密码**(至少 6 位)
2. 填写 **当前密码** 以确认身份。
3. 点击 **「保存登录设置」**。
4. 修改后请使用新账号重新登录。
修改登录用户名/密码(写入 `.env`),需填写当前密码确认
> 登录凭据保存在服务器 `.env` 文件中,不会出现在浏览器缓存。
### 6.2 自定义类型
### 6.2 自定义凭证类型
新增类型时字段类型可选:文本 / 敏感 / 多行 / 链接 / 邮箱 / 手机 / **图片**
适用于小红书、抖音、快手等未内置的类型
删除自定义类型会同时删除该类型下所有凭证
**新增类型:**
### 6.3 备份恢复
1. **类型 ID**:英文小写+下划线,如 `xiaohongshu`(创建后不可改)。
2. **显示名称**:如 `小红书`
3. **字段列表**:点击「+ 添加字段」
- `key`:英文标识,如 `account`
- `显示名`:如 `账号`
- `类型`:文本 / 敏感 / 链接 / 邮箱 / 手机
- **必填**:是否必填
4. 点击 **「保存自定义类型」**。
| 操作 | 说明 |
|------|------|
| **下载备份** | 浏览器下载 `.tar.gz`(含 .env、data.json、settings.json、uploads |
| **立即备份到服务器** | 写入 `/root/crypto_key_backups/`(无权限时为项目 `backups/` |
| **选择备份文件恢复** | 上传 `.tar.gz` 覆盖当前数据 |
**搜索 / 删除:**
服务器每日 **03:00** 自动备份(应用内线程 + 部署时安装的 cron)。
- 顶部搜索框可过滤已有自定义类型
- 「删除」会同时删除该类型下的 **所有凭证记录**
> 恢复后 `.env` 中的 `DATA_ENCRYPTION_KEY` 必须与备份一致,否则无法解密
---
## 7. 安全与使用建议
1. **仅在可信局域网使用**,不要将 5200 端口映射到公网。
2. **定期备份** `data.json``.env`(见 [DEPLOY.md](./DEPLOY.md) 备份章节)
3. **不要**`.env``data.json` 提交到 Git 或发给他人
4. 若更换服务器,需同时拷贝 `.env``data.json`,否则无法解密数据
5. 复制敏感内容后,尽快粘贴使用,避免长时间留在系统剪贴板。
2. 使用「备份恢复」或定期检查 `/root/crypto_key_backups/`
3. **不要**`.env``data.json``uploads/` 提交到 Git。
4. 助记词/私钥属于高敏感信息,复制后尽快清除剪贴板
---
## 8. 常见问题
**Q:登录提示用户名或密码错误?**
A:检查 `.env``AUTH_USERNAME` / `AUTH_PASSWORD`;或使用部署时的默认 `admin` / `admin123` 后在设置中修改。
A:检查 `.env``AUTH_*`;或默认 `admin` / `admin123` 后在设置中修改。
**Q:添加成功但查询不到?**
A:确认查询类型与添加时一致;交易所需选对 Binance/OKX/Gate
A:确认查询类型与添加时一致;可先选「全部类型」再搜关键词
**Q局域网手机打不开**
A确认手机与服务器同一 WiFi;防火墙放行 5200;使用 `http://服务器IP:5200` 而非 127.0.0.1
**Q图片上传失败**
A仅支持 jpg/png/gif/webp/bmp,单文件不超过约 16MB
**Q复制按钮无效**
A使用 `http://` 访问(非 `file://`);浏览器需允许剪贴板权限
**Q恢复备份后打不开数据**
A确认备份包内 `.env``DATA_ENCRYPTION_KEY` 完整
**Q:更新代码后无法登录或数据打不开**
A执行 `pip install -r requirements.txt` 并重启 PM2;确认 `.env``DATA_ENCRYPTION_KEY` 未变
**Q:旧版明文 data.json 还能用吗?**
A:可以。服务启动后首次读取会自动迁移为加密格式,建议迁移前备份原文件。
**Q:更新代码怎么做**
A服务器上 `sudo bash scripts/manage.sh` → 选 **2 更新**(仅 git pull,不要用 scp
---