Files
KatelyaTV/docs/KVROCKS_DEPLOYMENT.md
T

218 lines
4.4 KiB
Markdown

# Kvrocks 部署指南
本文档介绍如何使用 Docker + Kvrocks 部署 KatelyaTV。
> **⚠️ 重要提醒**:Kvrocks 部署需要配置管理员账号(`USERNAME` 和 `PASSWORD`),否则会出现"页面显示账号密码登录但无法登录"的问题!
## 🚀 快速开始
### 方案一:无密码部署(推荐用于开发环境)
1. **准备环境变量文件**
```bash
# 复制环境变量示例文件
cp .env.kvrocks.example .env
# 编辑环境变量
nano .env
```
2. **环境变量配置**
```bash
# 数据库配置
NEXT_PUBLIC_STORAGE_TYPE=kvrocks
KVROCKS_URL=redis://kvrocks:6666
# 不设置 Kvrocks 密码
# KVROCKS_PASSWORD=
KVROCKS_DATABASE=0
# 管理员账号配置(必填!)
USERNAME=admin
PASSWORD=your_admin_password
# 用户注册配置
NEXT_PUBLIC_ENABLE_REGISTER=true
# 应用配置
NEXTAUTH_SECRET=your_nextauth_secret_here
NEXTAUTH_URL=http://localhost:3000
```
3. **启动服务**
```bash
docker-compose -f docker-compose.kvrocks.yml up -d
```
### 方案二:密码认证部署(推荐用于生产环境)
1. **准备环境变量文件**
```bash
# 复制环境变量示例文件
cp .env.kvrocks.example .env
# 编辑环境变量
nano .env
```
2. **环境变量配置**
```bash
# 数据库配置
NEXT_PUBLIC_STORAGE_TYPE=kvrocks
KVROCKS_URL=redis://kvrocks:6666
# 设置强密码
KVROCKS_PASSWORD=your_secure_password_here
KVROCKS_DATABASE=0
# 应用配置
NEXTAUTH_SECRET=your_nextauth_secret_here
NEXTAUTH_URL=http://localhost:3000
```
3. **启动服务**
```bash
docker-compose -f docker-compose.kvrocks.auth.yml up -d
```
## 🔧 故障排除
### 问题 1:页面显示账号密码登录但无法登录
**现象:**
- 部署后页面显示用户名+密码登录界面
- 但是只配置了 `PASSWORD` 环境变量
- 无法登录或提示"用户名或密码错误"
**原因:**
- Kvrocks 部署属于多用户模式,需要配置管理员账号
- 缺少 `USERNAME` 环境变量导致系统无法识别管理员
**解决方案:**
```bash
# 在 .env 文件中添加管理员账号配置
USERNAME=admin
PASSWORD=your_admin_password
NEXT_PUBLIC_ENABLE_REGISTER=true
```
### 问题 2:密码认证错误
```
❌ Kvrocks Client Error: [Error]: ERR Client sent AUTH, but no password is set
```
**解决方案:**
- 确保使用正确的 docker-compose 文件
- 检查环境变量 `KVROCKS_PASSWORD` 的设置
- 无密码部署使用:`docker-compose.kvrocks.yml`
- 密码认证部署使用:`docker-compose.kvrocks.auth.yml`
### 问题 3:连接超时
```
❌ Failed to connect to Kvrocks: connect ECONNREFUSED
```
**解决方案:**
1. 检查 Kvrocks 服务是否正常启动
```bash
docker-compose logs kvrocks
```
2. 检查网络连接
```bash
docker-compose exec katelyatv ping kvrocks
```
3. 检查端口映射
```bash
docker-compose ps
```
### 问题 3:数据持久化问题
**解决方案:**
1. 确保数据卷正确挂载
```bash
docker volume ls | grep kvrocks
```
2. 检查数据目录权限
```bash
docker-compose exec kvrocks ls -la /var/lib/kvrocks/data
```
## 📊 健康检查
### 检查服务状态
```bash
# 查看所有服务状态
docker-compose ps
# 查看日志
docker-compose logs -f
# 检查 Kvrocks 连接
docker-compose exec kvrocks redis-cli -p 6666 ping
```
### 性能监控
```bash
# 查看 Kvrocks 信息
docker-compose exec kvrocks redis-cli -p 6666 info
# 查看内存使用
docker-compose exec kvrocks redis-cli -p 6666 info memory
# 查看连接数
docker-compose exec kvrocks redis-cli -p 6666 info clients
```
## 🔒 安全建议
1. **生产环境必须设置密码**
2. **定期备份数据**
3. **限制网络访问**
4. **监控日志异常**
## 📁 文件结构
```
project/
├── docker-compose.kvrocks.yml # 无密码部署配置
├── docker-compose.kvrocks.auth.yml # 密码认证部署配置
├── .env.kvrocks.example # 环境变量示例
├── docker/
│ └── kvrocks/
│ ├── kvrocks.conf # 无密码配置文件
│ └── kvrocks.auth.conf # 密码认证配置文件
└── .env # 实际环境变量(需要创建)
```
## 🆘 获取帮助
如果遇到问题,请:
1. 检查日志:`docker-compose logs -f`
2. 验证环境变量:`docker-compose config`
3. 重启服务:`docker-compose restart`
4. 重新构建:`docker-compose up -d --force-recreate`