214 lines
5.0 KiB
Markdown
214 lines
5.0 KiB
Markdown
# Kuno
|
||
|
||
Kuno 是一个轻量级多语言内容管理系统(CMS),采用 Go 后端和 Next.js 前端技术栈,专为创建丰富的内容生态系统而设计。
|
||
|
||
## 主要特性
|
||
|
||
- **多语言支持**: 支持 70+ 种语言
|
||
- **现代技术栈**: Go 后端 + Next.js 前端
|
||
- **响应式设计**: 支持各种屏幕尺寸
|
||
- **Markdown 编辑器**: 方便的内容编辑体验
|
||
- **深色/浅色模式**: 用户体验友好
|
||
- **管理面板**: 完整的后台管理功能
|
||
- **分类管理**: 灵活的内容分类系统
|
||
- **Docker 部署**: 一键部署,易于维护
|
||
|
||
## 部署说明
|
||
|
||
### 默认登录信息
|
||
|
||
- 用户名: `admin`
|
||
- 密码: `xuemian168`
|
||
|
||
**重要提示**: 首次登录后请立即修改默认密码!
|
||
|
||
## 维护模式和密码重置
|
||
|
||
### 恢复模式
|
||
|
||
如果您忘记了管理员密码,可以通过以下步骤重置:
|
||
|
||
1. 在 1Panel 应用管理界面中,编辑 Kuno 应用配置
|
||
2. 将 "恢复模式" 设置为 "启用"
|
||
3. 重启应用容器
|
||
4. 使用默认凭据登录:
|
||
- 用户名: `admin`
|
||
- 密码: `xuemian168`
|
||
5. 登录后立即修改密码
|
||
6. 将 "恢复模式" 重新设置为 "禁用"
|
||
7. 再次重启应用容器
|
||
|
||
**安全提示**: 恢复模式会临时启用默认密码访问,请在重置密码后立即禁用此模式。
|
||
|
||
### 数据持久化
|
||
|
||
应用会将所有数据存储在 `/app/data` 目录中,包括:
|
||
- SQLite 数据库文件
|
||
- 用户上传的文件
|
||
- 配置文件
|
||
|
||
### 环境变量说明
|
||
|
||
- `NEXT_PUBLIC_API_URL`: API 端点地址
|
||
- `DB_PATH`: SQLite 数据库路径 (默认: `/app/data/kuno.db`)
|
||
- `GIN_MODE`: Go 后端运行模式 (生产环境建议使用 `release`)
|
||
- `NODE_ENV`: Node.js 环境 (生产环境建议使用 `production`)
|
||
- `JWT_SECRET`: JWT 认证密钥 (请使用随机字符串)
|
||
- `RECOVERY_MODE`: 恢复模式 (默认: `false`,启用时允许使用默认密码登录)
|
||
|
||
## 使用指南
|
||
|
||
1. 部署完成后,访问应用地址
|
||
2. 使用默认账号登录
|
||
3. 立即修改默认密码
|
||
4. 开始创建和管理内容
|
||
|
||
## 系统要求
|
||
|
||
- CPU: 1 核心
|
||
- 内存: 1GB RAM
|
||
- 存储: 10GB 可用空间
|
||
- 架构: x86_64/amd64
|
||
|
||
## 故障排除
|
||
|
||
### 安装一直处于进行中状态
|
||
|
||
如果应用在1Panel中显示"安装中"且长时间未完成,请按以下步骤排查:
|
||
|
||
**立即尝试的解决方案**:
|
||
1. **刷新页面** - 有时仅仅是界面显示问题
|
||
2. **检查网络** - 确保服务器可以访问 Docker Hub
|
||
3. **查看系统资源** - 确保有足够的磁盘空间和内存
|
||
|
||
**如果问题持续存在**:
|
||
|
||
#### 1. 检查Docker容器状态
|
||
```bash
|
||
# 查看所有容器状态
|
||
docker ps -a
|
||
|
||
# 查看Kuno相关容器
|
||
docker ps -a | grep kuno
|
||
```
|
||
|
||
#### 2. 检查容器日志
|
||
```bash
|
||
# 查看容器启动日志
|
||
docker logs <容器名称或ID>
|
||
|
||
# 实时查看日志
|
||
docker logs -f <容器名称或ID>
|
||
```
|
||
|
||
#### 3. 检查镜像拉取状态
|
||
```bash
|
||
# 查看镜像拉取进度
|
||
docker pull ictrun/kuno:latest
|
||
|
||
# 查看本地镜像
|
||
docker images | grep kuno
|
||
```
|
||
|
||
#### 4. 检查端口占用
|
||
```bash
|
||
# 检查端口是否被占用
|
||
netstat -tlnp | grep <端口号>
|
||
# 或使用
|
||
ss -tlnp | grep <端口号>
|
||
```
|
||
|
||
#### 5. 检查磁盘空间
|
||
```bash
|
||
# 检查磁盘使用情况
|
||
df -h
|
||
|
||
# 检查Docker空间使用
|
||
docker system df
|
||
```
|
||
|
||
#### 6. 常见解决方案
|
||
|
||
1. **重新安装应用**:
|
||
- 删除应用
|
||
- 清理残留容器:`docker container prune`
|
||
- 重新从应用商店安装
|
||
|
||
2. **手动拉取镜像**:
|
||
```bash
|
||
docker pull ictrun/kuno:latest
|
||
```
|
||
|
||
3. **检查网络连接**:
|
||
- 确保服务器可以访问Docker Hub
|
||
- 检查防火墙设置
|
||
|
||
4. **查看1Panel系统日志**:
|
||
```bash
|
||
journalctl -u 1panel -f
|
||
```
|
||
|
||
5. **重启Docker服务**:
|
||
```bash
|
||
systemctl restart docker
|
||
```
|
||
|
||
6. **手动验证镜像**:
|
||
```bash
|
||
# 测试镜像是否可用
|
||
docker run --rm ictrun/kuno:latest --version
|
||
```
|
||
|
||
7. **使用1Panel命令行工具**:
|
||
```bash
|
||
# 查看1Panel应用状态
|
||
1pctl app list
|
||
1pctl app logs kuno
|
||
```
|
||
|
||
### 应用无法访问
|
||
|
||
如果应用安装成功但无法访问:
|
||
|
||
1. **检查容器是否正常运行**
|
||
```bash
|
||
docker ps | grep kuno
|
||
docker logs <容器名称>
|
||
```
|
||
|
||
2. **验证端口配置是否正确**
|
||
```bash
|
||
netstat -tlnp | grep <端口号>
|
||
```
|
||
|
||
3. **检查防火墙是否开放对应端口**
|
||
```bash
|
||
# CentOS/RHEL
|
||
firewall-cmd --list-ports
|
||
firewall-cmd --add-port=<端口号>/tcp --permanent
|
||
|
||
# Ubuntu/Debian
|
||
ufw status
|
||
ufw allow <端口号>
|
||
```
|
||
|
||
4. **确认容器健康状态**
|
||
```bash
|
||
docker inspect <容器名称> | grep Health -A 10
|
||
```
|
||
|
||
### 常见错误代码对照
|
||
|
||
- **错误代码 500**: 通常是数据库初始化问题,检查数据目录权限
|
||
- **错误代码 502**: 容器未正常启动,查看容器日志
|
||
- **连接超时**: 网络或防火墙问题,检查端口开放状态
|
||
- **镜像拉取失败**: 网络问题或镜像不存在,尝试手动拉取镜像
|
||
|
||
## 备份建议
|
||
|
||
定期备份 `data` 目录以确保数据安全。
|
||
|
||
## 更多信息
|
||
|
||
- GitHub: https://github.com/xuemian168/kuno
|
||
- 文档: https://github.com/xuemian168/kuno/blob/main/README.md |