loading image

土豆哥 一人公司手册 · 002:30 分钟,圈下你在互联网上的第一块地

A practical GitHub Pages and custom-domain setup guide for claiming your first stable place on the web.

Posted by Enovace on May 13, 2026

很多人插了旗,却没把地圈起来。今天,我们用 30 分钟结束战斗

我做了六个 app,每个都需要一个落地页。试过 Vercel、Netlify、自己租 VPS——最后全部迁回 GitHub Pages。

原因很简单:免费、不需要登第三方平台、每次 git push 自动上线。配好一次,之后写内容只需要推代码。

这篇是可以跟着操作的教程,接上一篇「注册域名 + 接管 DNS」,域名已经接入 Cloudflare 的同学可以直接跟着做。没有域名也没关系,用 用户名.github.io 同样可以跑起来。


你需要准备的三件事

  • GitHub 账号(没有去 github.com 注册,免费)
  • Git(本地需要安装,git-scm.com 下载)
  • 域名(可选,参考第一篇;没有的话用 用户名.github.io 访问也行)

第一步:新建 GitHub 仓库

第 1 步 — 创建仓库

登录 GitHub,点右上角「+」→「New repository」。

仓库名有两种选择:

  • 想用 用户名.github.io 访问 → 仓库名必须是 <你的用户名>.github.io
  • 绑自定义域名 → 仓库名随意,比如 my-site

选「Public」(GitHub Pages 免费版只支持公开仓库),勾选「Add a README file」,点「Create repository」。

第 2 步 — 克隆到本地

git clone https://github.com/<你的用户名>/<仓库名>.git
cd <仓库名>

第二步:选择建站方式

方式 A:静态 HTML(最简单,适合落地页)

在仓库根目录放一个 index.html,GitHub Pages 直接识别,不需要任何配置。

适合:单页落地页、app 介绍页、简历页。

方式 B:Hugo(推荐,我在用的)

Hugo 是目前最快的静态网站生成器。写 Markdown,Hugo 自动生成 HTML,支持主题,扩展性强。

如果你需要多篇文章、博客功能、SEO 配置,选 Hugo。

安装 Hugo:

# macOS
brew install hugo

# 验证
hugo version

在仓库目录初始化 Hugo 项目:

hugo new site . --force
git init

安装主题(以 PaperMod 为例):

git submodule add --depth=1 https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod

在 hugo.toml 里更新配置:

baseURL = 'https://example.org/'
languageCode = 'zh-cn'
title = '你的网站名称'
theme = "PaperMod"

title 填你想显示的站名,baseURL 后面绑域名后再改成你的域名。

写一篇 Hello World 验证环境:

打开 content/posts/hello-world.md,把 draft: true 改成 false:

本地预览:

hugo server -D

打开 localhost:1313,能看到 Hello World 那篇说明环境没问题。改了文件实时刷新,不需要重启。


第三步:配置 GitHub Actions 自动部署

手动 build 再上传是一次性的工作。配好 GitHub Actions,之后每次 git push 自动构建部署,一行命令搞定。

在仓库根目录创建 .github/workflows/deploy.yml:

name: Deploy Hugo site

on:
  push:
    branches: [main]

permissions:
  contents: read
  pages: write
  id-token: write

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: true

      - name: Setup Hugo
        uses: peaceiris/actions-hugo@v3
        with:
          hugo-version: latest
          extended: true

      - name: Build
        run: hugo --minify

      - name: Upload artifact
        uses: actions/upload-pages-artifact@v3
        with:
          path: ./public

  deploy:
    needs: build
    runs-on: ubuntu-latest
    environment:
      name: github-pages
    steps:
      - name: Deploy to GitHub Pages
        uses: actions/deploy-pages@v4

然后开启 GitHub Pages 的部署来源:仓库 → Settings → Pages → Source,选「GitHub Actions」。

提交推送:

git add .
git commit -m "init hugo site"
git push origin main

进入仓库 → Actions,看到绿色勾,部署成功。第一次大概 1-2 分钟。

GitHub Actions deployment status screenshot


第四步:绑定自定义域名

上一篇配好 Cloudflare 的同学,直接在 GitHub 做最后一步。

第 1 步 — 仓库 Settings → Pages → Custom domain

填入你的根域名,比如 anotherbug.com(不加 www),点「Save」。

GitHub 会自动在仓库创建 CNAME 文件,内容就是你填的域名。

GitHub Pages custom domain settings screenshot

第 2 步 — 等 DNS 检查通过

页面显示「DNS Check in Progress」属正常,等几分钟刷新。

用了 Cloudflare Proxied(橙色云朵)的注意: 会一直卡在 In Progress,这是正常现象,不是配错了。原因:橙色云朵模式下,流量经过 Cloudflare 中转,对外暴露的是 Cloudflare 的 IP。GitHub 做 DNS 检查时看到 Cloudflare 的 IP,不认识,所以验证不过。灰色云朵(DNS only)则直接解析到 GitHub Pages 的真实 IP,GitHub 能认出来。解决方法:去 Cloudflare → DNS → Records,把域名的 A 记录和 CNAME 暂时改成灰色(DNS only)。等 GitHub DNS check 通过变绿,再改回橙色。Cloudflare 的 CDN 和防护重新生效。

  • 绿色「DNS check successful」→ 通过
  • 仍报错 → DNS 还在传播,等一会儿重试

第 3 步 — HTTPS

DNS 通过后勾选「Enforce HTTPS」。

如果用 Cloudflare Proxied 模式,「Enforce HTTPS」显示 Unavailable 是正常的——SSL 已经由 Cloudflare 接管,访问依然是加密的。


如果没有域名,直接用 GitHub 子域名

不绑自定义域名也完全没问题。

仓库名设成 <你的用户名>.github.io,部署成功后直接访问 https://<你的用户名>.github.io,SSL 自动生效,不需要任何额外配置。

等你有了域名,再绑进来,步骤一样。


四步流程,走一遍就懂了

  1. 新建 GitHub 仓库 → Public,加 README
  2. 选建站方式 → 静态 HTML(简单)或 Hugo(扩展性强)
  3. 配 .github/workflows/deploy.yml,push 自动部署
  4. 仓库 Settings → Pages → 填自定义域名(可选)

第一次配的时候我花了半天。

现在给你的时间是 30 分钟。

配完之后,往后写文章、改落地页,只需要一行 git push,两分钟自动上线。这才是值得投入一次的事。

你的网站叫什么名字?把链接发来让我看看。


下一篇:我的独立开发工具箱(软件篇)——从写代码到上线收款,我实际在用的工具清单。