netlify-subdomain-manager

0.1.4 • Public • Published

npm

Netlify Subdomain Manager

This CLI tool can be used to manage your subdomain aliases on Netlify using a JSON file as a source of truth.

Usage

You can the node script like so.

npm install netlify-subdomain-manager
netlify_subdomain_manager --help

Example JSON file

Where the JSON file is just a list of subdomain aliases you want. These will be prepended by the mainDomain. For example if the json file was like this:

["abc", "xyz"]

and the main domain was haseebmajid.dev then we would create the following aliases abc.haseebmajid.dev and xyz.haseebmajid.dev. It will also create the domain aliases that begin with www so the 4 domain aliases created will be

Args

netlify_subdomain_manager --help
Usage: src [options]
 
Options:
  --version                  Show version number                       [boolean]
  -a, --accessToken          The Netlify access token to use the Netlify API.
                                                                      [required]
  -f, --subdomainFile        Path to JSON file, which contains the subdomain the
                             netlify site should have.
                                                  [default: "./subdomains.json"]
  -m, --mainDomain           The main domain you want to create subdomain
                             within.                                  [required]
  -s, --siteId               The site Id to add the subdomain to on Netlify.
                                                                      [required]
  -h, --help                 Show help                                 [boolean]

Docker

You can run the Docker container locally like so.

touch .env
docker run -rm -v ${PWD}/subdomains.json:/app/subdomains.json --env-file .env hmajid2301/netlify-subdomain-manager

or you can build it locally

npm run build
docker build -t netlify-subdomain-manager .
docker run -v ${PWD}/subdomains.json:/app/subdomain.json --env-file .env netlify-subdomain-manager

Where .env is like:

NETLIFY_ACCESS_TOKEN=xxxx
NETLIFY_SUBDOMAIN_FILE=/app/subdomain.json
NETLIFY_MAIN_DOMAIN=haseebmajid.dev
NETLIFY_SITE_ID=xxxxx

Site ID

You can find the site id in the "Site Information".

  • Go to Netlify
  • Click on your website
  • Click on "Settings"
  • Copy "API ID" from within the "Site Information" panel

Access Token

You can create an access token like so:

  • Go to Netlify
  • Click on your avatar
  • Click on "User Settings"
  • Click on "Applications" (left panel)
  • Click on "New access token" in "Personal access tokens"

Give the access token an appropriate name and copy it somewhere safe.

.gitlab-ci.yml

You can also use it during CI/CD.

edit-domains:netlify:
  stage: post-publish
  image:
    name: hmajid2301/netlify-subdomain-manager
    entrypoint: [""]
  variables:
    NETLIFY_ACCESS_TOKEN: ${ACCESS_TOKEN}
    NETLIFY_SUBDOMAIN_FILE: subdomain.json
    NETLIFY_MAIN_DOMAIN: haseebmajid.dev
    NETLIFY_SITE_ID: ${SITE_ID}
  script:
    - node /app/index.js

Build Locally

You can run the script locally like so.

npm install
touch .env
source .env
npm run start

Readme

Keywords

Package Sidebar

Install

npm i netlify-subdomain-manager

Weekly Downloads

1

Version

0.1.4

License

MIT

Unpacked Size

15.5 kB

Total Files

10

Last publish

Collaborators

  • hmajid2301