一年时间,用 Golang 写了个一个博客系统

2022-11-06 10:01:34 +08:00
 1379M

📖 前言

地址: https://github.com/go-sonic/sonic

Sonic [ˈsɒnɪk] ,Sonic 是一个用 Golang 开发的博客平台。

这个项目是从去年夏天开始,断断续续写了一年,其中还因为工作的原因暂停了一段时间,现在终于写完了,尽管自己觉得有些地方仍然不是很完美,但是也完成了我当初的基本构想。

写这个项目的原因是我自己也是一名博主,喜欢写博客,用过 Wordpress 、typecho 、Hexo 、Hugo 等,但是总有一些不满意的地方

Halo 感觉非常不错,典型的 C/S 架构,很符合我这个后端程序员的口味。虽然 Java 是一种高性能的语言,但是缺点是占用内存较多,一些配置较低的主机并不符合要求,Go 的协程天然适合 Web 这种并发场景,并且内存占用极低。而且 Halo 自身也有些小缺陷,比如 For 循环查库,遂决定基于 Go 写一个高性能的博客框架

需要说明的是,Sonic 的灵感来自 Halo ,也借鉴了 Halo 很多优秀的设计,后台管理界面更是直接 Fork 自 Halo 。Sonic 未来的主要目标是快、轻量、优雅的代码,希望能成为 Golang web 的 best practice 之一

📖 预览

🚀 Features:

🧰 安装

下载对应平台的安装包

根据你的操作系统和指令集下载对应的安装包

wget https://github.com/go-sonic/sonic/releases/download/v1.0.0/sonic-linux-amd64.zip -O sonic.zip

解压

unzip sonic.zip

运行

可以通过 -config 选项来指定配置文件的位置

cd sonic
./sonic -config conf/config.yaml

然后你就可以通过浏览器访问 sonic 了,默认的端口是 8080

后台管理路径是 http://ip:port/admin

TODO

📄 License

Source code in sonic is available under the MIT License.

7220 次点击
所在节点    分享创造
57 条回复
BeijingBaby
2022-11-14 17:27:26 +08:00
已在最新一期的 dev.com.cn 开发者简报中推荐
1379M
2022-11-14 18:49:19 +08:00
@gniviliving 感谢使用。反馈问题可以到 github issue 中,需要附上具体的日志
1379M
2022-11-14 18:50:28 +08:00
@BeijingBaby Thanks !
kawei
2022-11-14 21:23:55 +08:00
https://github.com/go-sonic/theme-anatole/releases 里都没主题

原项目的命令都是错的
zjyl1994
2022-11-15 00:11:19 +08:00
@1379M 也可以考虑换一个 SQLite 实现 "github.com/glebarez/sqlite"
因为我写自己的项目时候也遇到了部署缺 GLIBC 的问题,换了个纯 go 的 sqlite 编译就省了 CGO 的大坑 :)
1379M
2022-11-15 10:47:23 +08:00
@zjyl1994 这个考虑过。但是不知道会不会遇到其他坑,毕竟这个相当于是新的数据库,有没有 SQL 兼容的问题呢,或者数据库层面的 bug 。另外性能如何
aegon466
2022-11-15 12:26:44 +08:00
@zjyl1994 我也遇到了这个问题 想问下直接编译就可以了吗
zjyl1994
2022-11-15 22:10:23 +08:00
@1379M 他的底层 DB 项目是 gitlab.com/cznic/sqlite 这个,原理是 SQLite C 代码 AST 级翻译到 Go ,我觉得兼容性不会有什么问题。个人来说使用 gorm sqlite driver 创建的数据库用这个打开然后操作都没问题。性能层面,他也有测 https://gitlab.com/cznic/sqlite/-/tree/master/benchmark
zjyl1994
2022-11-15 22:11:45 +08:00
zjyl1994
2022-11-15 22:14:21 +08:00
@1379M https://gorm.io/docs/connecting_to_the_database.html#SQLite 其实看 gorm 官方也写了这个库,应该不会太差,不过我只在自己项目里用过,你自己看啦。反正我是被 GLIBC 问题坑的要死要活的,现在根本不想碰 CGO
oldmanong
2022-11-18 11:12:10 +08:00
已 fork 并运行成功,整体感觉很不错。
几个问题:
* resource 里一个主题都没有,启动报错。手动下载了默认主题才能用
* readme 里没有对编译进行说明,我直接 build 的。建议做个 makefile ,如果有一些特别设置的话
1379M
2022-11-18 13:06:31 +08:00
@oldmanong 感谢,resource 里没有主题是因为主题是通过 git submodule 来获取的,后面我补充下
KENNHI
2022-12-04 21:13:48 +08:00
go 有 gc ,建议用 rust(
我还在用 WordPress 呢,主要是插件好用主题多😂
1379M
2022-12-05 11:25:46 +08:00
@KENNHI rust 确实很好,但是上手难度高,不利于社区生态。而且 gc 对于 web app 来说没有影响吧。
yyt6801
2022-12-06 02:00:52 +08:00
@welong 老哥,这个库貌似近期才开源 您之前有过了解是嘛?
welong
2022-12-07 14:09:12 +08:00
@yyt6801
wshn13
57 天前
你好,请问博客项目还在活跃开发吗? 我看到自从今年 2 月发布 1.14 后就没有再更新了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/893027

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX