Skip to content
/ goblog Public
forked from xuchenqqq/goblog

beego框架开发的博客,采用mongodb数据库,markdown编辑文章,集成评论、友情链接,云标签功能,带后台管理、站长验证、feed、sitemap,提供邮件报错,静态文件七牛云存储,广告(暂未实现)。我的博客:

Notifications You must be signed in to change notification settings

changyl/goblog

 
 

Repository files navigation

Goblog

Goblog 是基于beego框架开发的博客系统。主张简约、简单、轻量。数据存储mongodb,cdn推荐七牛,多功能后台,可docker部署。

关于版本

bee   :1.4.1
beego :1.6.1
Go    :go version go1.6.2 darwin/amd64

获取项目

go get -u github.com/deepzz0/goblog

部署步骤

Mac OS X

######安装mongodb数据库

brew install mongodb

若没有brew,可自行百度谷歌,安装。

配置mongod

mongodb默认读取环境变量MGO,追加export MGO="127.0.0.1"~/.bash_profile末尾。如果没有该文件可手动创建。

echo 'export MGO="127.0.0.1"' >> .bash_profile
修改配置

所有配置文件均在项目目录下的conf下。

  1. app.conf,这里是beego框架的配置文件,采用ini配置方式,如果你了解过beego,应该能看懂。beego框架地址:http://beego.me . runmode选择你要运行的模式,对应下面的dev、prod、test。线上模式一般为prod,因为该模式不会输出beego的调试log。enablehttps开启https,依次是https监听端口,https相关证书(证书位置替换为自己的),http的监听端口(当然你也可以关掉http,enablehttp=false)。mydomain是生成feed需要的域名地址
appname = goblog
runmode = dev 

[dev]
httpport = 8080
# 用于生成feed
mydomain = 127.0.0.1:8080
[prod]
enablehttp = true
httpport = 80
enablehttps = false
httpsport = 443
httpscertfile = /certs/fullchain.pem
httpskeyfile = /certs/privkey.pem
# 用于生成feed等其它需要用到域名的地方
mydomain = deepzz.com
[test]
httpport = 8888
  1. 17monipdb.dat,该文件是后台解析ip地址的数据库,你可以查看www.ipip.net
  2. qiniu.conf,该文件存放了有关qiniu相关参数,如果没有请创建,暂时没有用到。
  3. backleft,该文件是后台相关菜单项,你可以进行删减,并实现对应的功能。
  4. backup,该文件夹存放的是账号相关,前台菜单项等相关配置。UserName是后台登陆用户名,PassWord登陆密码(这里填明文),数据库存储是加密过的,可以在后台进行修改。Salt这是加密的随机盐,由于是手动注册,请随便填写。HeadIcon头像图片,这个地址填图片链接地址.
{
    "UserName": "deepzz",
    "PassWord": "deepzz",
    "Email": "[email protected]",
    "Salt": "__(f",
    "Sex": "",
    "PNumber": 15100000000,
    "Address": "山西胡同",
    "Education": "本科",
    "RealName": "",
    "CreateTime": "2016-01-31T17:38:40.431+08:00",
    "LoginTime": "2016-01-31T17:38:40.431+08:00",
    "LoginIp": "127.0.0.1",
    "LogoutTime": "2016-01-31T17:38:40.431+08:00",
    "BlogName": "Deepzz",
    "Introduce": "程序路上一直坚持的小小码农。",
    "HeadIcon": "https://o7msui8ho.qnssl.com/img/headpic/headpic.jpg",
    "Tags": {},)"
}
  1. models/model.go修改默认用户,将deepzz替换成你的用户名。
	UMgr.loadUsers()
	Blogger = UMgr.Get("deepzz")
多说评论框架
<!-- 多说评论框 start -->
    <div class="ds-thread" data-order="desc" data-limit="20" data-form-position="top" data-thread-key="{{.ID}}" data-title="{{.Title}}" data-url="{{$.Domain}}/{{.URL}}"></div>
    <!-- 多说评论框 end -->
    <!-- 多说公共JS代码 start (一个网页只需插入一次) -->
    <script type="text/javascript">
      var duoshuoQuery = {short_name:"deepzz"};
      (function() {
        var ds = document.createElement('script');
        ds.type = 'text/javascript';ds.async = true;
        ds.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//static.duoshuo.com/embed.js';
        ds.charset = 'UTF-8';
        (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ds);
      })();
    </script>
    <!-- 多说公共JS代码 end -->

博客集成多说评论框架,你需要到多说官网获取的你网站的shot_name,将上面的deepzz替换掉。该代码段嵌到多个页面,你需要一一替换。由于多说多渠道登陆头像是基于http协议。固如果博客部署为https,将自动进行头像代理为https,实现全站https。

统计相关
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-77251712-1', 'auto');
  ga('send', 'pageview');

</script>

这里博主用了Google的数据统计,你可以将上面的代码替换成百度的统计代码等其它统计方式。在views/homelayout.html

插件相关

暂时做了一个小工具,以后其它工具都会写高该目录下controllers/plugin

  1. UserAgent Parser,基于GO的用户代理解析器。可以到domain:port/plugin/useragent.html访问。
其它说明

关于持久化,现阶段有sitemap.xml和feed.xml需要持久化,我把它们存放于/data/goblog目录下,自我测试时可能会报错,你可以随意指定该路径models/model.go中。

FeedFile     = "/data/goblog/feed.xml"
SiteFile     = "/data/goblog/sitemap.xml"

static目录下:

  1. feedTemplate.xml是生成feed.xml的模版,你可以通过访问domain:port/feed查看,每小时自动更新。
  2. robots.txt,网络爬虫排除协议。
  3. sitemap.xml,网站地图,用于搜索引擎快速收录,现只能通过后台手动配置,你也可以通过自己的方式处理。访问两种方式domain:port/sitemapdomain:port/sitemap.xml
  4. 邮件报错,models/modelinitlog.SetEmail(Blogger.Email),如果不开启请注释掉。

所有都配置完成,在根目录下运行bee run

基本页面

可以到我的博客http://blog.deepzz.com查看,https访问https://blog.deepzz.com,国外服务器网速稍慢。
前端页面 show 后台登陆 login 首页统计 analysis 博文修改 modify

About

beego框架开发的博客,采用mongodb数据库,markdown编辑文章,集成评论、友情链接,云标签功能,带后台管理、站长验证、feed、sitemap,提供邮件报错,静态文件七牛云存储,广告(暂未实现)。我的博客:

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 40.7%
  • HTML 38.3%
  • JavaScript 12.4%
  • CSS 8.3%
  • Shell 0.3%