buqiyuan/nest-admin
buqiyuan/nest-admin has 2,283 GitHub stars and 521 forks. GitHot measured +1 stars in 24 hours and +7 in 7 days. Last checked 2026-11-11 10:53 UTC. Last push 2026-11-02.
Comment ces chiffres sont mesurés
NestJS CRUD for RESTful API 使用 NestJS + Mysql + Typeorm + Redis + JWT + Swagger 企业中后台管理系统项目RBAC权限管理(细粒度到按钮)、实现单点登录等...
Progression mesurée des étoiles
- in 24h
- +1
- in 7 days
- +7
- in 15 days
- Historique en cours
- in 1 month
- Historique en cours
Variations nettes sur des périodes qui se chevauchent, pas des totaux quotidiens. Les mesures absentes restent vides. Les étoiles indiquent l’intérêt, pas la qualité.
README.md
Originalnest-admin
基于 NestJs + TypeScript + TypeORM + Redis + MySql + Vue3 + Ant Design Vue 编写的一款简单高效的前后端分离的权限管理系统。希望这个项目在全栈的路上能够帮助到你。
- 前端项目地址:传送门
演示地址
当前公开演示:
- 前端:https://vue3-antdv-admin.pages.dev
- 接口:https://nest-admin-api.pages.dev
- Swagger:https://nest-admin-api.pages.dev/api-docs/
前端配合上面的接口使用。演示环境账号见下方表格。
项目启动前的准备工作
- sql 文件:/deploy/sql/nest_admin.sql 用于数据库初始化
- 项目相关配置,如:配置 mysql 和 redis 连接
- 公共配置: .env
- 开发环境模板: .env.development.example
- 生产环境模板: .env.production.example
.env.development 与 .env.production 已加入 .gitignore,不会再随仓库分发密钥。首次启动前复制模板并填写密钥:
cp .env.development.example .env.development
cp .env.production.example .env.production
openssl rand -base64 48 # JWT_SECRET
openssl rand -base64 48 # REFRESH_TOKEN_SECRET
JWT_SECRET 和 REFRESH_TOKEN_SECRET 必须各自设置为至少 32 位的随机字符串。缺失、为空、短于 32 位,或仍使用已知占位值时,进程会拒绝启动。已经部署过的环境在升级后必须轮换这两个密钥,并重新拉取或构建镜像;旧的登录令牌会因此失效。仓库历史里出现过的 SMTP 授权码也应在邮件服务商处作废。
接口权限使用数据库里的当前角色,不信任 JWT 中的 roles。未写入 user_access_tokens 的令牌会被拒绝。仍保存在该表中的已签发令牌,在过期、退出登录或密钥轮换之前继续有效。
环境要求
nodejs20+docker20.x+ ,其中docker compose版本需要2.17.0+mysql8.x+- 使用
pnpm包管理器安装项目依赖
演示环境账号密码:
| 账号 | 密码 | 权限 |
|---|---|---|
| admin | a123456 | 超级管理员 |
公开演示请设置 DEMO_MODE=true(IS_DEMO=true 同样会锁定该账号)。开启后不能修改内置管理员 admin(用户 id 为 1)的用户名或密码,也不能禁用或删除该账号,接口返回「演示环境不允许修改管理员账号或密码」。其它账号仍按原逻辑处理。变量未设置或为 false / 0 时不做这层限制。IS_DEMO=true 还会拒绝除 GET 和登录以外的写请求。
所有新建的用户初始密码都为 a123456
本地部署账号密码:
| 账号 | 密码 | 权限 |
|---|---|---|
| admin | a123456 | 超级管理员 |
快速体验
先按上一节复制 .env.production 并写入足够长的 JWT_SECRET / REFRESH_TOKEN_SECRET。未配置密钥时服务会启动失败。
启动成功后,通过 http://localhost:7001/api-docs/ 访问。
只构建后端镜像时,在仓库根目录执行。PROJECT_DIR 默认为 /nest-admin,不需要额外的 build-arg。要改安装路径时再加上 --build-arg PROJECT_DIR=/your-path。docker compose 构建时仍从 .env 读取 PROJECT_DIR。
docker build -t web-api .
镜像启动时会等待 DB_HOST(默认 mysql)的 ${DB_PORT:-3306},再执行迁移并交给 pm2-runtime。生产镜像不包含 devDependency cross-env,因此迁移直接调用 typeorm CLI,而不是 pnpm migration:run。JWT_SECRET 和 REFRESH_TOKEN_SECRET 需要在运行时注入,不要写进镜像。
pnpm docker:up
# or
docker compose --env-file .env --env-file .env.production up -d --no-build
停止并删除所有容器
pnpm docker:down
# or
docker compose --env-file .env --env-file .env.production down
删除镜像
pnpm docker:rmi
# or
docker rmi buqiyuan/nest-admin-server:stable
查看实时日志输出
pnpm docker:logs
# or
docker compose --env-file .env --env-file .env.production logs -f
本地开发
- 获取项目代码
git clone https://github.com/buqiyuan/nest-admin
- 【可选】如果你是新手,还不太会搭建
mysql/redis,你可以使用Docker启动指定服务供本地开发时使用, 例如(需先复制并填写.env.development):
# 启动MySql服务
docker compose --env-file .env --env-file .env.development run -d --service-ports mysql
# 启动Redis服务
docker compose --env-file .env --env-file .env.development run -d --service-ports redis
- 安装依赖
cd nest-admin
pnpm install
- 运行 启动成功后,通过 http://localhost:7001/api-docs/ 访问。
pnpm dev
- 打包
pnpm build
数据库迁移
- 更新数据库(或初始化数据)
pnpm migration:run
- 生成迁移
pnpm migration:generate
- 回滚到最后一次更新
pnpm migration:revert
更多细节,请移步至官方文档
[!TIP] 如果你的
实体类或数据库配置有更新,请执行npm run build后再进行数据库迁移相关操作。
系统截图




欢迎 Star && PR
如果项目有帮助到你可以点个 Star 支持下。有更好的实现欢迎 PR。
致谢
LICENSE
Explorer des projets similaires
Asabeneh/30-Days-Of-Python
Le défi de programmation 30 Days of Python est un guide pas à pas pour apprendre le langage de programmation Python en 30 jours. Ce défi peut prendre plus de 100 jours. Avancez à votre rythme. Ces vidéos peuvent aussi vous aider : https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,560 étoilesgrafana/grafana
Plateforme ouverte et composable d’observabilité et de visualisation de données. Visualise les métriques, les journaux et les traces issus de plusieurs sources, comme Prometheus, Loki, Elasticsearch, InfluxDB, Postgres et bien d’autres.
77,830 étoilesredis/redis
Pour les développeurs qui créent des applications en temps réel pilotées par les données, Redis est le cache, le serveur de structures de données et le moteur de requêtes documentaires et vectorielles préféré, le plus rapide et le plus riche en fonctionnalités.
77,395 étoilesapache/superset
Apache Superset est une plateforme de visualisation et d'exploration de données.
75,473 étoiles