buqiyuan/nest-admin
buqiyuan/nest-admin has 2,282 GitHub stars and 521 forks. GitHot measured +1 stars in 24 hours. Last checked 2026-11-08 21:13 UTC. Last push 2026-11-02.
So werden diese Zahlen gemessen
NestJS CRUD for RESTful API 使用 NestJS + Mysql + Typeorm + Redis + JWT + Swagger 企业中后台管理系统项目RBAC权限管理(细粒度到按钮)、实现单点登录等...
Gemessener Sternzuwachs
- in 24h
- +1
- in 7 days
- Aktualisierung verzögert
- in 15 days
- Aktualisierung verzögert
- in 1 month
- Aktualisierung verzögert
Nettoänderungen in überlappenden Zeiträumen, keine Tagessummen. Fehlende Messwerte bleiben leer. Sterne zeigen Interesse, nicht Qualität.
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
Ähnliche Projekte entdecken
Asabeneh/30-Days-Of-Python
Die Programmier-Challenge 30 Days of Python ist eine Schritt-für-Schritt-Anleitung, um die Programmiersprache Python in 30 Tagen zu lernen. Diese Challenge kann mehr als 100 Tage dauern. Gehe in deinem eigenen Tempo vor. Diese Videos können ebenfalls helfen: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,423 Sternegrafana/grafana
Offene und kombinierbare Plattform für Observability und Datenvisualisierung. Visualisiert Metriken, Logs und Traces aus mehreren Quellen wie Prometheus, Loki, Elasticsearch, InfluxDB, Postgres und vielen weiteren.
77,763 Sterneredis/redis
Für Entwickler, die echtzeitfähige, datengesteuerte Anwendungen erstellen, ist Redis der bevorzugte, schnellste und funktionsreichste Cache, Datenstrukturserver und die entsprechende Abfrageengine für Dokumente und Vektoren.
77,309 Sterneapache/superset
Apache Superset ist eine Plattform für Datenvisualisierung und Datenexploration.
75,453 Sterne