PhotoWake 是一个现代化的 Web 应用程序,采用前后端分离架构设计。
由于目前服务器已经到期,所以删除了预览地址,大家可以自行部署,也可以直接本地部署运行查看效果。
- Next.js 15.0.4 (使用 App Router)
- React 19
- TypeScript
- TailwindCSS
- Clerk (身份认证)【目前已经移除】
- next-intl (国际化)
- Zustand (状态管理)
- NestJS
- TypeScript
- ConfigModule (配置管理)
- Docker & Docker Compose
- Nginx (反向代理)
- GitHub Actions (CI/CD)
-
已实现功能
- 👉 素材管理
- 👻 素材选择生成头像
- 👹 随机生成头像
-
后续计划
- 头像下载
- 头像分享
- 增加各种素材
- 加入 AI 生成头像
.
├── web/ # 前端项目
├── server/ # 后端项目
├── nginx.conf # Nginx配置
├── docker-compose.yml # Docker编排配置
└── .github/workflows # CI/CD配置
- 克隆项目
git clone https://github.com/slince-zero/photowake.git
cd photowake- 启动前端开发服务器
cd web
pnpm install
pnpm dev- 启动后端服务器
cd server
pnpm install
pnpm start:dev使用 Docker Compose 启动所有服务:
docker-compose up -d- 登录页面位于
web/app/login/[[...rest]]/page.tsx - 使用 Clerk 推荐的标准配置方式。
-
按照官方文档配置:
- messages/
- i18n/
- middleware.ts
-
注意事项:
- Next.js 15.0.4 需要处理异步路由参数。
- 配置完之后,项目会有一个错误,Route "/[locale]" used
params.locale.paramsshould be awaited before using its properties。这个错误是 Next.js 15.0.4 版本中的一个新要求。错误信息表示在使用动态路由参数 params.locale 之前需要先等待(await)它。这是因为在服务器组件中,params 是一个异步对象。
- 使用以下命令修复 params 异步问题:
npx @next/codemod@canary next-async-request-api . - 键名长度需要适中以确保正常翻译。
- 前端: 3000
- 后端: 3080
- Nginx: 80
- Fork 项目
- 创建功能分支
- 提交更改
- 发起 Pull Request
本项目采用 MIT 开源协议。
这意味着你可以:
- ✅ 自由使用
- ✅ 自由修改
- ✅ 自由分发
- ✅ 商业使用
唯一的要求是在使用时保留原始许可证和版权信息。
