地址: 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-06 11:19:29 +08:00 ![]() |
![]() | 2 line 2022-11-06 11:22:47 +08:00 theme 没打包进去,报错了。 |
3 Donahue 2022-11-06 11:58:04 +08:00 ![]() 支持,之前不喜欢 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 ![]() Halo 用户表示支持!已 star ,希望能保持发展 |
7 1379M OP @Donahue 慢主要是各种 for 循环查库,打开文章详情页有几十条 SQL 被执行。当初还考虑过用 rust 写,但是在我尝试写了一个月后发现现在 Rust 的生态一言难尽。另外 Rust 较高的上手成本也对社区生态不好。Golang 足以 |
![]() | 8 SenLief 2022-11-06 15:49:40 +08:00 ![]() Star |
9 1379M OP @line 感谢反馈,现在应该可以了。原因是 Github 的 action 自动构建的时候没有 checkout submodule |
![]() | 10 whitedroa 2022-11-06 17:13:41 +08:00 ![]() |
![]() | 11 gamexg 2022-11-06 17:27:34 +08:00 无法访问此网站检查 go-sonic.org 中是否有拼写错误。 如果拼写无误,请尝试运行 Windows 网络诊断。DNS_PROBE_FINISHED_NXDOMAIN |
![]() | 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 ![]() @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 ![]() 支持一波,已 star |
34 lasko 2022-11-10 17:23:55 +08:00 ![]() 支持 已 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 |
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 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 |
![]() | 49 zjyl1994 2022-11-15 22:11:45 +08:00 |
![]() | 50 zjyl1994 2022-11-15 22:14:21 +08:00 ![]() @1379M https://gorm.io/docs/connecting_to_the_database.html#SQLite 其实看 gorm 官方也写了这个库,应该不会太差,不过我只在自己项目里用过,你自己看啦。反正我是被 GLIBC 问题坑的要死要活的,现在根本不想碰 CGO |
51 oldmanong 2022-11-18 11:12:10 +08:00 ![]() 已 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 2024-09-29 19:43:33 +08:00 你好,请问博客项目还在活跃开发吗? 我看到自从今年 2 月发布 1.14 后就没有再更新了 |
59 awanganddong 62 天前 专门拉下来 go mod tidy ,发现安装的依赖比我公司的项目依赖还多,对我而言太重了。 |