Skip to content

JackDeng666/ying-starter

Repository files navigation

Ying Starter

简介

This workspace has been generated by Nx, Smart Monorepos · Fast CI.

这是一个使用 nx 的 monorepo 架构的全栈项目,基于 React 和 NestJS 实现了基本的后台管理系统的角色权限控制逻辑,包含一个NextJS的客户端,集成了基本的注册登录逻辑和谷歌、github、Facebook 的 oauth 登录,以及多语言配置。

中后台管理端

  • Vite
  • React
  • Ant Design UI
  • zustand
  • react-hook-form

修改自另一个开源项目 slash-admin

客户端

  • Vite
  • React
  • Next UI
  • zustand
  • react-hook-form

服务端

  • Nestjs
  • TypeORM
  • MySQL
  • Redis
  • MinIO

中后台管理端的角色权限控制目录在 apps\server\src\common\permission 里去控制,每次更新会覆盖数据库。

在共享库里有个特殊的库 libs\shared,这个目录用来存放 DTO , VO 和数据库的 Entity 对象, tsconfig.base.json 文件中配置了特殊前缀指向这个目录,这样前端代码可以直接读取服务端已经写好的数据类型,同时配合 react-hook-form@hookform/resolvers/class-validator,传入对应的 DTO 后, 可以让前后端公用同一套数据校验逻辑。

开发环境版本

  • node v18.18.2
  • pnpm v8.15.3

开发环境启动

参考 .env 文件了解需要的环境变量,然后可以按照同样格式添加一个 .env.local 的文件,这个文件已经添加到 git 的忽略文件中。

然后执行:

pnpm i
pnpm dev

docker 部署

项目根目录写了 Dockerfile 文件,直接使用 docker 的打包命令打包一个镜像。

docker build -t ying-starter:test .

启动容器。

docker run --name ying-starter -d \
  -p 3000:3000 \
  -p 3256:3256 \
  -e API_URL=http://localhost:3000/api/client \
  -e DOMAIN=localhost \
  -e SERVER_URL=http://localhost:3000 \
  -e REDIS_HOST=kubernetes.docker.internal \
  -e REDIS_PORT=6379 \
  -e REDIS_PASSWORD=ying123456 \
  -e DB_HOST=kubernetes.docker.internal \
  -e DB_PORT=3306 \
  -e DB_USER=root \
  -e DB_PASSWORD=ying123456 \
  -e DB_NAME=ying_starter \
  -e MINIO_HOST= \
  -e MINIO_PORT= \
  -e MINIO_BUCKET= \
  -e MINIO_ACCESS_KEY= \
  -e MINIO_SECRET_KEY= \
  -e MAIL_HOST= \
  -e MAIL_PORT= \
  -e MAIL_USER= \
  -e MAIL_AUTH_CODE= \
  -e AUTH_ADMIN_SECRET=  \
  -e AUTH_ADMIN_NAME=admin \
  -e AUTH_ADMIN_PASS=Admin.123 \
  -e AUTH_ADMIN_EXPIRES_IN=1d \
  -e AUTH_SECRET= \
  -e AUTH_EXPIRES_IN=1h \
  -e AUTH_REFRESH_EXPIRES_IN=7d \
  -e AUTH_REDIRECT_URL=http://localhost:3256 \
  -e AUTH_GITHUB_ID= \
  -e AUTH_GITHUB_SECRET= \
  -e AUTH_GOOGLE_ID= \
  -e AUTH_GOOGLE_SECRET= \
  -e AUTH_FACEBOOK_ID= \
  -e AUTH_FACEBOOK_SECRET= \
  ying-starter:test

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published