本次提交包含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%) - 容器化部署体系完全就绪 - 用户文档体系建立完成 下一步: 继续推进容器化扩展和性能优化任务
13 KiB
13 KiB
Photography Portfolio 用户使用手册
版本: v1.0.0
更新日期: 2025-07-11
适用范围: 管理员和最终用户
📋 目录
🎯 系统概述
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
🎛️ 管理后台使用指南
登录系统
- 访问 https://admin.photography.iriver.top
- 输入用户名和密码
- 点击"登录"按钮
- 登录成功后自动跳转到仪表板
仪表板概览
仪表板显示系统的核心统计信息:
- 📸 照片总数: 系统中的照片总量
- 📁 分类数量: 当前分类总数
- 🏷️ 标签数量: 系统标签总数
- 👥 用户数量: 注册用户总数
- 📊 月度统计: 近期上传趋势
照片管理
上传照片
- 点击左侧菜单"照片管理"
- 点击"上传照片"按钮
- 选择上传方式:
- 拖拽上传: 直接将图片拖拽到指定区域
- 点击上传: 点击选择文件按钮
- 填写照片信息:
- 标题 (必填)
- 描述 (可选)
- 分类 (必填)
- 标签 (可选,多选)
- 点击"开始上传"
- 等待上传完成
支持的文件格式: JPG, PNG, GIF, WebP
文件大小限制: 单张照片最大 10MB
批量上传: 最多同时上传 20 张照片
管理照片
- 在照片列表中查看所有照片
- 使用搜索框查找特定照片
- 切换视图模式:
- 🔲 网格视图: 缩略图展示
- 📋 列表视图: 详细信息展示
- 照片操作:
- 查看: 点击照片查看详情
- 编辑: 点击操作菜单选择编辑
- 删除: 点击操作菜单选择删除
批量操作
- 选择多张照片 (勾选复选框)
- 点击"批量操作"按钮
- 选择操作类型:
- 批量删除: 删除选中的照片
- 批量更新状态: 更改照片状态
- 批量分类: 更改照片分类
照片编辑
- 在照片操作菜单中选择"编辑"
- 修改照片信息:
- 标题
- 描述
- 分类
- 标签
- 状态 (已发布/草稿)
- 点击"保存"确认修改
分类管理
创建分类
- 点击左侧菜单"分类管理"
- 点击"创建分类"按钮
- 填写分类信息:
- 分类名称 (必填)
- 分类描述 (可选)
- 父级分类 (可选,用于创建子分类)
- 点击"创建"保存
管理分类
- 树形结构: 分类以树形结构展示层级关系
- 展开/收起: 点击箭头图标展开或收起子分类
- 编辑分类: 点击操作菜单选择编辑
- 删除分类: 点击操作菜单选择删除 (注意:删除分类前需要先移除该分类下的照片)
分类统计
- 每个分类显示包含的照片数量
- 分类状态指示器 (启用/禁用)
- 最后更新时间
用户管理
查看用户
- 点击左侧菜单"用户管理"
- 查看用户列表和详细信息
- 使用搜索功能查找特定用户
用户操作
- 查看详情: 点击用户名查看详细信息
- 编辑用户: 修改用户信息和权限
- 启用/禁用: 控制用户账户状态
- 重置密码: 为用户重置密码
系统设置
个人设置
- 点击右上角用户头像
- 选择"个人设置"
- 修改个人信息:
- 头像上传
- 昵称修改
- 邮箱更新
- 密码修改
主题设置
- 点击右上角的主题切换按钮
- 选择浅色模式或深色模式
- 设置会自动保存
🌐 前端网站使用指南
浏览照片
主页浏览
- 访问 https://photography.iriver.top
- 首页展示最新上传的照片
- 滚动查看更多照片
- 点击照片查看大图
搜索功能
- 使用顶部搜索栏
- 输入关键词搜索照片
- 支持搜索:
- 照片标题
- 照片描述
- 分类名称
- 标签名称
过滤功能
- 点击"过滤"按钮
- 选择过滤条件:
- 分类: 选择特定分类
- 标签: 选择一个或多个标签
- 排序: 选择排序方式
- 点击"应用过滤"
视图模式
- 网格视图: 照片以网格形式展示
- 瀑布流: 照片以瀑布流形式展示
- 列表视图: 照片以列表形式展示
照片查看
全屏查看
- 点击任意照片打开全屏模式
- 使用键盘控制:
- 左右箭头: 切换照片
- ESC: 退出全屏
- 空格: 暂停/继续幻灯片
- 移动端支持手势操作:
- 左右滑动: 切换照片
- 双击: 缩放照片
- 捏合: 缩放控制
照片信息
- 照片标题和描述
- 拍摄日期和上传时间
- 分类和标签信息
- 照片统计信息
分类浏览
分类页面
- 点击导航栏"分类"
- 查看所有分类列表
- 点击分类名称查看该分类下的照片
- 查看分类统计信息
标签云
- 点击导航栏"标签"
- 查看标签云展示
- 标签大小表示使用频率
- 点击标签查看相关照片
移动端使用
触摸操作
- 单击: 选择照片
- 双击: 全屏查看
- 左右滑动: 切换照片
- 上下滑动: 浏览列表
- 捏合: 缩放照片
响应式设计
- 自动适配不同屏幕尺寸
- 优化的移动端界面
- 触摸友好的按钮设计
🚀 部署运维指南
环境要求
服务器配置
- 操作系统: 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. 服务器准备
# 更新系统
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. 项目部署
# 克隆项目
git clone https://git.iriver.top/iriver/photography.git
cd photography
# 配置环境变量
cp .env.example .env
# 编辑 .env 文件配置数据库等信息
# 启动服务
docker-compose up -d
3. 数据库初始化
# 执行数据库迁移
docker-compose exec backend ./migrate up
# 导入种子数据
docker-compose exec backend ./scripts/seed_data.sh
4. 域名配置
# 配置Caddy反向代理
sudo cp docs/deployment/Caddyfile /etc/caddy/
sudo systemctl reload caddy
监控和维护
日志查看
# 查看所有服务日志
docker-compose logs -f
# 查看特定服务日志
docker-compose logs -f backend
docker-compose logs -f frontend
性能监控
# 查看资源使用情况
docker stats
# 查看磁盘使用情况
df -h
# 查看数据库状态
docker-compose exec db psql -U postgres -d photography -c "SELECT * FROM pg_stat_activity;"
备份策略
# 数据库备份
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/
更新部署
应用程序更新
# 拉取最新代码
git pull origin main
# 重新构建镜像
docker-compose build
# 重启服务
docker-compose down
docker-compose up -d
数据库迁移
# 执行新的迁移
docker-compose exec backend ./migrate up
❓ 常见问题解答
登录相关
Q: 忘记密码怎么办? A: 请联系管理员重置密码,或使用密码找回功能。
Q: 登录时提示"用户名或密码错误"? A: 请检查用户名和密码是否正确,注意大小写。如果多次失败,账户可能被锁定。
Q: 登录后自动退出? A: 可能是会话过期,请重新登录。如果频繁出现,请联系管理员。
照片上传
Q: 支持哪些图片格式? A: 支持 JPG, PNG, GIF, WebP 格式,推荐使用 JPG 格式。
Q: 照片上传失败怎么办? A: 请检查:
- 文件格式是否支持
- 文件大小是否超过限制 (10MB)
- 网络连接是否稳定
- 浏览器是否支持
Q: 批量上传照片时部分失败? A: 系统会显示失败的照片列表,您可以单独重新上传失败的照片。
性能相关
Q: 照片加载很慢? A: 可能的原因:
- 网络连接较慢
- 照片文件过大
- 服务器负载较高 建议: 使用压缩后的照片,优化网络环境。
Q: 网站打开缓慢? A: 请检查网络连接,清除浏览器缓存,或稍后再试。
功能使用
Q: 如何创建照片分类? A: 在管理后台的"分类管理"中点击"创建分类"按钮。
Q: 如何批量管理照片? A: 在照片列表中勾选多张照片,然后使用"批量操作"功能。
Q: 如何搜索照片? A: 使用搜索框输入关键词,支持搜索标题、描述、分类和标签。
🔧 故障排查
常见错误
1. 500 服务器内部错误
症状: 访问网站时显示"500 Internal Server Error" 排查步骤:
- 检查服务器日志:
sudo tail -f /var/log/photography/error.log - 检查数据库连接:
docker-compose exec backend ./health-check - 检查磁盘空间:
df -h - 重启服务:
docker-compose restart
2. 无法连接数据库
症状: 登录失败,提示数据库连接错误 排查步骤:
- 检查数据库服务状态:
docker-compose ps - 检查数据库日志:
docker-compose logs db - 验证数据库配置: 检查
.env文件中的数据库配置 - 重启数据库:
docker-compose restart db
3. 照片上传失败
症状: 上传照片时提示失败或超时 排查步骤:
- 检查上传目录权限:
ls -la uploads/ - 检查磁盘空间:
df -h - 检查文件大小限制: 确认文件不超过10MB
- 检查网络连接: 确认网络稳定
4. 静态资源无法访问
症状: 照片或样式文件无法加载 排查步骤:
- 检查Nginx/Caddy配置:
sudo nginx -t或caddy validate - 检查文件权限:
ls -la /var/www/photography/ - 检查防火墙设置:
sudo ufw status - 重启Web服务器:
sudo systemctl restart nginx
性能优化
1. 数据库优化
-- 检查数据库性能
SELECT * FROM pg_stat_activity WHERE state = 'active';
-- 重建索引
REINDEX DATABASE photography;
-- 更新统计信息
ANALYZE;
2. 缓存优化
# 清除Redis缓存
docker-compose exec redis redis-cli FLUSHALL
# 重启Redis
docker-compose restart redis
3. 磁盘清理
# 清理Docker无用镜像
docker system prune -a
# 清理旧的日志文件
sudo find /var/log -name "*.log" -mtime +30 -delete
# 清理上传的临时文件
find uploads/tmp -name "*" -mtime +1 -delete
监控命令
系统监控
# 查看系统负载
htop
# 查看内存使用
free -h
# 查看磁盘IO
iostat -x 1
# 查看网络连接
netstat -tuln
应用监控
# 查看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)
- 📖 创建完整的用户使用手册
- 🎛️ 详细的管理后台使用指南
- 🌐 前端网站使用说明
- 🚀 部署运维完整指南
- 🔧 故障排查和性能优化指南
- 📞 完善的技术支持体系
本文档将根据系统更新持续完善,请定期查看最新版本。