开源 Go 博客 CMS · v0.5.0

GopherInk

把心思留给写作。内容管理、安全防护与扩展能力,由一个清晰、轻量的 Go 应用承担。

查看源代码 开始部署
  • Go 1.25
  • MDUI 2
  • SQLite / MySQL / PostgreSQL
  • AGPL-3.0

设计取舍

一个博客系统,三件事做扎实

不追求庞杂的功能清单,而是把日常写作、长期维护和二次开发放在同一套清楚的结构里。

01 / WRITE

写作过程不丢线索

Markdown 预览、自动保存、已发布内容的独立编辑草稿,以及可展开和恢复的修订版本,让修改过程始终可控。

  • 文章与独立页面共用成熟编辑流程
  • 发布快照和编辑草稿各司其职
  • 附件按内容归档,插入位置准确

02 / GUARD

小站也有自己的防线

公开 URL 索引减少无效查询,页面缓存缓冲热点访问,WAF 对动态、静态、搜索、附件和登录分别执行策略。

  • 限流、无效路径与登录爆破封禁
  • CSRF、签名会话、SSRF 和上传校验
  • 独立 WAF 日志、代理信任与命令行账户恢复

03 / EXTEND

扩展边界看得见

主题和插件与主程序一起编译,换来单二进制交付和明确依赖;50 个预定义钩子覆盖内容、评论、附件与前端生命周期。

  • 主题配置、模板函数和内容字段
  • 插件配置、个人配置、路由和菜单
  • 兼容 RSS、Atom、Sitemap 与 XML-RPC

真实界面

安静地管理,舒服地阅读

后台与默认主题统一采用 MDUI 2。管理界面偏向清晰、稳定的工作台;前台则保持轻量,让主题色和内容成为主要视觉信号。

50
预定义钩子
3
数据库系列
1
二进制部署
GopherInk 默认主题的实际页面界面
Default Theme · MDUI 2 动态配色 · 演示图片来自 Unsplash

现在就试试

界面颜色,不必停留在想象里

GopherInk 使用 MDUI 2 的动态调色能力。默认主题和管理后台都能独立选择种子色、桌面与移动端背景,并调节卡片、输入框和背景遮罩透明度;先在这里试一套颜色。

常用颜色
应用
我的博客
2026 / 07 / 16

第一篇由 GopherInk 写下的文章

一套主题色,一段文字,一次专注的发布。

2026 / 07 / 12

从草稿到发布,过程始终清楚

修改不会覆盖已经公开的版本,准备好后再合并发布。

#00ADD8

不只一种底色

再放进一张你喜欢的背景

颜色定义界面气质,图片则留住更具体的心情。选择示例风景,或填入自己的图片 URL,再用主题色遮罩调整内容与背景之间的分寸。

示例图片来自 Claudio Schwarz / Unsplash

恢复纯色背景
应用背景
主题色遮罩透明度0.78

能力概览

从写下第一行,到长期维护

内容工作流

文章、独立页面、自动保存、编辑草稿、修订回滚、自定义字段、分类和标签。

评论社区

三种审核策略、嵌套回复、待审核自可见、头像模板、Pingback 与 Trackback。

媒体资源

内容分目录管理、未绑定附件、WebP 转换、缩略图和可接管的远程存储钩子。

数据选择

SQLite 零配置起步,也支持 MySQL、MariaDB、PostgreSQL 和读写分离。

兼容连接

RSS、Atom、Sitemap、XML-RPC、RSD,让订阅工具和传统客户端继续工作。

管理体验

中英文后台、PJAX 无刷新导航、响应式布局,以及背景、颜色和透明度都可独立配置的后台外观。

启动配置

首次终端引导写入 data/config.json,临时参数只覆盖本次启动,数据库与上传目录不和站点选项混存。

应急恢复

命令行直接列出用户并重置指定账户密码,不启动 HTTP 服务;成功后旧登录会话同步失效。

快速部署

三步,把博客跑起来

首次启动会在终端引导生成独立配置文件,默认使用 SQLite。主题、后台资源和内置插件编译进程序,部署时只需要关注二进制与持久化目录。

  1. 1
    编译SQLite 驱动需要 CGO 和 C 编译器
    go build -o gopherink ./cmd/gopherink
  2. 2
    启动按提示确认数据库、上传目录和监听规则
    ./gopherink
  3. 3
    初始化在浏览器完成站点与管理员设置
    http://localhost:8086/install
bash
git clone https://github.com/Chocola-X/GopherInk.git
cd GopherInk
go build -o gopherink ./cmd/gopherink
./gopherink

忘记后台密码,也不必直接修改数据库

先确认用户 ID,再由命令行安全地更新密码和会话凭据;整个过程不会启动网站服务。

./gopherink user list ./gopherink user reset-password --id 1
启动配置与后台站点设置分离 上传目录与数据库独立持久化 主题和插件变更后重新编译
GopherInk 盾牌与钢笔笔尖 Logo

名字与图标

Gopher 的墨水

Gopher 是 Go 语言广为人知的吉祥物,Ink 是墨水。组合起来既带一点写作的文艺感,也直白说明了它的身份:一件用 Go 构建的写作工具。

WAF

盾牌轮廓

外轮廓与内层结构都采用经典盾形,表达内置防护与稳定运行的技术底色。

INK

钢笔笔尖

中央墨孔和垂直中缝让盾牌内部自然成为笔尖,指向博客、书写与内容管理。

GOPHER

青蓝与双眼

视觉中心采用 Go 经典青蓝色 #00ADD8;顶部两个白点既是装饰,也是对 Gopher 双眼的极简致意。

OPEN SOURCE

从一篇文章开始认识 GopherInk

查看源码、提交问题,或者编译一份属于自己的版本。

前往 GitHub