{"id":17645381,"url":"https://github.com/tmnhs/gin-blog","last_synced_at":"2025-05-07T05:05:29.553Z","repository":{"id":44766288,"uuid":"412121796","full_name":"tmnhs/gin-blog","owner":"tmnhs","description":"go语言，gin和gorm框架，vue，前后端分离的博客项目，适合初学者学习go后端","archived":false,"fork":false,"pushed_at":"2022-10-24T02:57:48.000Z","size":11468,"stargazers_count":26,"open_issues_count":0,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-07T05:05:23.890Z","etag":null,"topics":["docker","gin","go","goland","golang","mysqli","redis","shell-script","vue"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tmnhs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-09-30T15:34:15.000Z","updated_at":"2025-03-09T15:03:57.000Z","dependencies_parsed_at":"2023-01-20T06:00:13.912Z","dependency_job_id":null,"html_url":"https://github.com/tmnhs/gin-blog","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmnhs%2Fgin-blog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmnhs%2Fgin-blog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmnhs%2Fgin-blog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmnhs%2Fgin-blog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tmnhs","download_url":"https://codeload.github.com/tmnhs/gin-blog/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252817010,"owners_count":21808705,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","gin","go","goland","golang","mysqli","redis","shell-script","vue"],"created_at":"2024-10-23T10:55:54.246Z","updated_at":"2025-05-07T05:05:29.535Z","avatar_url":"https://github.com/tmnhs.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"## 这是一个用gin框架和vue框架搭建一个简易博客前台展示和后台管理系统\n\n### 博客前台展示页面\n\n\u003cdiv align=center\u003e\n\u003cimg src=\"http://tmnhs.top/Fs6or1nh7sHFHAWCGFJnIg_a0zQ1\" width=“100%” /\u003e\n\u003c/div\u003e\n\n### 博客后台管理页面\n\u003cdiv align=center\u003e\n\u003cimg src=\"http://tmnhs.top/FvtitX9vqMyYNDHaYpgH7dq8vg46\" width=“100%” /\u003e\n\u003c/div\u003e\n\n### 一.技术选型\n-前端：用基于vue的``ant design vue``构建后台管理页面和基于vue的``vuetify``构建前台展示页面。\n\n-后端：用``Gin``快速搭建基础restful风格API，Gin是一个go语言编写的Web框架。\n\n-数据库：采用``MySql``，使用gorm实现对数据库的基本操作。\n\n-缓存：使用``Redis``实现记录缓存。\n\n-日志：使用``logrus``实现日志记录。\n\n### 二.项目结构\n\n```shell\n├── api\n│       └── v1\n├── config\n├── middleware\n├── model\n├── proto\n├── routes\n├── static\n│       └── admin\n│       └── front\n└── utils\n|       └── errmsg\n|       └── validator\n├── web\n│       └── admin\n│       └── front\n```\n| 文件夹           | 说明        | 描述               |\n| ------------- | --------- | ---------------- |\n| `api`         | api层      | api层             |\n| `--v1`        | v1版本接口    | v1版本接口           |\n| `config`      | 配置包       | 配置文件             |\n| `middleware`  | 中间件层      | 用于存放 `gin` 中间件代码 |\n| `model`       | 模型层       | 模型对应数据表和数据库查询    |\n| `routes`      | 路由层       | 路由层              |\n| `resource`    | 静态资源文件夹   | 负责存放静态文件         |\n| `--admin`     | admin     | 后台管理dist文件打包     |\n| `--front`     | front     | 前台展示dist文件打包     |\n| `utils`       | 工具包       | 工具函数封装           |\n| `--errmsg`    | errmsg    | 错误信息的封装          |\n| `--validator` | validator | 后端数据校验           |\n| `web`         | web       | 前端代码             |\n| `--admin`     | admin     | 后台管理的前端代码        |\n| `--front`     | front     | 前台展示的前端代码        |\n\n###  三.使用说明\n\n1-需要把config/config.ini里的文件配置(特别是数据库mysql的配置)修改成自己需要的配置，本项目使用七牛云对象存储上传的文件，你可以自己在七牛云注册一个账号，可以免费获赠10G的存储空间\n\n2-本项目可以直接在windows上运行，建议使用goland，可以将blog.sql导入数据库中，初始登录用户为admin,密码为123456\n\n3-[前台展示]（http://localhost:8080/front）和 [后台管理] (http://localhost:8080/admin) 的切换需要修改routes/router.go,打开相关注释即可\n\n4-如果需要修改前端部分，可以修改web下的文件，修改完后运行`npm run build`，把dist文件覆盖掉static里的文件\n\n5-本项目是前后端分离项目，可以注释掉routes/router.go中加载静态资源的代码，把后端代码运行起来，然后在web/admin(或者web/front)目录下，运行`npm run serve`即可\n\n###  四.部署项目（Linux系统下）\n\n方式一：使用dockerfile部署(确保服务器上有下载docker)\n\n```shell\n#克隆项目\ngit clone git@github.com:tmnhs/gin-blog.git\n#在gin-blog目录下\ncd gin-blog\n#docker编译镜像\ndocker build -t myblog .\n#运行docker\ndocker run -p 8080:8080 -t --name myblog myblog\n#注意此时的数据库配置应该改为服务器上的配置\n```\n\n方式二：使用脚本部署\n\n```shell\n#克隆项目\ngit clone git@github.com:tmnhs/gin-blog.git\n#在gin-blog目录下\ncd gin-blog\n#必须在linux系统下\n#启动项目\n./serve.sh start\n#暂停项目\n./serve.sh stop\n#重启服务\n./serve.sh restart\n#注意，脚本运行的端口号必须大于1024，不然可能会没有权限\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmnhs%2Fgin-blog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftmnhs%2Fgin-blog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmnhs%2Fgin-blog/lists"}