a fast blog system in golang
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
conf nginx config: use Expect-CT repleace HPKP Jul 17, 2018
docs Set theme jekyll-theme-cayman May 2, 2018
setting 添加 disqus thread 创建接口 Jan 12, 2018
static update vendor and use single static Jul 8, 2017
views change admin avatar.jpg->avatar.png & fix duplicate id in html Sep 18, 2018
.dockerignore fix and update config Jul 8, 2017
.gitignore update vendor and use single static Jul 8, 2017
.travis.yml use go1.11 with go mod Aug 25, 2018
CHANGELOG.md update May 7, 2018
Dockerfile update Nov 27, 2017
LICENSE update Jun 24, 2017
Makefile let's encrypt v2 embedded ct,rm about cert's ct May 7, 2018
README.md Update README.md May 17, 2018
api.go fixed #6,发布文章异步提交,随机 session key等 Feb 9, 2018
back.go fix page:admin/write-post autocomplete tag Nov 29, 2017
check.go add comments Aug 8, 2017
check_test.go update vendor and use single static Jul 8, 2017
db.go fix modify blogroll.html and about.html archived in archive.html Jul 17, 2018
db_test.go update Apr 28, 2017
disqus.go 添加 disqus thread 创建接口 Jan 12, 2018
disqus_test.go 添加 disqus thread 创建接口 Jan 12, 2018
dist.sh fix sh Dec 24, 2016
docker-compose.yml fixed #6,发布文章异步提交,随机 session key等 Feb 9, 2018
elasticsearch.go fixed #6,发布文章异步提交,随机 session key等 Feb 9, 2018
elasticsearch_test.go add kodo Nov 1, 2016
front.go fixed #6,发布文章异步提交,随机 session key等 Feb 9, 2018
go.mod use go1.11 with go mod Aug 25, 2018
go.sum use go1.11 with go mod Aug 25, 2018
helper.go fix comments duration May 7, 2018
helper_test.go fix comments duration May 7, 2018
main.go update Oct 1, 2016
model.go fix disqus bug Jun 11, 2017
ping.go adjust the code Jan 13, 2018
ping_test.go fix mod date panic Oct 19, 2017
qiniu.go adjust the code Jan 13, 2018
qiniu_test.go add comments Aug 8, 2017
router.go fixed #6,发布文章异步提交,随机 session key等 Feb 9, 2018
xml.go fix doSitemap bug Jul 6, 2018

README.md

EiBlog Build Status License Versuib

系统根据https://imququ.com一系列文章和方向进行搭建,期间获得了QuQu的很大帮助,在此表示感谢。

用过其它博客系统,不喜欢,不够轻,不够快!自己做过共两款博客系统,完美主义的我(毕竟处女座)也实在是不想再在这件事情上过多纠结了。Eiblog 应该是一个比较稳定的博客系统,且是博主以后使用的博客系统,稳定性和维护你是不用担心的,唯独该系统部署过程太过复杂,并且不推荐没有计算机知识的朋友搭建,欢迎咨询。该博客的个中优点(明显快,安全),等你体验。

介绍

整个博客系统涉及到模块如下:

  • 自动更新证书:
    • 接入 acme/autocert,在 TLS 层开启全自动更新证书,从此证书的更新再也不用惦记了,不过 Go 的 HTTPS 兼容性不够好(不想兼容),在如部分 IE 和 UC 之类的浏览器不能访问,请悉知。
    • 如果你采用如 Nginx 代理,推荐使用 acme.sh 实现证书的自动部署。博主实现 aliyun dns 的自动验证方式,详见 Makefile/gencert
  • MongoDB,博客采用 mongodb 作为存储数据库。
  • Elasticsearch,采用 elasticsearch 作为博客的站内搜索,尽管占用内存稍高。
  • Disqus,作为博客评论系统,国内大部分被墙,故实现两种评论方式。
  • Nginx,作为反向代理服务器,并做相关 http header 和证书的设置。
  • Google Analytics,作为博客系统的数据分析统计工具。
  • 七牛 CDN,作为博客系统的静态文件存储,博文的图片附件什么上传至这里。

