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:
@@ -9,6 +9,7 @@
|
||||
**crypto_key** 是一款在浏览器中使用的本地/局域网凭证管理工具,用于集中保存:
|
||||
|
||||
- 交易所 API(Binance、OKX、Gate)
|
||||
- **钱包助记词**、**钱包密钥**(支持图片附件)
|
||||
- 网站账号(可点击打开网址)
|
||||
- 邮箱账户(可点击发邮件或打开网页登录)
|
||||
- 企业微信 / 钉钉机器人 Webhook
|
||||
@@ -31,7 +32,7 @@
|
||||
3. 首次部署时,若未配置 `.env`,系统可能自动生成默认账号:
|
||||
- 用户名:`admin`
|
||||
- 密码:`admin123`
|
||||
4. **登录后请立即进入「系统设置」修改用户名和密码。**
|
||||
4. **登录后请立即进入「系统设置 → 账户密码」修改。**
|
||||
|
||||
> 登录状态保存在服务端 Session(HttpOnly 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 Secret;OKX 额外必填密码 |
|
||||
| 钱包助记词 | 名称、链/网络、助记词、地址、图片、备注 |
|
||||
| 钱包密钥 | 名称、链/网络、私钥、地址、图片、备注 |
|
||||
| 网站账号 | 名称、网址、用户名、密码 |
|
||||
| 邮箱账户 | 名称、邮箱地址、密码;可选网页登录地址 |
|
||||
| 企业微信机器人 | 名称、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)。
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user