分享 nextjs + nestjs + MySQL 开发的博客系统

最近疫情比较紧张,在家调休,闲着无聊便写了个前后端分离,服务端渲染的博客系统。支持特性:

使用技术:react.js typescript nextjs nestjs mysql。 GitHub 地址:https://github.com/fantasticit/wipi (欢迎 star)。

线上预览

前台页面

地址:https://blog.wipi.tech/

后台页面

地址:https://admin.blog.wipi.tech/ (也可以使用账户:wipi,密码:wipi123456)。

登录页面 后台首页 文章管理 页面管理

(账户:wipi,密码:wipi123456)。

本地启动

git clone --depth=1 https://github.com/fantasticit/wipi.git your-project-name

首先安装 MySQL,推荐使用 docker 进行安装。

docker run -d --restart=always --name wipi-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql

然后安装项目 node 依赖。

cd client && yarn
cd server && yarn

分别启动前台页面和服务端。

cd client && yarn dev
cd server && yarn start:dev

打开浏览器,访问 http://localhost:3000 即可访问前台页面,http://localhost:3000/admin 为后台管理页面。

服务端接口运行在 http://localhost:4000

首次启动,默认创建管理员用户:admin,密码:admin(可在 server/src/config 文件中进行修改)。

[PS] 如服务端配置启动失败,请先确认 MySQL 的配置是否正确,配置文件在 server/src/config

项目部署

在服务器使用 pm2 进行部署即可,可以查看 deploy.sh 文件。

搜索服务

该项目使用了 MySQL 模糊查询提供搜索接口。如果服务器配置较高,或想体验更强大的搜索服务(elasticsearch),可以参考 elasticsearch 文件下 deploy.sh 文件。

最后说一句:

  1. 首页:https://blog.wipi.tech/
  2. 后台:https://admin.blog.wipi.tech/
  3. 源码:https://github.com/fantasticit/wipi (欢迎 star)