图片展示

可以容易的看到 httpsecurityreport 评分96ssllabs 评分A+myssl 评分A+,堪称完美。这些安全的相关配置会在后面的部署过程中接触到。

相关图片展示: show-home

show-home2

show-admin

eiblog-mem

:图片1,图片2是博客界面,图片3是后台界面,图片4是性能展示。

极速体验

  1. 这里 下载对应平台 .tar.gz 文件。

  2. 搭建 MongoDB(必须)和 Elasticsearch(可选)服务,正式部署需要。

  3. 修改 /etc/hosts 文件,添加 MongoDB 数据库 IP 地址,如:127.0.0.1 mongodb

  4. 执行 ./eiblog,运行博客系统。看到:

...
...
[GIN-debug] Listening and serving HTTP on :9000

代表运行成功了。

默认监听 HTTP 9000 端口,后台 /admin/login,默认账号密码均为 deepzz。更多详细请查阅 安装部署 文档。

特色功能

作为博主之心血之作,Eiblog 实现了什么功能,有什么特点,做了什么优化呢?

  1. 系统目前只有 首页专题归档友链关于搜索 界面。相信已经可以满足大部分用户的需求。
  2. .js.css 等静态文件本地存储,小图片 base64 内置到 css 中,不会产生网络所带来的延迟,加速网页访问。版本控制方式,动态更新静态文件。
  3. 采用谷歌统计,并实现异步(将访问信息发给后端,后端提交给谷歌)统计,加速访问速度。
  4. 采用直接缓存 markdown 转过的 html 文档的方式,加速后端处理。响应速度均在 3ms 以内,真正极速。
  5. 通过 Nginx 的配置,开启压缩缩小传输量,服务器传输证书链、开启 Session ResumptionSession TicketOCSP Stapling等加速证书握手,再次提高速度。
  • CDN,使用七牛融合CDN,并 https 化,实现全站 https。七牛可申请免费证书了。
  • CT,证书透明度检测,提供一个开放的审计和监控系统。可以让任何域名所有者或者 CA 确定证书是否被错误签发或者被恶意使用,从而提高 HTTPS 网站的安全性。
  • OSCP,在线证书状态协议。用来检验证书合法性的在线查询服务.
  • HSTS,强制客户端(如浏览器)使用 HTTPS 与服务器创建连接。可以很好的解决 HTTPS 降级攻击。  * HPKP,HTTP 公钥固定扩展,防范由「伪造或不正当手段获得网站证书」造成的中间人攻击。该功能让我们选择信任哪些CA。请不要轻易尝试 Nginx 线上运行,因为该配置目前只指定了 Letsencrypt X3 和 TrustAsia G5 证书 pin-sha256。  * SSL Protocols,罗列支持的 TLS 协议,SSLv3 被证实是不安全的。
  • SSL dhparam,迪菲赫尔曼密钥交换。
  • Cipher suite,罗列服务器支持加密套件。
  1. 文章评论数量(不重要)后端跑定时脚本,定时更新,所以有时评论数是不对的。这样减少了 api 调用,又再次达到加速访问的目的。
  2. 针对 disqus 被墙原因,实现 Jerry Qu 的另类评论方式,保证评论的流畅。
  3. 开源 Typecho 完整后台系统,全功能 markdown 编辑器,让你体验什么是简洁清爽。
  4. 博客后台直接对接 七牛 SDK,实现后台上传文件和删除文件的简单功能。
  5. 采用 elasticsearch 作为站内搜索,添加 google opensearch 功能,搜索更加自然。
  6. 自动备份数据库数据到七牛云。

文档

成功搭建者博客

如果你的博客使用Eiblog搭建,你可以在 这里 提交网址。