一年时间,用 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 条回复
hytaoist
2022-11-06 11:19:29 +08:00
👍
line
2022-11-06 11:22:47 +08:00
theme 没打包进去,报错了。
Donahue
2022-11-06 11:58:04 +08:00
支持,之前不喜欢 halo 就是因为一个慢,另一个内存占用大,不喜欢 java.
我就在 arm 的软路由上部署,用 go 相信性能、内存、速度都快很多
welong
2022-11-06 12:47:03 +08:00
sonic 不是字节开源的高性能 JSON 库吗
Asimov01
2022-11-06 13:38:42 +08:00
Halo 用户表示支持!已 star ,希望能保持发展
1379M
2022-11-06 14:02:51 +08:00
@welong 不是,应该只是重名了。。。这个项目我在一年前就开始了。
1379M
2022-11-06 14:05:50 +08:00
@Donahue 慢主要是各种 for 循环查库,打开文章详情页有几十条 SQL 被执行。当初还考虑过用 rust 写,但是在我尝试写了一个月后发现现在 Rust 的生态一言难尽。另外 Rust 较高的上手成本也对社区生态不好。Golang 足以
SenLief
2022-11-06 15:49:40 +08:00
Star
1379M
2022-11-06 17:05:24 +08:00
@line 感谢反馈,现在应该可以了。原因是 Github 的 action 自动构建的时候没有 checkout submodule
whitedroa
2022-11-06 17:13:41 +08:00
👍
gamexg
2022-11-06 17:27:34 +08:00
无法访问此网站检查 go-sonic.org 中是否有拼写错误。
如果拼写无误,请尝试运行 Windows 网络诊断。
DNS_PROBE_FINISHED_NXDOMAIN
whitedroa
2022-11-06 20:10:32 +08:00
已 Star
Acoffice
2022-11-06 20:21:46 +08:00
@1379M #9 还是没有主题......
1379M
2022-11-06 20:40:20 +08:00
@Acoffice 有的,你可以直接下载 release 中打包好的文件。如果你是自己编译,要先 init submodule 。另外,启动后,需要先访问 ip:port/admin/#install 来安装。
Acoffice
2022-11-06 20:59:37 +08:00
@1379M #14 下载的就是 release 里的,Linux-amd64
Acoffice
2022-11-06 21:00:41 +08:00
@1379M #14 解压出来就没有 theme 这个目录.....
1379M
2022-11-06 21:11:34 +08:00
@Acoffice 我重新下载试了下,有主题相关文件。目录在 /resources/template/theme/
yrj
2022-11-07 04:14:04 +08:00
@welong 哈哈,我看到这个名字第一反应也是字节的那个库
Acoffice
2022-11-07 09:05:40 +08:00
@1379M #17 那根据你提供的方式启动,页面找不到 theme 的路由
1379M
2022-11-07 22:55:49 +08:00
@Acoffice 我自己按照流程试了下,没有任何问题的。可不可以提个 issue 呢,提供下 log 以及环境等信息

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

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

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

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

© 2021 V2EX