快速上手

5 分钟上线一个真正可用的内容站

下载、运行、打开后台。数据库、模板、SEO、多语种和主题都已经装好,剩下的只是把它放到你的域名后面。

5 分钟上线一个真正可用的内容站

你现在浏览的这个站,就是一个 gcms 实例。它由单个静态二进制和一个 SQLite 数据库跑起来,是一个真实在线的站点。第一次部署只需要三步。

gcms 发布包下载页:选择平台包、校验文件与一键安装脚本

开始前准备

前两步在本机 localhost 就能跑起来,不需要域名;上线(第三步)之前,再确认三件事:域名的 DNS 已经指向这台服务器;防火墙和云厂商的安全组已经放行 80 和 443 端口,外网能访问到;服务器上装好了 Caddy,并且它能监听这两个端口。这几项是自动签发 HTTPS 证书的前提,缺一项,第三步就会卡在证书上。

第一步 · 拿到二进制

发布页 下载对应平台的包(linux / macOS / windows,amd64 / arm64 都有),解压即可。里面已经包含预编译好的 bin/cms、启停脚本和默认配置——部署机上不需要安装 Go,也不需要跑前端构建

如果你想直接在新机器上安装,也只要一行:

curl -fsSL https://raw.githubusercontent.com/ccvar/gcms-releases/main/install.sh \
  | sh

第二步 · 运行

./bin/cms
# 或后台运行:
./scripts/cms.sh start
# → http://localhost:8080   后台 /admin

首次启动会自动建好数据库、写入演示内容,并在控制台打印默认后台账号和初始密码。登录后第一件事,就是去「设置 → 安全」改掉它,改完之前首页那条提醒会一直挂着。新密码最短 6 位就能保存,但真要上线,用一串长一些的随机字符更稳妥。

第三步 · 上线

生产环境让 gcms 只监听回环地址,把 HTTPS、压缩、HTTP/3 交给 Caddy。正式站点可以直接设为你的域名,例如 https://example.com

ADDR=127.0.0.1:8080 \
BASE_URL=https://example.com \
./scripts/cms.sh start
example.com {
    encode zstd gzip
    reverse_proxy 127.0.0.1:8080
}

DNS 已经生效、80/443 端口外网可达时,运行 caddy run,Caddy 会自动签发证书。如果签发失败,先回头检查「开始前准备」里的那三项。

它已经替你做好了这些

上线的同时,下面这些默认就位,不用额外配置:

  • 原生 SEO:每页服务端渲染,自带 canonical、hreflang、Open Graph、sitemap.xml、RSS 与 JSON-LD 结构化数据;
  • 多语种:URL 前缀路由(/zh/…/en/…),逐语种维护内容,自动输出 hreflang 多语言替代链接;
  • 150 多套主题:后台一键切换,还能按主题微调主色与圆角;
  • 双模式编辑器:Markdown ⇄ 所见即所得,粘贴图片、插表格、拖动段落;
  • 链接展示、代码注入、社媒页脚、自定义导航、后台在线更新……

环境要求

gcms 的运行形态很轻,小规格 VPS 就能承载一个产品官网或资料站:

  • CPU:1 vCPU 即可启动和日常运行;
  • 内存:512MB 级别机器可以部署,内容量和并发升高后再按需加;
  • 磁盘:程序包很小,主要增长来自 SQLite 数据库、上传图片和日志;
  • 系统:linux、macOS、Windows 都有预编译包,支持 amd64 / arm64;
  • 公网入口:生产环境推荐 Caddy 监听 80/443,gcms 只监听 127.0.0.1:8080

换句话说,它不要求你先准备一整套数据库、缓存、前端构建和进程编排。你只需要一台能跑二进制的小机器,和一个愿意被认真维护的内容计划。

适合哪些场景

gcms 最适合那些「内容很重要,但不想把维护做重」的网站:产品官网、开源项目官网、技术文档、课程资料站、资源导航、独立博客和小团队知识库。它不是一个大型协同平台,却很适合做一个长期稳定、SEO 友好、随时能迁移的内容入口。

把复杂留在编译期,把简单交给运行时——这套架构最值钱的一句话。

为什么能这么简单

因为只有两个「单数」:Go 用 embed.FS 把模板和静态资源焊进一个二进制,SQLite 把数据库收敛成一个文件。没有独立数据库进程、没有前端构建链、没有运行时依赖。

数据库虽然只有一个文件,备份时却不能在运行中直接拷它:gcms 开着 WAL,直接复制 .db 可能漏掉刚写入的内容。导出方法和回滚时要注意什么,写在《gcms 为什么选 Go 和 SQLite》里;uploads 目录和启动配置记得一起带上。换机器时,把这几样原样搬过去。

准备工作就绪后,五分钟就能拥有一个完全属于自己、默认输出 canonical、sitemap 等 SEO 标记、还足够好看的内容站。