开源免费Golang 博客源码–EiBlog

资源分享EiBlog,golang,博客源码

EiBlog是一个简单、轻快、安全的博客系统。使用简单(搭建复杂)的特点,不推荐没有计算机知识的朋友搭建。

GitHub:https://github.com/eiblog/eiblog

demo:https://deepzz.com/

详细介绍可以查看GitHub和作者博客。值得一提的是,博客速度很快,值得安装尝试下。

快速体验

以 mongodb 为例,更多支持的后端存储服务如下:

类型(driver)地址(source)示例
mongodbmongodb://localhost:27017
mysqluser:password@tcp(localhost:3306)/eiblog?charset=utf8mb4&parseTime=True&loc=Local
postgreshost=localhost port=5432 user=user password=password dbname=eiblog sslmode=disable
sqlite/path/eiblog.db
sqlserversqlserver://user:password@localhost:9930?database=eiblog
clickhousetcp://localhost:9000?database=eiblog&username=user&password=password&read_timeout=10&write_timeout=20

1、启动依赖服务,mongodb、elasticsearch:

$ docker run --name mongodb \
    -p 27017:27017 \
    -v ${PWD}/mgodb:/data/db \
    mongo:3.2

$ docker run --name elasticsearch \
    -p 9200:9200 \
    -v ${PWD}/esdata:/usr/share/elasticsearch/data \
    deepzz0/elasticsearch:2.4.1

2、下载压缩包,到 这里 下载 eiblog(非backup) 相应系统压缩包,然后解压缩。

3、修改配置,将数据库与ES地址修改为相应地址:

# 修改 conf/app.yml 数据库连接配置
database:
  driver: mongodb
  source: mongodb://localhost:27017

# 修改 conf/app.yml ES连接配置,如果不启用搜索功能可以置空
eshost: http://localhost:9200

4、启动服务:

./backend

然后访问 localhost:9000 就可以了,后台地址 localhost:9000/admin/login,默认账户密码 deepzz/deepzz。

功能特性

本着博客本质用来分享知识的特点,EiBlog 不会有较强的定制功能(包括主题,CDN支持等),仅保持常用简单页面与功能:

首页、专题、归档、友链、关于、搜索

功能说明

博客归档,利用时间线帮助我们将归纳博文,内容少于一年按月归档,大于则按年归档。
博客专题,有时候博文是同一系列,专题能够帮助我们很好归纳博文,对阅读者是非常友好的。
标签系统,每篇博文都可以打上不同标签,使得在归档和专题不满足的情况下自定义归档,这块辅助搜索简直完美。
搜索系统,依托ElasticSearch实现的站内搜索,速度与效率并存,再加上google opensearch,搜索只流畅。
管理后台,内嵌全功能 Typecho 后台系统,全功能 Markdown 编辑器让你感觉什么是简洁清爽。
谷歌统计,由于google api的速度问题,从而实现了后端API异步统计,使得博客页面加载飞速。
Disqus评论,国内评论系统不友好,因此选择disqus,又由于众所周知原因国内不能用,实现另类disqus评论方式。
多存储后端,支持mongodb、mysql、postgres、sqlite等存储后端。
七牛CDN,支持在 Markdown 编辑器直接上传附件,让你只考虑编辑内容,解放思想。
自动备份,支持多存储后端的备份功能,备份数据保存到七牛CDN上。


当然,为了让整个系统加载速度更快,还做了更多优化措施:

文章评论数量(不重要)通过后端跑定时任务获取,所以有时评论数量是不对的,这样减少了 API 调用。
整站内容全部内存缓存,mardown 文档全部转换为 html 进行缓存,减少了转换过程。
.js、.css 等静态文件浏览器本地存储,小图片 base64 内置到 css 中,二次访问不会产生网络带来的延迟,加速访问。通过版本控制更新。
最佳实践 nginx 配置,可以查看 eiblog.conf,开启压缩缩小传输量,服务器传输证书链、开启 Session Resumption、Session Ticket、OCSP Stapling 等加速证书握手,再次提高速度。

Posted by 柴郡猫