NeighborBBS 是一款论坛项目,后端基于 Go 编写,前端基于 Vue 框架编写,前端页面参考了小码哥编写的bbs-go,是本人的练手项目之一,适合用来学习和使用。
- 注册/登陆模块(用户名或邮箱登陆)
- 设置昵称、邮箱、用户名
- 发表动态、文章
- 评论系统
- 动态/文章的点赞
- 支持浏览器 token 记住登录
- 支持文章或评论流式获取
- 支持 markdown 语法发表文章或评论
- 用户资料编辑
- 站内信
- 文章标签管理
- 后端:整体使用 golang 编写,用 Gin 框架搭建 API 部分
- 包管理:go-mod
- 配置文件:使用 viper 实现的 yaml 格式的配置文件
- 日志:基于 zap 实现的日志系统
- 数据库:使用 mysql-5.7,采用 gorm 库来操作数据库
- 前端:基于 Vue.js 编写,使用 Nuxt.js 快速构建和渲染前端
.
├── LICENSE
├── api (API文件夹)
├── bbs.yaml (配置文件)
├── build.sh (构建脚本,构建可在linux上运行的二进制文件)
├── config (配置包)
├── logs (日志包)
├── main.go (main函数)
├── middleware (中间件)
├── model (结构体)
├── nbbs.service (linux服务配置文件)
├── repository (数据库层)
├── service (服务层)
├── util (通用工具)
├── site (前端)
│ ├── Dockerfile (docker文件)
│ ├── app.html (app)
│ ├── assets (静态文件)
│ ├── common (通用工具)
│ ├── components (通用组件)
│ ├── jsconfig.json (配置)
│ ├── layouts (布局)
│ ├── middleware (中间件)
│ ├── nuxt.config.js (nuxt配置)
│ ├── pages (页面组件)
│ ├── plugins (插件)
│ ├── start.sh (运行脚本)
│ ├── static (静态文件)
│ ├── store (vuex状态管理仓)
│ └── utils (通用工具)
git clone https://github.com/mlogclub/mlog.git
在 mysql 中创建好 database,在步骤 3 中填入 database 的信息,无需创建数据表
示例:
ceate database neighborbbs;
修改 bbs.yaml 文件,配置 mysql、服务端口、日志等信息
示例:
mysql:
host: 127.0.0.1
port: 3306
username: root
password: 123456
dbname: neighborbbs
如果没有 go 环境,请先安装和配置 go 环境
go mod download
方式一
go run main.go
方式二
go build #编译项目
./NeighborBBS #执行二进制
方式三
./build.sh #编译成linux可执行文件
#上传到linux服务器运行
如果没有 npm 环境,请先安装 npm 环境
cd site
npm install
npm run dev