c57ec3aa82
feat: 实现后端和管理后台基础架构
...
## 后端架构 (Go + Gin + GORM)
- ✅ 完整的分层架构 (API/Service/Repository)
- ✅ PostgreSQL数据库设计和迁移脚本
- ✅ JWT认证系统和权限控制
- ✅ 用户、照片、分类、标签等核心模型
- ✅ 中间件系统 (认证、CORS、日志)
- ✅ 配置管理和环境变量支持
- ✅ 结构化日志和错误处理
- ✅ Makefile构建和部署脚本
## 管理后台架构 (React + TypeScript)
- ✅ Vite + React 18 + TypeScript现代化架构
- ✅ 路由系统和状态管理 (Zustand + TanStack Query)
- ✅ 基于Radix UI的组件库基础
- ✅ 认证流程和权限控制
- ✅ 响应式设计和主题系统
## 数据库设计
- ✅ 用户表 (角色权限、认证信息)
- ✅ 照片表 (元数据、EXIF、状态管理)
- ✅ 分类表 (层级结构、封面图片)
- ✅ 标签表 (使用统计、标签云)
- ✅ 关联表 (照片-标签多对多)
## 技术特点
- 🚀 高性能: Gin框架 + GORM ORM
- 🔐 安全: JWT认证 + 密码加密 + 权限控制
- 📊 监控: 结构化日志 + 健康检查
- 🎨 现代化: React 18 + TypeScript + Vite
- 📱 响应式: Tailwind CSS + Radix UI
参考文档: docs/development/saved-docs/
2025-07-09 14:56:22 +08:00
180fbd2ae9
开发文档
2025-07-09 14:32:52 +08:00
73197d8da8
feat: 完善模块化 CLAUDE.md 文档体系
...
- 新增 admin/CLAUDE.md - 管理后台开发指导文档
- 修正技术栈为 React + TypeScript + shadcn/ui
- 提供完整的管理后台架构设计
- 包含照片管理、分类管理、日志管理等核心功能
- 详细的开发环境配置和部署指南
- 新增 backend/CLAUDE.md - 后端开发指导文档
- 基于 Golang + Gin + GORM 技术栈
- 完整的 API 接口设计和数据库架构
- 包含认证、权限、文件存储等核心功能
- 详细的部署和监控配置
- 新增 ui/CLAUDE.md - UI 备份模块管理文档
- 支持组件备份和 A/B 测试功能
- 详细的同步策略和实验环境配置
- 完整的版本管理和协作流程
- 更新 CLAUDE.md 根目录文档
- 完善模块选择指南和协调机制
- 新增模块间通信和依赖关系说明
- 优化文档维护和使用建议
- 建立完整的模块化开发规范
通过模块化设计最大限度减少 AI 幻觉,提高开发效率。
2025-07-09 14:23:15 +08:00
21b1581bdb
docs: 重构文档结构,按版本划分组织文档
...
## 主要变更
- 创建版本化文档目录结构 (v1/, v2/)
- 移动核心设计文档到对应版本目录
- 更新文档总览和版本说明
- 保留原有目录结构的兼容性
## 新增文档
- docs/v1/README.md - v1.0版本开发指南
- docs/v2/README.md - v2.0版本规划文档
- docs/v1/admin/管理后台开发文档.md
- docs/v1/backend/Golang项目架构文档.md
- docs/v1/database/数据库设计文档.md
- docs/v1/api/API接口设计文档.md
## 文档结构优化
- 清晰的版本划分,便于开发者快速定位
- 完整的开发进度跟踪
- 详细的技术栈说明和架构设计
- 未来版本功能规划和技术演进路径
## 开发者体验提升
- 角色导向的文档导航
- 快速开始指南
- 详细的API和数据库设计文档
- 版本化管理便于迭代开发
2025-07-09 12:41:16 +08:00
9e381c783d
feat: 重构项目为模块化结构,拆分 CLAUDE.md 文档
...
Deploy Frontend / deploy (push) Successful in 2m38s
## 📁 模块化重构
### 新增模块 CLAUDE.md
- `frontend/CLAUDE.md` - 前端开发指导 (Next.js, React, TypeScript)
- `docs/deployment/CLAUDE.md` - 部署配置指导 (Caddy, 服务器配置)
- `.gitea/workflows/CLAUDE.md` - CI/CD 流程指导 (Gitea Actions)
### 根目录 CLAUDE.md 优化
- 重构为项目概览和模块导航
- 提供模块选择指导
- 减少单个文件的上下文长度
### 自动化机制
- 创建 `scripts/update-claude-docs.sh` 自动更新脚本
- 集成到 pre-commit hooks 中
- 文件变更时自动更新对应模块的 CLAUDE.md
## 🎯 优化效果
### 上下文优化
- 每个模块独立的 CLAUDE.md 文件
- 大幅减少单次处理的上下文长度
- 提高 Claude 处理效率和准确性
### 开发体验
- 根据工作内容选择对应模块
- 模块化的文档更聚焦和专业
- 自动维护文档时间戳
### 项目结构
```
photography/
├── CLAUDE.md # 项目概览和模块导航
├── frontend/CLAUDE.md # 前端开发指导
├── docs/deployment/CLAUDE.md # 部署配置指导
├── .gitea/workflows/CLAUDE.md # CI/CD 流程指导
└── scripts/update-claude-docs.sh # 自动更新脚本
```
现在 Claude 工作时只需关注单个模块的文档,大幅提升处理效率!
2025-07-09 10:54:08 +08:00
87c34179fa
refactor: 清理根目录结构,重组部署文件
...
移动文件:
- Caddyfile → docs/deployment/Caddyfile
- fix-caddy-permissions.sh → docs/deployment/fix-caddy-permissions.sh
删除无用文件:
- 根目录 package.json (空项目文件)
- 根目录 bun.lock (无用锁定文件)
- 根目录 node_modules/ (无用依赖目录)
保留文件:
- lint-staged.config.js (项目级 pre-commit 配置)
更新引用:
- 更新 caddy-setup.md 中的文件路径
- 更新 deployment/README.md 文档结构
现在根目录更干净,部署相关文件统一在 docs/deployment/ 目录下
2025-07-09 10:44:42 +08:00
23e154aec1
fix: 修复 Caddy 权限问题和路径配置
...
- 修复 Caddyfile 中的路径问题,使用绝对路径 /home/gitea/www/photography
- 创建权限修复脚本 fix-caddy-permissions.sh
- 设置正确的目录权限让 caddy 用户可以访问 gitea 用户目录
- 更新部署文档,添加权限修复步骤和故障排除指南
修复内容:
- ✅ 使用绝对路径替代 ~ 路径
- ✅ 设置目录权限 755 让 caddy 用户可访问
- ✅ 添加权限检查和修复脚本
- ✅ 完善故障排除文档
现在应该能解决 "permission denied" 错误
2025-07-09 10:05:13 +08:00
00c97a3667
feat: 添加 Caddy 配置文件和部署文档
...
- 创建 Caddyfile 配置 photography.iriver.top 域名
- 配置静态文件服务指向 ~/www/photography/
- 添加性能优化:gzip 压缩、缓存控制
- 配置安全头和错误处理
- 添加详细的 Caddy 部署和配置文档
功能特性:
- ✅ 自动 HTTPS (Let's Encrypt)
- ✅ 静态资源缓存优化
- ✅ Gzip 压缩
- ✅ 安全头配置
- ✅ 404 错误页面处理
- ✅ 访问日志记录
使用方法:
1. 复制 Caddyfile 到服务器 /etc/caddy/
2. 运行 sudo systemctl reload caddy
3. 访问 https://photography.iriver.top
2025-07-09 09:57:55 +08:00
400383d5cb
触发ci
Deploy Frontend / deploy (push) Successful in 2m34s
2025-07-09 09:54:37 +08:00
8d8409a4c6
fix: 避免 sudo 权限问题,改用用户目录部署
...
- 修改部署路径从 /data/photography 到 ~/www/photography
- 移除所有 sudo 命令,避免密码提示问题
- 在用户目录中创建和管理文件,无需特殊权限
- 更新部署信息显示新的路径
修复内容:
- ✅ 解决 sudo 密码错误
- ✅ 使用用户目录避免权限问题
- ✅ 简化部署流程
- ⚠️ 需要手动配置 Web 服务器指向新路径
部署路径:~/www/photography/
2025-07-09 09:52:36 +08:00
c35b0751ca
触发 cicd
Deploy Frontend / deploy (push) Failing after 2m59s
2025-07-09 09:47:29 +08:00
5df11e5b00
fix: 修复 CI/CD 部署中的权限问题
...
- 使用 sudo 创建部署目录并设置正确的所有者权限
- 在 rsync 前确保目录归用户所有
- 添加最终权限设置确保文件可访问
- 修复了 "Permission denied" 错误
现在部署过程会:
1. 用 sudo 创建目录
2. 设置目录所有者为部署用户
3. 执行 rsync 上传文件
4. 最终设置正确的文件权限
2025-07-09 09:44:33 +08:00
a60c886c1b
fix: 配置 Next.js 静态导出解决 CI/CD 部署问题
...
Deploy Frontend / deploy (push) Has been cancelled
- 在 next.config.mjs 中添加 output: 'export' 配置
- 设置 distDir: 'out' 指定输出目录
- 添加 trailingSlash: true 优化静态文件服务
- 现在构建会生成 frontend/out 目录供 CI/CD 部署使用
修复了 rsync 找不到 frontend/out 目录的问题
2025-07-09 09:32:12 +08:00
fe59c8b499
feat: 添加 pre-commit hooks 配置
...
- 安装 husky 和 lint-staged 用于 Git hooks 管理
- 配置 pre-commit 检查:ESLint、TypeScript、Prettier
- 添加 Prettier 代码格式化配置和插件
- 更新项目文档说明 pre-commit 工作流程
- 配置文件包括:
- .husky/pre-commit: Git pre-commit hook 脚本
- lint-staged.config.js: lint-staged 配置
- frontend/.prettierrc: Prettier 配置
- frontend/.prettierignore: Prettier 忽略文件
现在每次提交前会自动运行代码检查和格式化
2025-07-09 09:29:33 +08:00
fc90eb3fa9
test: test pre-commit hooks on TypeScript file
2025-07-09 09:28:16 +08:00
b210b3b3e7
test: test pre-commit hooks
2025-07-09 09:27:55 +08:00
17bbb92da1
fix: 修复 navigation.tsx 中的 TypeScript 类型错误
...
Deploy Frontend / deploy (push) Failing after 2m58s
- 修正 handleTabClick 函数的参数类型定义
- 将 icon 属性改为 href 属性以匹配实际的 navItems 数据结构
- 现在类型检查可以正常通过
2025-07-09 09:22:29 +08:00
0e9d9b9010
fix: 修复 ESLint 配置和代码检查错误
...
Deploy Frontend / deploy (push) Failing after 1m39s
- 安装 ESLint 和 eslint-config-next 依赖
- 创建 .eslintrc.json 配置文件,使用 Next.js 严格模式
- 修复 TypeScript 代码中的类型错误:
- 移除 any 类型,使用具体的类型定义
- 修复未使用的函数参数和变量
- 优化组件类型定义
- 现在 CI/CD 可以成功通过 lint 检查
2025-07-09 09:10:11 +08:00
9376a67052
init doc
2025-07-09 00:13:41 +08:00
0bfcbe54b1
fix bug
Deploy Frontend / deploy (push) Failing after 3m31s
2025-07-08 23:52:09 +08:00
36eec64f92
更新 frontend/bun.sh
Deploy Frontend / deploy (push) Failing after 1m44s
2025-07-08 14:06:30 +00:00
a7d7924047
更新 .gitignore
2025-07-08 14:05:53 +00:00
a90ce51709
更新 frontend/bun.sh
Deploy Frontend / deploy (push) Has been cancelled
2025-07-08 13:32:10 +00:00
6a33450923
feat: add Gitea workflow for frontend deployment
...
- Add automated deployment workflow for frontend directory changes
- Support password authentication with sshpass
- Deploy to /data/photography directory on server
- Configure Caddy server reload after deployment
- Include build, type check, and lint steps
2025-07-08 18:51:25 +08:00
60742fd563
fix: correct .gitignore formatting
2025-07-08 17:44:53 +08:00
80622be036
feat: add frontend/node_modules to gitignore
2025-07-08 17:44:25 +08:00
55932ee587
feat: improve hydration handling and add dependencies
...
- Add hydration state check to PhotoGallery component to prevent SSR/client mismatch
- Update bun.lock with Express and CORS dependencies for mock API
- Add placeholder image for better development experience
2025-07-08 17:39:12 +08:00
4d85b6bd24
feat: add comprehensive .gitignore file
...
- Ignore node_modules, build files, and dependencies
- Exclude environment files and IDE configurations
- Add backend and admin specific ignores for future development
- Cover OS generated files and temporary files
2025-07-08 17:36:52 +08:00
8c5c9a5f8e
fix: resolve hydration mismatch error and improve project setup
...
- Fix React hydration mismatch in ThemeProvider with mounted state check
- Update layout.tsx to use light theme by default instead of system
- Optimize photo filtering with useMemo in page.tsx
- Add Express mock API for development
- Update CLAUDE.md with comprehensive project documentation
- Create backend/ and admin/ directories for future development
2025-07-08 17:34:16 +08:00
3d197eb7e3
feat: setup frontend project with bun and dynamic data fetching
...
- Create new frontend project directory with Next.js 15 + React 19
- Migrate from pnpm to bun for faster package management
- Add TanStack Query + Axios for dynamic data fetching
- Create comprehensive Makefile with development commands
- Setup API layer with query hooks and error handling
- Configure environment variables and bun settings
- Add TypeScript type checking and project documentation
- Update CLAUDE.md with bun-specific development workflow
2025-07-08 15:28:26 +08:00
d06caee35a
init ui
2025-07-08 14:39:08 +08:00