01 / WRITE
写作过程不丢线索
Markdown 预览、自动保存、已发布内容的独立编辑草稿,以及可展开和恢复的修订版本,让修改过程始终可控。
- 文章与独立页面共用成熟编辑流程
- 发布快照和编辑草稿各司其职
- 附件按内容归档,插入位置准确
开源 Go 博客 CMS · v0.5.0 · 持续更新中
把心思留给写作。内容管理、安全防护与扩展能力,由一个清晰、轻量的 Go 应用承担。
设计取舍
不追求庞杂的功能清单,而是把日常写作、长期维护和二次开发放在同一套清楚的结构里。
01 / WRITE
Markdown 预览、自动保存、已发布内容的独立编辑草稿,以及可展开和恢复的修订版本,让修改过程始终可控。
02 / GUARD
公开 URL 索引减少无效查询,页面缓存缓冲热点访问,WAF 对动态、静态、搜索、附件和登录分别执行策略,并配合动态并发限制与持续封禁应对突发流量。
03 / EXTEND
主题和插件由统一构建器自动发现并编译进单二进制;80+ 个通用底层钩子覆盖内容、评论、附件与前端生命周期,插件可独占数据库,也可合并到主库。
真实界面
后台与默认主题统一采用 MDUI 2。管理界面偏向清晰、稳定的工作台;前台则保持轻量,让主题色和内容成为主要视觉信号。
现在就试试
GopherInk 使用 MDUI 2 的动态调色能力。默认主题和管理后台都能独立选择种子色、桌面与移动端背景,并调节卡片、输入框和背景遮罩透明度;先在这里试一套颜色。
一套主题色,一段文字,一次专注的发布。
修改不会覆盖已经公开的版本,准备好后再合并发布。
#00ADD8
不只一种底色
颜色定义界面气质,图片则留住更具体的心情。选择一幅预设画面,或填入自己的图片 URL,再用主题色遮罩调整内容与背景之间的分寸。
能力概览
文章、独立页面、自动保存、编辑草稿、修订回滚、自定义字段、分类和标签,写入与删除由独立编排层统一调度钩子。
三种审核策略、嵌套回复、待审核自可见、头像模板、主题级服务端校验、Pingback 与 Trackback。
内容分目录管理、未绑定附件、WebP 转换、缩略图、图片灯箱和可接管的远程存储钩子。
SQLite 零配置起步,也支持 MySQL、MariaDB、PostgreSQL 和读写分离;插件可独占 SQLite 或合并主库。
RSS、Atom、Sitemap、XML-RPC(MetaWeblog/WordPress/Blogger)、Pingback、RSD,后台可开关兼容接口。
英语、简体中文、繁体中文、日语和西班牙语,语言文件按语种分离,新增语种后台下拉框自动出现。
动态请求并发限制、持续封禁策略、L4 Listener 拦截、内存安全自退出,应对高并发 CC 攻击。
80+ 通用底层钩子、插件命名服务、独立路由与新标签菜单、统一构建器自动发现 plugins/ 与 themes/。
首次终端引导写入 data/config.json,支持 TLS 与启动参数,临时参数只覆盖本次启动,数据库与上传目录独立持久化。
命令行直接列出用户并重置指定账户密码,不启动 HTTP 服务;成功后旧登录会话同步失效。
官方维护
由项目维护的基础插件,覆盖服务器状态、评论通知与访客统计三类常见需求,与核心同步迭代,后续会持续提供更新支持。
服务器状态实时面板
在后台新增独立侧边栏入口,实时汇报每核 CPU 利用率与型号、物理内存与交换分区、各挂载文件系统容量,以及当前 GopherInk 进程的驻留内存。数据接口只读、禁用缓存,仅对已登录管理员响应。
查看仓库评论邮件通知
新评论、回复或审核通过时按规则向作者、原评论者和管理员发送邮件。支持 SSL / STARTTLS / 无加密三种 SMTP 模式,基于 Go channel 的异步队列并发消费,并提供可视化 HTML 模板编辑器、实时预览与测试邮件。
查看仓库访客记录与流量统计
使用 request.after 钩子在响应发出后异步记录前台访问,IP 地理位置采用缓存式懒解析,每个 IP 只查一次 IP 库。统计页用原生 MDUI 卡片与表格,ECharts 图表运行在 sandbox iframe 中隔离渲染,配色随后台动态主题。
查看仓库plugins/ 对应目录,再由统一构建器在编译期自动发现并集成。快速部署
首次启动会在终端引导生成独立配置文件,默认使用 SQLite。可以直接使用预构建版本,也可以自行编译集成自定义主题与插件。
go build -o gopherink ./cmd/gopherink
./gopherink
http://localhost:8086/install
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
持续演进
自项目初期开发以来,核心、主题与插件系统都经过多轮重构与加固。下面挑出值得展示的变化,按主题分组呈现。
plugins/ 与 themes/ 子目录,主题支持自动发现config 子命令可写入持久化配置{days} 占位符links 插件,通过命名服务供主题消费Runtime.AvatarURL,复用邮箱规范化与等级逻辑每一项改动都可以在 GitHub 提交历史中追溯。
名字与图标
Gopher 是 Go 语言广为人知的吉祥物,Ink 是墨水。组合起来既带一点写作的文艺感,也直白说明了它的身份:一件用 Go 构建的写作工具。
WAF
外轮廓与内层结构都采用经典盾形,表达内置防护与稳定运行的技术底色。
INK
中央墨孔和垂直中缝让盾牌内部自然成为笔尖,指向博客、书写与内容管理。
GOPHER
视觉中心采用 Go 经典青蓝色 #00ADD8;顶部两个白点既是装饰,也是对 Gopher 双眼的极简致意。
OPEN SOURCE
查看源码、提交问题,或者编译一份属于自己的版本。