地址: 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-06 11:19:29 +08:00 1
👍
|
2
line 2022-11-06 11:22:47 +08:00
theme 没打包进去,报错了。
|
3
Donahue 2022-11-06 11:58:04 +08:00 1
支持,之前不喜欢 halo 就是因为一个慢,另一个内存占用大,不喜欢 java.
我就在 arm 的软路由上部署,用 go 相信性能、内存、速度都快很多 |
4
welong 2022-11-06 12:47:03 +08:00
sonic 不是字节开源的高性能 JSON 库吗
|
5
Asimov01 2022-11-06 13:38:42 +08:00 1
Halo 用户表示支持!已 star ,希望能保持发展
|
7
1379M OP @Donahue 慢主要是各种 for 循环查库,打开文章详情页有几十条 SQL 被执行。当初还考虑过用 rust 写,但是在我尝试写了一个月后发现现在 Rust 的生态一言难尽。另外 Rust 较高的上手成本也对社区生态不好。Golang 足以
|
8
SenLief 2022-11-06 15:49:40 +08:00 1
Star
|
9
1379M OP @line 感谢反馈,现在应该可以了。原因是 Github 的 action 自动构建的时候没有 checkout submodule
|
10
whitedroa 2022-11-06 17:13:41 +08:00 1
👍
|
11
gamexg 2022-11-06 17:27:34 +08:00
|
12
whitedroa 2022-11-06 20:10:32 +08:00
已 Star
|
14
1379M OP @Acoffice 有的,你可以直接下载 release 中打包好的文件。如果你是自己编译,要先 init submodule 。另外,启动后,需要先访问 ip:port/admin/#install 来安装。
|
21
Acoffice 2022-11-07 23:41:54 +08:00
@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-08 11:07:59 +08:00
[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-08 17:52:20 +08:00
不错很喜欢 准备再楼主基础上二开可好
|
28
chaodada 2022-11-09 08:57:02 +08:00 1
@1379M 哈哈、一直都想自己做个博客、wp 、typecho 、很早之前刚学 go 的时候做过一个简单的、但是总觉得不够好、正好学习一下楼主的嘿嘿
|
29
stephenhero 2022-11-09 16:58:24 +08:00
|
30
kingpo 2022-11-10 14:33:58 +08:00
windows 怎么部署,没看明白
|
32
kingpo 2022-11-10 14:57:49 +08:00
草稿的文章,点击会提示网络错误
|
33
kingpo 2022-11-10 15:08:24 +08:00 1
支持一波,已 star
|
34
lasko 2022-11-10 17:23:55 +08:00 1
支持 已 star
|
35
zhjgo 2022-11-10 23:59:47 +08:00
支持 已 star ,刚好在学习 go 语言,下来学习学习
|
36
akring 2022-11-14 12:08:46 +08:00
看着不错,Star 了,顺便一说,Logo 有兴趣换一个吗
|
38
gniviliving 2022-11-14 14:44:29 +08:00
登录后台一直报 Internal Server Error
账号密码没问题,首页不能正常显示,日志没有输出任何信息 |
39
kingpo 2022-11-14 15:52:16 +08:00
@gniviliving 那个命令行窗口不要关
|
40
gniviliving 2022-11-14 16:07:45 +08:00
@kingpo 我是 nohup /xxx/sonic --config /xxx/conf/config.yaml &的形式在后台运行的,不关怎么后台运行
|
41
BeijingBaby 2022-11-14 17:27:26 +08:00 1
已在最新一期的 dev.com.cn 开发者简报中推荐
|
42
1379M OP @gniviliving 感谢使用。反馈问题可以到 github issue 中,需要附上具体的日志
|
43
1379M OP @BeijingBaby Thanks !
|
44
kawei 2022-11-14 21:23:55 +08:00
|
45
zjyl1994 2022-11-15 00:11:19 +08:00
@1379M 也可以考虑换一个 SQLite 实现 "github.com/glebarez/sqlite"
因为我写自己的项目时候也遇到了部署缺 GLIBC 的问题,换了个纯 go 的 sqlite 编译就省了 CGO 的大坑 :) |
46
1379M OP @zjyl1994 这个考虑过。但是不知道会不会遇到其他坑,毕竟这个相当于是新的数据库,有没有 SQL 兼容的问题呢,或者数据库层面的 bug 。另外性能如何
|
48
zjyl1994 2022-11-15 22:10:23 +08:00 1
@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 22:11:45 +08:00
|
50
zjyl1994 2022-11-15 22:14:21 +08:00 1
@1379M https://gorm.io/docs/connecting_to_the_database.html#SQLite 其实看 gorm 官方也写了这个库,应该不会太差,不过我只在自己项目里用过,你自己看啦。反正我是被 GLIBC 问题坑的要死要活的,现在根本不想碰 CGO
|
51
oldmanong 2022-11-18 11:12:10 +08:00 1
已 fork 并运行成功,整体感觉很不错。
几个问题: * resource 里一个主题都没有,启动报错。手动下载了默认主题才能用 * readme 里没有对编译进行说明,我直接 build 的。建议做个 makefile ,如果有一些特别设置的话 |
52
1379M OP @oldmanong 感谢,resource 里没有主题是因为主题是通过 git submodule 来获取的,后面我补充下
|
53
KENNHI 2022-12-04 21:13:48 +08:00 via Android
go 有 gc ,建议用 rust(
我还在用 WordPress 呢,主要是插件好用主题多😂 |
57
wshn13 53 天前
你好,请问博客项目还在活跃开发吗? 我看到自从今年 2 月发布 1.14 后就没有再更新了
|