goblog 基于 Go 语言实现的 Markdown 博客系统
在线预览 | 项目介绍 | 技术介绍 | 目录结构 | 环境说明 | 快速开始 | 总结&鸣谢 | 后续计划 | 更新日志
在线预览
项目介绍
后台
- cookie 鉴权
- markdown 编辑器
- 文章管理:文章增删改查
- 页面管理:自定义 markdown 专题页面
- 分类管理:分类增删改查
- 标签管理:标签列表
前台
- 文章列表:倒序展示文章、可置顶
- 内容页面:markdown 内容展示
- 标签页面:按标签文章数量排序
- 关于页面:个人说明
- 阅读清单:个人阅读书籍
- 站内搜索:支持文章标题、描述、内容、分类、标签模糊搜索
技术介绍
目录结构
├── Makefile # 项目管理文件
├── conf # 配置文件统一存放目录
├── internal # 业务目录
│ ├── handler # http 接口
│ ├── pkg # 内部应用程序代码
│ └── routers # 业务路由
├── logs # 存放日志的目录
├── static # 存放静态文件的目录
├── tpl # 存放模板的目录
├── main.go # 项目入口文件
├── pkg # 公共的 package
├── tests # 单元测试
└── startup.sh # 启动脚本
环境说明
开发工具 |
说明 |
Vscode |
Golang 后端 + Javascript 前端 |
Navicat |
MySQL 远程连接工具 |
RDM |
Redis 远程连接工具 |
开发环境 |
版本 |
Golang |
1.17.13 |
MySQL |
5.7 |
Redis |
6.x |
开发规范
遵循: Uber Go 语言编码规范
快速开始
make命令
- make help 查看帮助
- make dep 下载 Go 依赖包
- make build 编译项目
- make tar 打包文件
部署流程
# 下载安装,可以不用是 GOPATH
git clone https://github.com/convee/goblog.git
# 进入到下载目录
cd goblog
# 生成环境配置文件
cd conf
# 修改 mysql、redis、elasticsearch 配置
# 导入初始化 sql 结构
mysql -u root -p
> create database blog;
> set names utf8mb4;
> use blog;
> source blog.sql;
# 下载依赖
make dep
# 编译
make build
# 后台运行
nohup ./goblog dev.yml &
[program:goblog]
directory = /data/modules/blog
command = /data/modules/blog/goblog -c conf/prod.yml
autostart = true
autorestart = true
startsecs = 5
user = root
redirect_stderr = true
stdout_logfile = /data/modules/blog/supervisor.log
http://localhost:9091
http://localhost:9091/admin
用户名:admin@convee.cn
密码:123456
总结鸣谢
该项目后端使用原生 Golang,前端使用 jQuery,代码风格简洁,注释完善,适合 Golang 初学者学习。这个过程中也参考了很多优秀的开源项目,感谢大家的开源让程序员的世界更加丰富。
后续计划
更新日志