netlify
Use the netlify CLI to create projects (“sites”), link local folders, and configure CI/CD from GitHub.
Pre-reqs
- - INLINECODE1
- Logged in (
netlify login) or provide --auth $NETLIFY_AUTH_TOKEN. - Know the Netlify team/account slug you want to create sites under (optional but recommended).
Helpful checks:
CODEBLOCK0
Monorepo pattern (recommended)
For one repo with multiple sites (e.g. sites/seattlecustomboatparts.com, sites/floridacustomerboatparts.com):
- - Create one Netlify site per domain.
- Set the site’s Base directory to that subfolder.
- Put a
netlify.toml inside that subfolder.
This keeps each domain’s build config self-contained.
Hugo subfolder netlify.toml
Create sites/<domain>/netlify.toml:
CODEBLOCK1
(Adjust HUGO_VERSION as needed.)
Fast workflow: create + link + init CI/CD
1) Create a Netlify site (project)
Run inside the site folder you want to deploy (base dir):
CODEBLOCK2
Notes:
- -
--with-ci starts CI hooks setup. - If you need manual control, add
--manual.
2) Link local folder to the created site
If not linked already:
CODEBLOCK3
3) Connect to GitHub for continuous deployment
CODEBLOCK4
This is usually interactive (select Git remote/repo + build settings). For automation we can pre-create netlify.toml and then accept defaults.
Environment variables
Set per-site vars:
CODEBLOCK5
Useful for monorepos:
- -
CONTACT_EMAIL (or other shared config)
Deploy
Manual deploys (handy for quick preview):
CODEBLOCK6
Included scripts
- -
scripts/hugo_netlify_toml.sh: create a netlify.toml in a Hugo subfolder - INLINECODE15 : helper to create/link/init a site for a subfolder
When using scripts, prefer passing NETLIFY_AUTH_TOKEN via env for non-interactive runs.
netlify
使用 netlify CLI 创建项目(“站点”)、链接本地文件夹,并从 GitHub 配置 CI/CD。
前置条件
- - netlify --version
- 已登录(netlify login)或提供 --auth $NETLIFYAUTHTOKEN。
- 知道要在其下创建站点的 Netlify 团队/账户别名(可选但推荐)。
有用的检查命令:
bash
netlify status
netlify sites:list
单体仓库模式(推荐)
对于一个仓库包含多个站点(例如 sites/seattlecustomboatparts.com、sites/floridacustomerboatparts.com):
- - 为每个域名创建一个 Netlify 站点。
- 将站点的基础目录设置为该子文件夹。
- 将 netlify.toml 放在该子文件夹内。
这样每个域名的构建配置都是独立的。
Hugo 子文件夹的 netlify.toml
创建 sites//netlify.toml:
toml
[build]
command = hugo --minify
publish = public
[build.environment]
HUGO_VERSION = 0.155.1
(根据需要调整 HUGO_VERSION。)
快速工作流:创建 + 链接 + 初始化 CI/CD
1) 创建 Netlify 站点(项目)
在要部署的站点文件夹(基础目录)内运行:
bash
cd sites/
netlify sites:create --name --account-slug --with-ci
注意:
- - --with-ci 启动 CI 钩子设置。
- 如果需要手动控制,添加 --manual。
2) 将本地文件夹链接到已创建的站点
如果尚未链接:
bash
netlify link
3) 连接到 GitHub 实现持续部署
bash
netlify init
这通常是交互式的(选择 Git 远程仓库 + 构建设置)。对于自动化,我们可以预先创建 netlify.toml,然后接受默认设置。
环境变量
设置每个站点的变量:
bash
netlify env:set VAR_NAME value
netlify env:list
对单体仓库有用:
部署
手动部署(方便快速预览):
bash
netlify deploy # 草稿部署
netlify deploy --prod # 生产部署
包含的脚本
- - scripts/hugonetlifytoml.sh:在 Hugo 子文件夹中创建 netlify.toml
- scripts/netlifymonoreposite.sh:为子文件夹创建/链接/初始化站点的辅助脚本
使用脚本时,建议通过环境变量传递 NETLIFYAUTHTOKEN 以实现非交互式运行。