跳转到内容

Netlify 部署

Netlify 提供持续部署、全球 CDN、自动 HTTPS 等特性,是静态站点托管的热门选择。Gridea Pro 对 Netlify 支持两种接入路径:

  • OAuth 授权 + Netlify API 直接部署(Gridea Pro 新版特性)
  • 先推到 GitHub,再由 Netlify 从 GitHub 拉取(传统方式,适合想让每次 Git push 自动触发 Netlify 构建的用户)

两者互不冲突,你可以只用其中一种,也可以同时保留(前者负责一键部署,后者负责基于 GitHub 的 CI)。

这是新版推荐的、完全脱离 GitHub 的直接部署路径:Gridea Pro 通过 OAuth 拿到你的 Netlify API Token,然后把生成的静态站点通过 Netlify API 上传到一个指定的 Site。

  1. 先到 Netlify 创建一个 Site(可以是空的)。Netlify 目前不允许第三方在用户没有显式选择 Site 的情况下创建站点,因此 Gridea Pro 不会自动帮你建 Site。

    • 登录 https://app.netlify.com/Add new site > Deploy manually → 拖一个占位的 index.html 上去即可。
    • 站点创建后记下 Site ID(在 Site 的 Site configuration > General > Site details 里)。
  2. 打开 Gridea Pro,进入 设置 > 网络

  3. Netlify 卡片点击 OAuth 授权

  4. Gridea Pro 在本地启动一次性回调服务(随机端口),并用系统默认浏览器打开 Netlify 的授权页面:

    https://app.netlify.com/authorize
    ?state=<随机 state>
  5. 在 Netlify 页面确认并点击 Authorize。Netlify 302 回到本地回调,Gridea Pro 用 codePOST https://api.netlify.com/oauth/token 换取 access_token,再调 GET /api/v1/user 拉取账号信息。

  6. 浏览器显示”授权成功”页面,应用内卡片变为绿色”已连接 · OAuth”。

字段自动填充值
用户名Netlify 显示名(若无则 fallback 到邮箱)
邮箱Netlify 账户邮箱
头像 URLNetlify 头像 URL
Site ID不自动填,需要你手填
域名不自动填

在 Netlify 卡片的配置抽屉里填写:

字段
Netlify Site ID从 Netlify 后台复制的 UUID,例如 12345678-abcd-ef01-2345-6789abcdef01
站点域名Netlify 给的 *.netlify.app 或你的自定义域名,例如 https://my-blog.netlify.app

保存后点击 同步,Gridea Pro 会把整个 output/ 目录通过 Netlify 的 File Digest API 直接上传到该 Site。不再需要 GitHub 仓库中转

Netlify OAuth 没有细粒度 scope,授权即获得账户级的 API 访问能力。access_token 等价于一个可以读写账号下所有 Site 的长期 Token,请小心保管——Gridea Pro 把它存放在系统 Keychain 中(键名 netlify:netlifyAccessToken),参见 OAuth 授权总览

  1. Netlify 卡片点击 断开连接 → 确认。
  2. Gridea Pro 会从系统 Keychain 删除 netlify:netlifyAccessToken,并清空本机上的 Netlify 元数据。注意:Site ID 会一并被清空,重新授权后你需要再次粘贴 Site ID。
  3. (强烈建议)同时在 Netlify 官网撤销授权

由于 Netlify 的 Token 权限范围较大,Netlify 这一步尤其重要——只有在 Netlify 侧撤销后,之前的 Token 才无法再调用 API。

通过 GitHub 仓库部署(传统方式)

Section titled “通过 GitHub 仓库部署(传统方式)”

如果你更喜欢”Gridea Pro 同步到 GitHub → Netlify 自动构建部署”的 CI 模式,可以继续使用原来的流程:

  1. 先将 Gridea Pro 配置为推送到 GitHub 仓库(参考 GitHub Pages 部署
  2. 登录 Netlify,点击 Add new site > Import an existing project
  3. 选择 GitHub,授权并选择博客仓库
  4. 配置构建设置:
配置项
Build command留空
Publish directory.
Branchmain(与 Gridea Pro 配置一致)
  1. 点击 Deploy site

这种方式不需要在 Gridea Pro 里配置 Netlify 卡片——对 Gridea Pro 而言你只是在往 GitHub 推,Netlify 是 GitHub 的下游订阅者。

  1. 进入 Site settings > Domain management > Add custom domain
  2. 输入你的域名并验证
  3. Netlify 会提示你添加 DNS 记录:
    • CNAME: blog.example.com -> your-site.netlify.app
    • 或将 Nameserver 迁移到 Netlify DNS
  4. HTTPS 证书自动签发

Gridea Pro 生成的 404.html 会被 Netlify 自动识别为自定义错误页面,无需额外配置。

在仓库根目录创建 netlify.toml 文件自定义行为:

[build]
publish = "."
[[headers]]
for = "/styles/*"
[headers.values]
Cache-Control = "public, max-age=31536000"
[[redirects]]
from = "/*"
to = "/404.html"
status = 404

Netlify 还提供表单处理和 Serverless Functions 等附加功能。虽然 Gridea Pro 生成的是纯静态站点,但你可以在主题模板中添加 Netlify Forms 来收集读者反馈:

<form name="contact" method="POST" data-netlify="true">
<input type="text" name="name" placeholder="你的名字" />
<textarea name="message" placeholder="留言内容"></textarea>
<button type="submit">发送</button>
</form>
特性限制
带宽100 GB / 月
构建时间300 分钟 / 月
站点数无限
HTTPS自动、免费
表单提交100 次 / 月

关于 OAuth 的整体机制、令牌存储与撤销细节,请参阅 OAuth 授权总览。如遇其它问题,请查阅常见问题