重要更新
2021.9.22 完成V0.0.1基本数据展示
介绍
gin+vue 全栈制作一个博客。
这是一个分享全栈制作过程的项目,旨在为有兴趣接触 golang web 开发的朋友分享一些制作经验。
目录结构
├─ .gitignore │ go.mod // 项目依赖 │ go.sum │ latest_log.log #最新log日志软连接 │ LICENSE │ main.go //主程序 │ README.md │ tree.txt │ ├─api ├─config // 项目配置入口 ├─database // 数据库备份文件(初始化) ├─log // 项目日志 ├─middleware // 中间件 ├─model // 数据模型层 ├─routes │ router.go // 路由入口 ├─static // 打包静态文件 │ ├─admin // 后台管理页面 │ └─front // 前端展示页面 ├─upload ├─utils // 项目公用工具库 │ │ setting.go │ ├─errmsg │ └─validator └─web // 前端开发源码(VUECLI项目源文件) ├─admin ( 打包静态文件在web/admin/dist下 ) └─front (打包静态文件在web/front/dist下)
front 后期我会用flutter重写
运行&&部署
- 克隆项目
git clone https://gitee.com/itmxs/gin-vue-blog.git
- 转到下面文件夹下
cd yourPath/gin-vue-blog - 安装依赖
go mod tidy
- 初始化项目配置config.ini
./config/config.ini [server] AppMode = debug # debug 开发模式,release 生产模式 HttpPort = :3000 # 项目端口 JwtKey = 89js82js72 #JWT密钥,随机字符串即可 [database] Db = mysql #数据库类型,不能变更为其他形式 DbHost = 127.0.0.1 # 数据库地址 DbPort = 3306 # 数据库端口 DbUser = ginblog # 数据库用户名 DbPassWord = admin123 # 数据库用户密码 DbName = ginblog # 数据库名 [qiniu] # 七牛储存信息 AccessKey = # AK SecretKey = # SK Bucket = QiniuSever =
在database中将sql文件导入数据库
推荐navicat或者其他sql管理工具导入
- 启动项目
go run main.go
此时,项目启动,你可以访问页面
首页 http://localhost:8080 后台管理页面 http://localhost:8080/admin 默认管理员:admin 密码:123456
enjoy~~~~
使用、二开过程中,发现问题或者有功能需求欢迎提交 Iusse 或者直接 PR
实现功能
简单的用户管理权限设置
用户密码加密存储
文章分类自定义
列表分页
图片上传七牛云 (开源中已剔除)
JWT 认证
自定义日志功能
跨域 cors 设置
技术栈
golang
Gin web framework
gorm(v1 && v2)
jwt-go
scrypt
logrus
gin-contrib/cors
go-playground/validator/v10
go-ini
前端
vue
vue cli
vue router
ant design vue
vuetify
axios
tinymce
moment
MySQL version:8.0.21
flutter
dio
getx
项目预览
前端展示页面
后台登录页面
后台管理页面
部署
Windows平台打包到Linux,需要输入如下命令
set CGO_ENABLED=0 set GOOS=linux set GOARCH=amd64 go build
CGO_ENABLED 表示不使用cgo
GOOS 表示目标平台系统(Windows,linux,darwin「mac os」等等)
GOARCH 表示目标系统架构(arm arm64 386 amd64 等等)
打包完成后,将二进制文件放到服务器系统,赋可执行权限:
chmod 773 main
直接运行即可:
./main