SmartPagerankSearch / PASSWORD_CONFIG.md
GitHub Action
Sync from GitHub Actions (Clean Commit)
7f22d3c
# 爬取密码配置说明
## 🔐 密码说明
系统使用环境变量 `CRAWL_PASSWORD` 来配置爬取密码。这个密码用于保护以下功能:
- ✅ URL爬取功能
- ✅ CSV批量导入功能
- ✅ XML Dump上传功能
## 📋 当前状态
### 检查密码配置
运行以下命令检查密码是否已配置:
```bash
# 检查.env文件中是否配置了密码
grep CRAWL_PASSWORD .env
```
### 如果未配置
如果`.env`文件中没有`CRAWL_PASSWORD`配置,系统会:
- 显示错误:"服务器未配置爬取密码,请联系管理员"
- 阻止所有需要密码的操作
## 🔧 如何设置密码
### 方法1: 在.env文件中配置(推荐)
1. **编辑.env文件**
```bash
# 在项目根目录编辑.env文件
nano .env
# 或
vim .env
```
2. **添加密码配置**
```bash
CRAWL_PASSWORD=your-secure-password-here
```
3. **重启服务器**
```bash
# 停止服务器
pkill -f web_server.py
# 重新启动
python3 web_server.py --mode user --port 8000
```
### 方法2: 使用环境变量(临时)
```bash
# 设置环境变量
export CRAWL_PASSWORD=your-secure-password-here
# 启动服务器
python3 web_server.py --mode user --port 8000
```
### 方法3: 复制示例文件
```bash
# 如果.env文件不存在,从示例文件创建
cp .env.example .env
# 然后编辑.env文件,设置密码
nano .env
```
## 🔒 密码安全建议
1. **使用强密码**
- 至少12个字符
- 包含大小写字母、数字、特殊字符
- 例如:`MySecure@Pass123!`
2. **不要分享密码**
- 只在需要访问的用户之间分享
- 不要在代码中硬编码密码
3. **定期更换**
- 建议每3-6个月更换一次
- 如果怀疑泄露,立即更换
4. **保护.env文件**
- `.env`文件已在`.gitignore`
- 不要将`.env`文件提交到Git仓库
- 确保文件权限正确(仅所有者可读)
## 🎯 使用密码
配置密码后,在前端界面使用以下功能时需要输入密码:
### 1. URL爬取
- 在"URL Injection"区域
- 输入URL和密码
- 点击"Inject"按钮
### 2. CSV批量导入
- 在"Batch Import (Wiki Style)"区域
- 选择CSV文件
- 输入URL前缀(可选)
- 输入密码
- 点击"批量导入"按钮
### 3. Wiki Dump上传
- 在"Wiki Dump Import"区域
- 选择XML dump文件
- 输入Wiki基础URL(可选)
- 输入最大页面数(可选)
- 输入密码
- 点击"导入Dump"按钮
## ❓ 常见问题
### Q1: 密码是什么?
**A**: 密码是您在`.env`文件中配置的`CRAWL_PASSWORD`值。如果您没有配置,系统会提示错误。
### Q2: 如何查看当前配置的密码?
**A**: 密码存储在`.env`文件中。您可以查看:
```bash
grep CRAWL_PASSWORD .env
```
**注意**:出于安全考虑,不要在公共场所显示密码。
### Q3: 忘记密码怎么办?
**A**:
1. 编辑`.env`文件
2. 修改`CRAWL_PASSWORD`的值
3. 重启服务器
### Q4: 如何重置密码?
**A**: 修改`.env`文件中的`CRAWL_PASSWORD`值即可。
### Q5: 密码错误怎么办?
**A**:
1. 检查输入的密码是否正确
2. 检查`.env`文件中的密码配置
3. 确认没有多余的空格
4. 重启服务器使配置生效
## 🔍 验证密码配置
### 检查密码是否已配置
```bash
python3 -c "
import os
from dotenv import load_dotenv
load_dotenv()
password = os.getenv('CRAWL_PASSWORD', '')
if password:
print('✅ 密码已配置')
print(f'密码长度: {len(password)} 字符')
else:
print('❌ 密码未配置')
print('请在.env文件中设置 CRAWL_PASSWORD')
"
```
## 📝 示例配置
`.env`文件示例:
```bash
# 爬取密码配置
CRAWL_PASSWORD=MySecurePassword123!
# 其他配置...
QDRANT_URL=https://your-qdrant-instance.qdrant.io
QDRANT_API_KEY=your-api-key
GOOGLE_API_KEY=your-google-api-key
```
## ⚠️ 安全提醒
1. **不要将密码写入代码**
2. **不要将.env文件提交到Git**
3. **在生产环境使用HTTPS**
4. **限制服务器访问权限**
5. **定期更换密码**
## 📚 相关文档
- `.env.example` - 环境变量示例文件
- `CRAWL_PASSWORD_FEATURE.md` - 密码功能详细说明
- `web_server.py` - 服务器代码(密码验证逻辑)