
地址: https://github.com/go-sonic/sonic
Sonic [snk] ,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 之一
根据你的操作系统和指令集下载对应的安装包
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
Source code in sonic is available under the MIT License.
1 hytaoist 2022 年 11 月 6 日 |
2 line 2022 年 11 月 6 日 theme 没打包进去,报错了。 |
3 Donahue 2022 年 11 月 6 日 支持,之前不喜欢 halo 就是因为一个慢,另一个内存占用大,不喜欢 java. 我就在 arm 的软路由上部署,用 go 相信性能、内存、速度都快很多 |
4 welong 2022 年 11 月 6 日 sonic 不是字节开源的高性能 JSON 库吗 |
5 Asimov01 2022 年 11 月 6 日 Halo 用户表示支持!已 star ,希望能保持发展 |
7 1379M OP @Donahue 慢主要是各种 for 循环查库,打开文章详情页有几十条 SQL 被执行。当初还考虑过用 rust 写,但是在我尝试写了一个月后发现现在 Rust 的生态一言难尽。另外 Rust 较高的上手成本也对社区生态不好。Golang 足以 |
8 SenLief 2022 年 11 月 6 日 Star |
10 whitedroa 2022 年 11 月 6 日 |
11 gamexg 2022 年 11 月 6 日 |
12 whitedroa 2022 年 11 月 6 日 已 Star |
14 1379M OP @Acoffice 有的,你可以直接下载 release 中打包好的文件。如果你是自己编译,要先 init submodule 。另外,启动后,需要先访问 ip:port/admin/#install 来安装。 |
21 Acoffice 2022 年 11 月 7 日 @1379M #20 http://127.0.0.1:8080/themes/default-theme-anatole/dist/style.css?version=1.5.0-alpha.2 http://127.0.0.1:8080/themes/default-theme-anatole/dist/main.iife.js?version=1.5.0-alpha.2 这两个地址都加载不了 |
23 kennidiyuehan 2022 年 11 月 8 日 [root@VM-8-15-centos blog]# ./sonic -config conf/config.yaml ./sonic: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by ./sonic) |
24 1379M OP @kennidiyuehan 因为使用了 SQLite3 ,所以依赖 CGO ,实测 Debian 10 没有问题。建议你安装对应的依赖,或者更换到其他 Debian 系的 Linux ,毕竟 centos 都已经成了 Centos Stream 了 ,centos 上面的软件也都很老。另一种方法是你把 CGO 关了,自己编译一份,使用 MySQL |
25 chaodada 2022 年 11 月 8 日 不错很喜欢 准备再楼主基础上二开可好 |
28 chaodada 2022 年 11 月 9 日 @1379M 哈哈、一直都想自己做个博客、wp 、typecho 、很早之前刚学 go 的时候做过一个简单的、但是总觉得不够好、正好学习一下楼主的嘿嘿 |
29 stephenhero 2022 年 11 月 9 日 |
30 kingpo 2022 年 11 月 10 日 windows 怎么部署,没看明白 |
32 kingpo 2022 年 11 月 10 日 草稿的文章,点击会提示网络错误 |
33 kingpo 2022 年 11 月 10 日 支持一波,已 star |
34 lasko 2022 年 11 月 10 日 支持 已 star |
35 zhjgo 2022 年 11 月 10 日 支持 已 star ,刚好在学习 go 语言,下来学习学习 |
36 akring 2022 年 11 月 14 日 看着不错,Star 了,顺便一说,Logo 有兴趣换一个吗 |
38 gniviliving 2022 年 11 月 14 日 登录后台一直报 Internal Server Error 账号密码没问题,首页不能正常显示,日志没有输出任何信息 |
39 kingpo 2022 年 11 月 14 日 @gniviliving 那个命令行窗口不要关 |
40 gniviliving 2022 年 11 月 14 日 @kingpo 我是 nohup /xxx/sonic --config /xxx/conf/config.yaml &的形式在后台运行的,不关怎么后台运行 |
41 BeijingBaby 2022 年 11 月 14 日 已在最新一期的 dev.com.cn 开发者简报中推荐 |
42 1379M OP @gniviliving 感谢使用。反馈问题可以到 github issue 中,需要附上具体的日志 |
43 1379M OP @BeijingBaby Thanks ! |
44 kawei 2022 年 11 月 14 日 |
45 zjyl1994 2022 年 11 月 15 日 @1379M 也可以考虑换一个 SQLite 实现 "github.com/glebarez/sqlite" 因为我写自己的项目时候也遇到了部署缺 GLIBC 的问题,换了个纯 go 的 sqlite 编译就省了 CGO 的大坑 :) |
46 1379M OP @zjyl1994 这个考虑过。但是不知道会不会遇到其他坑,毕竟这个相当于是新的数据库,有没有 SQL 兼容的问题呢,或者数据库层面的 bug 。另外性能如何 |
48 zjyl1994 2022 年 11 月 15 日 @1379M 他的底层 DB 项目是 gitlab.com/cznic/sqlite 这个,原理是 SQLite C 代码 AST 级翻译到 Go ,我觉得兼容性不会有什么问题。个人来说使用 gorm sqlite driver 创建的数据库用这个打开然后操作都没问题。性能层面,他也有测 https://gitlab.com/cznic/sqlite/-/tree/master/benchmark |
49 zjyl1994 2022 年 11 月 15 日 |
50 zjyl1994 2022 年 11 月 15 日 @1379M https://gorm.io/docs/connecting_to_the_database.html#SQLite 其实看 gorm 官方也写了这个库,应该不会太差,不过我只在自己项目里用过,你自己看啦。反正我是被 GLIBC 问题坑的要死要活的,现在根本不想碰 CGO |
51 oldmanong 2022 年 11 月 18 日 已 fork 并运行成功,整体感觉很不错。 几个问题: * resource 里一个主题都没有,启动报错。手动下载了默认主题才能用 * readme 里没有对编译进行说明,我直接 build 的。建议做个 makefile ,如果有一些特别设置的话 |
53 KENNHI 2022 年 12 月 4 日 via Android go 有 gc ,建议用 rust( 我还在用 WordPress 呢,主要是插件好用主题多 |
57 wshn13 2024 年 9 月 29 日 你好,请问博客项目还在活跃开发吗? 我看到自从今年 2 月发布 1.14 后就没有再更新了 |
59 awanganddong 2025 年 8 月 14 日 专门拉下来 go mod tidy ,发现安装的依赖比我公司的项目依赖还多,对我而言太重了。 |
60 wshn13 2025 年 11 月 10 日 死了? |