地址: 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 之一
根据你的操作系统和指令集下载对应的安装包
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 日
死了?
|