惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
大猫的无限游戏
大猫的无限游戏
Microsoft Security Blog
Microsoft Security Blog
C
Check Point Blog
云风的 BLOG
云风的 BLOG
J
Java Code Geeks
阮一峰的网络日志
阮一峰的网络日志
MongoDB | Blog
MongoDB | Blog
Engineering at Meta
Engineering at Meta
H
Help Net Security
Microsoft Azure Blog
Microsoft Azure Blog
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
F
Fortinet All Blogs
宝玉的分享
宝玉的分享
H
Hackread – Cybersecurity News, Data Breaches, AI and More
腾讯CDC
A
About on SuperTechFans
酷 壳 – CoolShell
酷 壳 – CoolShell
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
SegmentFault 最新的问题
Vercel News
Vercel News
aimingoo的专栏
aimingoo的专栏
B
Blog RSS Feed

涛叔

友链可能导致网站掉备案 基于 Nginx + GeoLite2 搭建简易 IP 查询工具 使用 DDNS 动态更新 ZZ.AC 域名 另一种轻量的 Linux VPS 共享方案 DMIT 主机自定义 IPv6 地址 自用 Claude Code 拼车中转服务 欢迎使用 @ZZ.AC 邮箱服务 我在用的 VPS 云主机 实现备份3-2-1原则 Go语言接口的空指针问题 玩转 ZZ.AC 域名 ZZ.NIC 公益 Linux 主机空间 使用 Nginx 构建计费 DoH 代理服务 通过 Let’s Encrypt 为 IP 地址签发免费 SSL 证书
欢迎使用 zz.Pages 发布静态网页
2026-09-13 · via 涛叔

zz.Pageszz.NIC 官方提供的静态网页托管平台,对标 GitHub Pages。zz.NIC 很早就对外提供代码托管服务 zz.Git。但 zz.Git 没有接入默认 Pipeline Runner,也就无法自动执行构建任务。考虑到 zz.NIC 很多项目会在 zz.Git 上发布,而且项目需要自己的主页;同时,zz.NIC 也愿意为社区提供更加简便的 Web 托管平台,所以就推出了 zz.Pages 服务。

✏️Note

zz.Pages 官网也是通过 zz.Pages 来发布的😄

在 GitHub Pages, 你需要创建一个yourname.github.io仓库,所以静态网页只能放在该仓库下面。开始你可以通过子域名yourname.github.io访问,也可以设置自己的域名。但一个仓库不能指定多个域名。如果你有多个项目,只能放在不同的目录或者分支,然后通过 yourname.github.io/project-name来访问。

这对普通用户来说不算是什么限制。每个人一个域名,所有相关项目都挂在自己的域名下。但如果你想给每个项目设置独立品牌就比较麻烦了。我想到的方案是注册多个 GitHub 账号🤦‍♂️

所以,在设计 zz.Pages 的时候,我就把域名跟个人身份解绑了。每个仓库都可以指定自己的个性域名!但是 zz.Pages 目前限制只能绑定 zz.ac 后缀的域名!

注册好 zz.ID 之后就可以登录 zz.Git。创建你的网站仓库,比如 zz.Pages 的仓库就是 https://git.zz.ac/zz/pages

然后在仓库里添加网站内容同时设置 workflow。

假如你的仓库里已经有 index.html 了,对应最简单的 workflow 为路径推荐为 .forgejo/workflow/pages.yml):

name: Publish documentation

on:
  push:
    branches:
      - main # 可选,指定仅对 main 分支开启构建

jobs:
  publish:
    runs-on: zz-pages # 必须指定为 zz-pages 来匹配专用 runner
    steps:
      # 必须:同步代码,也可以简写为 uses: actions/checkout@v6
      - uses: https://data.forgejo.org/actions/checkout@v6
      - name: Build and publish documentation
        # 必须引用 pages action
        uses: https://git.zz.ac/zz/pages@main
        with:
          # 必须指定个性域名
          domain: example.zz.ac
          # 必须指定构建命令
          build-command: |
            # 必须将构建结果输出到 ${ZZ_PAGES_OUTPUT} 指定的目录
            cp index.html ${ZZ_PAGES_OUTPUT}/

在推送代码到远端之前,你还需要设置两条 DNS 记录。

第一条,将个性域名指向git.zz.ac

example.zz.ac. CNAME git.zz.ac.

第二条,授权 zz.Pages 为你的域名构建网站:

_zz-pages.example.zz.ac TXT "repo=alice/website"

这里的repo=alice/website表示将example.zz.ac域名跟 zz.Git 的仓库 alice/website 相关联。防止别人把自己的仓库绑定到你的域名上去!

域名生效后再推送代码。推送之后可以到 Actions 查看运行情况。workflow 执行完成之后就可以通过 https://example.zz.ac 访问你的网站了。

zz.Pages 使用 Nginx + ngx_http_acme_module 来自动签发 SSL 证书并提供 Web 服务。

我们以 zz.Pages 为例跟大家说明。

再给一个更加复杂但也更完整的示例,这也是 zz.Pages 自己的构建 workflow:

name: Publish documentation

on:
  push:
    branches:
      - main # 可选,指定仅对 main 分支开启构建
    paths: #  可选,只有符合下面规则的文件有变化才构建
      - '**/*.md'
      - '.forgejo/workflows/pages.yml'

jobs:
  publish:
    runs-on: zz-pages # 必须指定为 zz-pages 来匹配专用 runner
    steps:
      # 必须:同步代码,也可以简写为 uses: actions/checkout@v6
      - uses: https://data.forgejo.org/actions/checkout@v6
      # 可选,安装构建工具,默认构建镜像中装有 node 和 python,其他需要自已安装
      - name: Install Pandoc
        run: |
          apt-get update
          apt-get install --yes --no-install-recommends pandoc
      # 开始构建网站
      - name: Build and publish documentation
        # 必须引用 pages action
        uses: https://git.zz.ac/zz/pages@main
        with:
          # 必须指定绑定的域名
          domain: pages.zz.ac
          # 必须指定构建命令
          # pages 使用 pandoc 将 md 转成 html
          build-command: |
            render() {
              source_file="$1"
              page_title="$2"
              output_file="$3"

              pandoc "$source_file" \
                --from=gfm \
                --to=html5 \
                --standalone \
                --template=.forgejo/pages/template.html \
                --metadata "title=${page_title}" \
                # 必须将构建结果输出到 ${ZZ_PAGES_OUTPUT} 指定的目录
                --output="${ZZ_PAGES_OUTPUT}/${output_file}"
            }

            render README.md 'zz.Pages' index.html
            render DEPLOYMENT.md 'zz.Pages deployment' deployment.html

zz.Pages 是第一个使用该服务发页网页的项目。第一个外部用户是https://jonah.zz.ac/。快来发布你的网页吧🤗