ClawSkills logoClawSkills

Netlify

Use the Netlify CLI (netlify) to create/link Netlify sites and set up CI/CD (continuous deployment) from GitHub, especially for monorepos (multiple sites in one

Introduction

# netlify

Use the `netlify` CLI to create projects (“sites”), link local folders, and configure CI/CD from GitHub.

## Pre-reqs

- `netlify --version` - 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:

```bash netlify status netlify sites:list ```

## 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`:

```toml [build] command = "hugo --minify" publish = "public"

[build.environment] HUGO_VERSION = "0.155.1" ```

(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):

```bash cd sites/<domain> netlify sites:create --name <netlify-site-name> --account-slug <team> --with-ci ```

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:

```bash netlify link ```

### 3) Connect to GitHub for continuous deployment

```bash netlify init ```

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:

```bash netlify env:set VAR_NAME value netlify env:list ```

Useful for monorepos: - `CONTACT_EMAIL` (or other shared config)

## Deploy

Manual deploys (handy for quick preview):

```bash netlify deploy # draft deploy netlify deploy --prod # production deploy ```

## Included scripts

- `scripts/hugo_netlify_toml.sh`: create a `netlify.toml` in a Hugo subfolder - `scripts/netlify_monorepo_site.sh`: helper to create/link/init a site for a subfolder

When using scripts, prefer passing `NETLIFY_AUTH_TOKEN` via env for non-interactive runs.

More Products