Skip to content

wangsongyan/wblog

Repository files navigation

wblog

示例地址

一、初衷

作为一名web开发程序员居然没有自己的博客,都不好意思对外宣称自己的开发web的。 以前也有写博客的习惯,但是都是用的现有的博客网站。

二、技术选型

  1. web:gin
  2. orm:gorm
  3. database:SQLite/MySQL
  4. 文件存储:smms图床/七牛云存储
  5. 配置文件 go-toml

三、项目结构

-wblog
    |-conf 配置文件目录
    |-controllers 控制器目录
    |-helpders 公共方法目录
    |-models 数据库访问目录
    |-static 静态资源目录
        |-css css文件目录
        |-images 图片目录
        |-js js文件目录
        |-libs js类库
    |-system 系统配置文件加载目录
    |-tests 测试目录
    |-views 模板文件目录
    |-main.go 程序执行入口

四、TODO

  • 文章、页面访问统计
  • Github登录发表评论
  • RSS
  • 定时备份系统数据
  • 邮箱订阅功能
  • 云存储切换
  • 支持MySQL数据库
  • 导航栏配置
  • 系统日志
  • 网站统计

五、运行项目

git clone https://github.com/wangsongyan/wblog
cd wblog
go mod tidy
go run main.go

六、项目发布

  1. 本地发布
    • 下载安装goreleaser
    • 执行命令goreleaser release --snapshot --clean
  2. Github Actions
    git tag "v0.0.2"
    git push origin v0.0.2
  3. 部署文件清单
    • conf #配置文件目录
    • static #静态资源目录
    • views #模板目录
    • wblog #可执行文件

七、使用方法

使用说明

  1. 执行go run main.go -g或编译后执行wblog -g生成示例配置文件conf/conf.sample.toml (示例配置文件均为系统默认配置,可全部删除仅保留自己所需配置)
  2. 修改conf.toml,设置signup_enabled = true
  3. 访问http://xxx.xxx/signup 注册管理员账号
  4. 修改conf.toml,设置signup_enabled = false

注意事项

  1. 图床切换(需开启对应图床配置
    file_server = "smms"
    #file_server = "qiniu"
  2. 如果需要保存图片到七牛云,请自行申请七牛云存储空间,并修改配置文件填写
    [qiniu]
    enabled = true
    accesskey = 'AK'
    secretkey = 'SK'
    fileserver = '自定义域名,例如https://example.com'
    bucket = 'wblog'
  3. 如果需要保存图片到sm.ms图床,请自行注册账号并获取APIKey,并修改配置文件
    [smms]
    enabled = true
    apikey = '' 
  4. 如果需要github登录评论功能请自行注册github oauthapp,并修改配置文件填写
    [github]
    enabled = true
    clientid = ''
    clientsecret = ''
    redirecturl = 'https://example.com/oauth2callback'
  5. 如果需要使用邮件订阅功能,请自行填写
    [smtp]
    enabled = true
    username = '用户名'
    password = '密码'
    host = 'smtp.163.com:25'
  6. GoLand运行时,修改Run/Debug Configurations > Output Directory选择到项目根目录,否则报模板目录找不到
  7. 数据库切换,使用MySQL数据库时,请先创建wblog数据库(数据库名自便,与配置文件一致即可)
    [database]
    dialect = 'sqlite'
    dsn = 'wblog.db?_loc=Asia/Shanghai'
    #dialect = 'mysql'
    #dsn = 'root:mysql@/wblog?charset=utf8&parseTime=True&loc=Asia%2FShanghai'

八、效果图

file

file

file

九、捐赠

如果项目对您有帮助,打赏个鸡腿吃呗!