Files
photography/docs/USER_MANUAL.md
xujiang 6efccae78a feat: 完成容器化系统和用户文档开发
本次提交包含3个重要功能的完成:

1. 📖 用户使用文档完成
   - 创建完整的用户使用手册 (docs/USER_MANUAL.md)
   - 管理后台使用指南 (登录、照片管理、分类管理)
   - 前端网站使用说明 (浏览、搜索、移动端)
   - 部署运维指南 (环境准备、监控维护)
   - 故障排查指南 (错误处理、性能优化)
   - 技术支持体系和问题反馈渠道

2. 🐳 后端Docker容器化完成
   - 多阶段构建Dockerfile (golang:1.23-alpine → scratch)
   - Docker Compose开发环境 (PostgreSQL + Redis + API)
   - 优化的构建配置和安全用户设置
   - 健康检查和环境变量管理
   - 更新Makefile添加Docker命令

3. 🏗️ 前端Docker容器化完成
   - 多阶段构建Dockerfile (node:20-alpine → nginx:1.25-alpine)
   - 集成bun包管理器优化构建速度
   - 优化的Nginx配置 (缓存、压缩、安全头部)
   - Docker Compose多模式支持 (开发/生产/代理)
   - 更新Makefile添加Docker命令

4. 📋 完整的Docker编排系统
   - 项目根目录完整的docker-compose.yml
   - 支持数据库、缓存、API、前端、管理后台的统一部署
   - 自动化Docker设置脚本 (docker-setup.sh)
   - 生产环境监控和日志收集配置

技术成果:
- 项目完成率从65.0%提升至72.5%
- 中优先级任务完成率达90%
- 低优先级任务开始推进(18%)
- 容器化部署体系完全就绪
- 用户文档体系建立完成

下一步: 继续推进容器化扩展和性能优化任务
2025-07-11 14:29:04 +08:00

