This commit is contained in:
dekun
2026-05-27 07:45:16 +08:00
parent 1f695799bf
commit 703fd912f8
4 changed files with 652 additions and 388 deletions
+45 -81
View File
@@ -1,130 +1,94 @@
# crypto_key — 凭证保险库
本地 Web 工具,管理交易所 API、网站、邮箱、机器人、微信/QQ 及自定义类型凭证。数据 **AES 加密**`data.json`,登录凭据与加密主密钥在 `.env`
本地 / 局域网 Web 工具,集中管理交易所 API、网站、邮箱、机器人、微信/QQ 及自定义类型凭证。数据 **AES 加密**储,**用户名密码登录**,浏览器不缓存明文
| 项目 | 说明 |
|------|------|
| 仓库 | [git.bz121.com/dekun/crypto_key](https://git.bz121.com/dekun/crypto_key.git) |
| Ubuntu 部署路径 | `/opt/crypto_key` |
| 服务端口 | `5200` |
| 进程守护 | PM2 |
| 端口 | `5200``0.0.0.0`,局域网可访问) |
| Ubuntu 部署 | `/opt/crypto_key` + PM2 |
---
## 功能
## 文档导航
- **登录**:用户名 + 密码(`.env`),浏览器不缓存明文
- **内置类型**:交易所 API、网站、邮箱、企业微信/钉钉机器人、微信、QQ
- **自定义类型**:系统设置中添加(如小红书、抖音、快手)
- **查询**:类型搜索 + 关键词 + 确认后显示;网站/邮箱可点击跳转
- **旧 data.json**:首次启动自动迁移为加密格式
- 黑色专业界面,列表展示 + 每项 3 个复制按钮(**复制始终为明文**)
- 可选界面打码显示,不影响复制内容
- 数据持久化至 `data.json`
| 文档 | 说明 |
|------|------|
| **[USAGE.md](./USAGE.md)** | 使用说明(登录、添加、查询、系统设置) |
| **[DEPLOY.md](./DEPLOY.md)** | 部署文档(Ubuntu/Windows、PM2、备份、排错) |
| **[CHANGELOG.md](./CHANGELOG.md)** | 更新说明与版本升级注意 |
---
## 首次配置
## 快速开始
```bash
cp .env.example .env
# 编辑 .envSECRET_KEY、AUTH_USERNAME、AUTH_PASSWORD、DATA_ENCRYPTION_KEY
git clone https://git.bz121.com/dekun/crypto_key.git
cd crypto_key
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # 可选,首次运行也会自动生成
python app.py
```
默认首次运行会自动生成 `.env`(用户名 `admin` / 密码 `admin123`,请立即在「系统设置」中修改)。
浏览器打开:
## Ubuntu 服务器部署(/opt
- 本机:http://127.0.0.1:5200
- 局域网:`http://<本机IP>:5200`
完整步骤见 **[DEPLOY.md](./DEPLOY.md)**。
默认账号(请尽快在系统设置中修改):`admin` / `admin123`
---
## 主要功能
- 登录鉴权(凭据在 `.env`Session 在服务端)
- 内置类型:交易所、网站、邮箱、企微/钉钉机器人、微信、QQ
- 自定义类型:系统设置中添加(小红书、抖音等)
- 查询后显示 + 类型/关键词搜索 + 敏感字段打码(复制为明文)
- 旧版明文 `data.json` 自动迁移加密
---
## Ubuntu 一键部署
```bash
sudo git clone https://git.bz121.com/dekun/crypto_key.git /opt/crypto_key
cd /opt/crypto_key
cp .env.example .env # 并编辑
cp .env.example .env
sudo bash scripts/install-ubuntu.sh
```
访问:
- 本机:**http://127.0.0.1:5200**
- 局域网:**http://<服务器局域网IP>:5200**(如 `http://192.168.1.100:5200`
查看本机 IP`hostname -I``ip addr`
```bash
pm2 status
pm2 logs api-key-manager
```
详见 [DEPLOY.md](./DEPLOY.md)。
---
## 本地开发
```bash
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
python app.py
```
浏览器打开 http://127.0.0.1:5200(局域网内其他设备用 `http://<本机IP>:5200`
PM2 守护:`./pm2-start.sh`Linux)或 `.\pm2-start.ps1`Windows
---
## 文件说明
## 项目文件
| 文件 | 说明 |
|------|------|
| `app.py` | Flask 后端 |
| `index.html` | 前端页面 |
| `storage.py` | 加密存储与迁移 |
| `env_config.py` | `.env` 管理 |
| `index.html` | 前端单页 |
| `ecosystem.config.cjs` | PM2 配置 |
| `scripts/install-ubuntu.sh` | Ubuntu 一键安装 |
| `DEPLOY.md` | 完整部署文档 |
---
## 数据格式
```json
{
"id": "uuid",
"exchange": "binance",
"username": "账户名称",
"api_key": "API Key",
"api_secret": "API Secret",
"password": "仅 OKX 需要"
}
```
---
## API
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/` | 前端页面 |
| GET | `/api/accounts` | 获取全部账户 |
| GET | `/api/accounts?exchange=binance` | 按交易所筛选 |
| POST | `/api/accounts` | 新增账户 |
| DELETE | `/api/accounts/<id>` | 删除账户 |
| `scripts/install-ubuntu.sh` | Ubuntu 安装脚本 |
---
## 安全提示
- 无认证,监听 `0.0.0.0`(局域网可访问),请勿暴露到公网;建议仅在可信局域网使用
- `data.json` 为明文密钥,已 `.gitignore`,请定期备份
- 仅在可信局域网使用,勿将 5200 映射到公网
- 定期备份 `.env``data.json`(密钥丢失将无法解密)
- 勿将 `.env``data.json` 提交到 Git
---
## 依赖
```
flask>=3.0.0,<4.0.0
flask, python-dotenv, cryptography, werkzeug
```
服务器另需:Python 3.8+、Node.jsPM2
服务器 PM2 部署另需 Node.js 16+。