578 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Photography Portfolio 用户使用手册
> 版本: v1.0.0
> 更新日期: 2025-07-11
> 适用范围: 管理员和最终用户
## 📋 目录
1. [系统概述](#系统概述)
2. [快速开始](#快速开始)
3. [管理后台使用指南](#管理后台使用指南)
4. [前端网站使用指南](#前端网站使用指南)
5. [部署运维指南](#部署运维指南)
6. [常见问题解答](#常见问题解答)
7. [故障排查](#故障排查)
8. [联系支持](#联系支持)
---
## 🎯 系统概述
Photography Portfolio 是一个现代化的摄影作品集管理系统,包含以下核心功能:
### 主要特性
- 🔐 **安全认证系统**: JWT认证多级权限控制
- 📸 **照片管理**: 上传、编辑、分类、标签管理
- 🎨 **响应式设计**: 支持桌面端和移动端
- 🌙 **主题切换**: 深色/浅色模式
- 📊 **统计分析**: 完整的数据统计和分析功能
### 系统架构
```
前端展示网站 (photography.iriver.top)
管理后台 (admin.photography.iriver.top)
后端API (api.photography.iriver.top)
数据库 (PostgreSQL)
```
---
## 🚀 快速开始
### 系统要求
- **浏览器**: Chrome 90+, Firefox 88+, Safari 14+, Edge 90+
- **分辨率**: 最低 1024x768 (推荐 1920x1080)
- **网络**: 宽带连接 (上传照片需要)
### 访问地址
- **前端网站**: https://photography.iriver.top
- **管理后台**: https://admin.photography.iriver.top
- **API文档**: https://api.photography.iriver.top/docs
### 默认账户
```
管理员账户:
用户名: admin
密码: admin123
邮箱: admin@photography.com
演示账户:
用户名: demo
密码: demo123
邮箱: demo@photography.com
```
---
## 🎛️ 管理后台使用指南
### 登录系统
1. 访问 https://admin.photography.iriver.top
2. 输入用户名和密码
3. 点击"登录"按钮
4. 登录成功后自动跳转到仪表板
### 仪表板概览
仪表板显示系统的核心统计信息:
- 📸 **照片总数**: 系统中的照片总量
- 📁 **分类数量**: 当前分类总数
- 🏷️ **标签数量**: 系统标签总数
- 👥 **用户数量**: 注册用户总数
- 📊 **月度统计**: 近期上传趋势
### 照片管理
#### 上传照片
1. 点击左侧菜单"照片管理"
2. 点击"上传照片"按钮
3. 选择上传方式:
- **拖拽上传**: 直接将图片拖拽到指定区域
- **点击上传**: 点击选择文件按钮
4. 填写照片信息:
- 标题 (必填)
- 描述 (可选)
- 分类 (必填)
- 标签 (可选,多选)
5. 点击"开始上传"
6. 等待上传完成
**支持的文件格式**: JPG, PNG, GIF, WebP
**文件大小限制**: 单张照片最大 10MB
**批量上传**: 最多同时上传 20 张照片
#### 管理照片
1. 在照片列表中查看所有照片
2. 使用搜索框查找特定照片
3. 切换视图模式:
- 🔲 **网格视图**: 缩略图展示
- 📋 **列表视图**: 详细信息展示
4. 照片操作:
- **查看**: 点击照片查看详情
- **编辑**: 点击操作菜单选择编辑
- **删除**: 点击操作菜单选择删除
#### 批量操作
1. 选择多张照片 (勾选复选框)
2. 点击"批量操作"按钮
3. 选择操作类型:
- **批量删除**: 删除选中的照片
- **批量更新状态**: 更改照片状态
- **批量分类**: 更改照片分类
#### 照片编辑
1. 在照片操作菜单中选择"编辑"
2. 修改照片信息:
- 标题
- 描述
- 分类
- 标签
- 状态 (已发布/草稿)
3. 点击"保存"确认修改
### 分类管理
#### 创建分类
1. 点击左侧菜单"分类管理"
2. 点击"创建分类"按钮
3. 填写分类信息:
- 分类名称 (必填)
- 分类描述 (可选)
- 父级分类 (可选,用于创建子分类)
4. 点击"创建"保存
#### 管理分类
- **树形结构**: 分类以树形结构展示层级关系
- **展开/收起**: 点击箭头图标展开或收起子分类
- **编辑分类**: 点击操作菜单选择编辑
- **删除分类**: 点击操作菜单选择删除 (注意:删除分类前需要先移除该分类下的照片)
#### 分类统计
- 每个分类显示包含的照片数量
- 分类状态指示器 (启用/禁用)
- 最后更新时间
### 用户管理
#### 查看用户
1. 点击左侧菜单"用户管理"
2. 查看用户列表和详细信息
3. 使用搜索功能查找特定用户
#### 用户操作
- **查看详情**: 点击用户名查看详细信息
- **编辑用户**: 修改用户信息和权限
- **启用/禁用**: 控制用户账户状态
- **重置密码**: 为用户重置密码
### 系统设置
#### 个人设置
1. 点击右上角用户头像
2. 选择"个人设置"
3. 修改个人信息:
- 头像上传
- 昵称修改
- 邮箱更新
- 密码修改
#### 主题设置
- 点击右上角的主题切换按钮
- 选择浅色模式或深色模式
- 设置会自动保存
---
## 🌐 前端网站使用指南
### 浏览照片
#### 主页浏览
1. 访问 https://photography.iriver.top
2. 首页展示最新上传的照片
3. 滚动查看更多照片
4. 点击照片查看大图
#### 搜索功能
1. 使用顶部搜索栏
2. 输入关键词搜索照片
3. 支持搜索:
- 照片标题
- 照片描述
- 分类名称
- 标签名称
#### 过滤功能
1. 点击"过滤"按钮
2. 选择过滤条件:
- **分类**: 选择特定分类
- **标签**: 选择一个或多个标签
- **排序**: 选择排序方式
3. 点击"应用过滤"
#### 视图模式
- **网格视图**: 照片以网格形式展示
- **瀑布流**: 照片以瀑布流形式展示
- **列表视图**: 照片以列表形式展示
### 照片查看
#### 全屏查看
1. 点击任意照片打开全屏模式
2. 使用键盘控制:
- **左右箭头**: 切换照片
- **ESC**: 退出全屏
- **空格**: 暂停/继续幻灯片
3. 移动端支持手势操作:
- **左右滑动**: 切换照片
- **双击**: 缩放照片
- **捏合**: 缩放控制
#### 照片信息
- 照片标题和描述
- 拍摄日期和上传时间
- 分类和标签信息
- 照片统计信息
### 分类浏览
#### 分类页面
1. 点击导航栏"分类"
2. 查看所有分类列表
3. 点击分类名称查看该分类下的照片
4. 查看分类统计信息
#### 标签云
1. 点击导航栏"标签"
2. 查看标签云展示
3. 标签大小表示使用频率
4. 点击标签查看相关照片
### 移动端使用
#### 触摸操作
- **单击**: 选择照片
- **双击**: 全屏查看
- **左右滑动**: 切换照片
- **上下滑动**: 浏览列表
- **捏合**: 缩放照片
#### 响应式设计
- 自动适配不同屏幕尺寸
- 优化的移动端界面
- 触摸友好的按钮设计
---
## 🚀 部署运维指南
### 环境要求
#### 服务器配置
- **操作系统**: Ubuntu 20.04+ / CentOS 8+
- **CPU**: 2核心以上
- **内存**: 4GB以上
- **存储**: 50GB以上
- **网络**: 公网IP备案域名
#### 软件依赖
- **Docker**: 20.10+
- **Docker Compose**: 2.0+
- **Nginx**: 1.18+ (或使用Caddy)
- **PostgreSQL**: 13+
- **Redis**: 6.0+
### 部署步骤
#### 1. 服务器准备
```bash
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
# 安装Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
```
#### 2. 项目部署
```bash
# 克隆项目
git clone https://git.iriver.top/iriver/photography.git
cd photography
# 配置环境变量
cp .env.example .env
# 编辑 .env 文件配置数据库等信息
# 启动服务
docker-compose up -d
```
#### 3. 数据库初始化
```bash
# 执行数据库迁移
docker-compose exec backend ./migrate up
# 导入种子数据
docker-compose exec backend ./scripts/seed_data.sh
```
#### 4. 域名配置
```bash
# 配置Caddy反向代理
sudo cp docs/deployment/Caddyfile /etc/caddy/
sudo systemctl reload caddy
```
### 监控和维护
#### 日志查看
```bash
# 查看所有服务日志
docker-compose logs -f
# 查看特定服务日志
docker-compose logs -f backend
docker-compose logs -f frontend
```
#### 性能监控
```bash
# 查看资源使用情况
docker stats
# 查看磁盘使用情况
df -h
# 查看数据库状态
docker-compose exec db psql -U postgres -d photography -c "SELECT * FROM pg_stat_activity;"
```
#### 备份策略
```bash
# 数据库备份
docker-compose exec db pg_dump -U postgres photography > backup_$(date +%Y%m%d).sql
# 文件备份
tar -czf uploads_backup_$(date +%Y%m%d).tar.gz uploads/
```
### 更新部署
#### 应用程序更新
```bash
# 拉取最新代码
git pull origin main
# 重新构建镜像
docker-compose build
# 重启服务
docker-compose down
docker-compose up -d
```
#### 数据库迁移
```bash
# 执行新的迁移
docker-compose exec backend ./migrate up
```
---
## ❓ 常见问题解答
### 登录相关
**Q: 忘记密码怎么办?**
A: 请联系管理员重置密码,或使用密码找回功能。
**Q: 登录时提示"用户名或密码错误"**
A: 请检查用户名和密码是否正确,注意大小写。如果多次失败,账户可能被锁定。
**Q: 登录后自动退出?**
A: 可能是会话过期,请重新登录。如果频繁出现,请联系管理员。
### 照片上传
**Q: 支持哪些图片格式?**
A: 支持 JPG, PNG, GIF, WebP 格式,推荐使用 JPG 格式。
**Q: 照片上传失败怎么办?**
A: 请检查:
1. 文件格式是否支持
2. 文件大小是否超过限制 (10MB)
3. 网络连接是否稳定
4. 浏览器是否支持
**Q: 批量上传照片时部分失败?**
A: 系统会显示失败的照片列表,您可以单独重新上传失败的照片。
### 性能相关
**Q: 照片加载很慢?**
A: 可能的原因:
1. 网络连接较慢
2. 照片文件过大
3. 服务器负载较高
建议: 使用压缩后的照片,优化网络环境。
**Q: 网站打开缓慢?**
A: 请检查网络连接,清除浏览器缓存,或稍后再试。
### 功能使用
**Q: 如何创建照片分类?**
A: 在管理后台的"分类管理"中点击"创建分类"按钮。
**Q: 如何批量管理照片?**
A: 在照片列表中勾选多张照片,然后使用"批量操作"功能。
**Q: 如何搜索照片?**
A: 使用搜索框输入关键词,支持搜索标题、描述、分类和标签。
---
## 🔧 故障排查
### 常见错误
#### 1. 500 服务器内部错误
**症状**: 访问网站时显示"500 Internal Server Error"
**排查步骤**:
1. 检查服务器日志: `sudo tail -f /var/log/photography/error.log`
2. 检查数据库连接: `docker-compose exec backend ./health-check`
3. 检查磁盘空间: `df -h`
4. 重启服务: `docker-compose restart`
#### 2. 无法连接数据库
**症状**: 登录失败,提示数据库连接错误
**排查步骤**:
1. 检查数据库服务状态: `docker-compose ps`
2. 检查数据库日志: `docker-compose logs db`
3. 验证数据库配置: 检查 `.env` 文件中的数据库配置
4. 重启数据库: `docker-compose restart db`
#### 3. 照片上传失败
**症状**: 上传照片时提示失败或超时
**排查步骤**:
1. 检查上传目录权限: `ls -la uploads/`
2. 检查磁盘空间: `df -h`
3. 检查文件大小限制: 确认文件不超过10MB
4. 检查网络连接: 确认网络稳定
#### 4. 静态资源无法访问
**症状**: 照片或样式文件无法加载
**排查步骤**:
1. 检查Nginx/Caddy配置: `sudo nginx -t``caddy validate`
2. 检查文件权限: `ls -la /var/www/photography/`
3. 检查防火墙设置: `sudo ufw status`
4. 重启Web服务器: `sudo systemctl restart nginx`
### 性能优化
#### 1. 数据库优化
```sql
-- 检查数据库性能
SELECT * FROM pg_stat_activity WHERE state = 'active';
-- 重建索引
REINDEX DATABASE photography;
-- 更新统计信息
ANALYZE;
```
#### 2. 缓存优化
```bash
# 清除Redis缓存
docker-compose exec redis redis-cli FLUSHALL
# 重启Redis
docker-compose restart redis
```
#### 3. 磁盘清理
```bash
# 清理Docker无用镜像
docker system prune -a
# 清理旧的日志文件
sudo find /var/log -name "*.log" -mtime +30 -delete
# 清理上传的临时文件
find uploads/tmp -name "*" -mtime +1 -delete
```
### 监控命令
#### 系统监控
```bash
# 查看系统负载
htop
# 查看内存使用
free -h
# 查看磁盘IO
iostat -x 1
# 查看网络连接
netstat -tuln
```
#### 应用监控
```bash
# 查看API响应时间
curl -w "@curl-format.txt" -o /dev/null -s "https://api.photography.iriver.top/health"
# 查看数据库连接数
docker-compose exec db psql -U postgres -d photography -c "SELECT count(*) FROM pg_stat_activity;"
# 查看服务状态
docker-compose ps
```
---
## 📞 联系支持
### 技术支持
- **邮箱**: support@photography.iriver.top
- **QQ群**: 123456789
- **工作时间**: 周一至周五 9:00-18:00
### 问题反馈
- **GitHub Issues**: https://github.com/iriver/photography/issues
- **在线文档**: https://docs.photography.iriver.top
- **更新日志**: https://changelog.photography.iriver.top
### 紧急联系
- **运维热线**: 400-XXX-XXXX
- **紧急邮箱**: urgent@photography.iriver.top
---
## 📝 更新日志
### v1.0.0 (2025-07-11)
- 📖 创建完整的用户使用手册
- 🎛️ 详细的管理后台使用指南
- 🌐 前端网站使用说明
- 🚀 部署运维完整指南
- 🔧 故障排查和性能优化指南
- 📞 完善的技术支持体系
---
*本文档将根据系统更新持续完善,请定期查看最新版本。*