Deploying

The following guides are based on some shared assumptions:

  • You are placing your docs inside the docs directory of your project;
  • You are using the default build output location (.kdupress/dist);
  • KduPress is installed as a local dependency in your project, and you have setup the following npm scripts:
{
  "scripts": {
    "docs:build": "kdupress build docs"
  }
}

GitHub Pages

  1. Set the correct base in docs/.kdupress/config.js.

    If you are deploying to https://<USERNAME>.github.io/, you can omit base as it defaults to "/".

    If you are deploying to https://<USERNAME>.github.io/<REPO>/, for example your repository is at https://github.com/<USERNAME>/<REPO>, then set base to "/<REPO>/".

  2. Inside your project, create deploy.sh with the following content (with highlighted lines uncommented appropriately), and run it to deploy:













 






 


 



#!/usr/bin/env sh

# abort on errors
set -e

# build
npm run docs:build

# navigate into the build output directory
cd docs/.kdupress/dist

# if you are deploying to a custom domain
# echo 'www.example.com' > CNAME

git init
git add -A
git commit -m 'deploy'

# if you are deploying to https://<USERNAME>.github.io
# git push -f git@github.com:<USERNAME>/<USERNAME>.github.io.git master

# if you are deploying to https://<USERNAME>.github.io/<REPO>
# git push -f git@github.com:<USERNAME>/<REPO>.git master:gh-pages

cd -

TIP

You can also run the above script in your CI setup to enable automatic deployment on each push.

GitHub Pages and Travis CI

  1. Set the correct base in docs/.kdupress/config.js.

    If you are deploying to https://<USERNAME or GROUP>.github.io/, you can omit base as it defaults to "/".

    If you are deploying to https://<USERNAME or GROUP>.github.io/<REPO>/, for example your repository is at https://github.com/<USERNAME>/<REPO>, then set base to "/<REPO>/".

  2. Create a file named .travis.yml in the root of your project.

  3. Run yarn or npm install locally and commit the generated lockfile (that is yarn.lock or package-lock.json).

  4. Use the GitHub Pages deploy provider template, and follow the Travis CI documentation (opens new window).

language: node_js
node_js:
  - lts/*
install:
  - yarn install # npm ci
script:
  - yarn docs:build # npm run docs:build
deploy:
  provider: pages
  skip_cleanup: true
  local_dir: docs/.kdupress/dist
  github_token: $GITHUB_TOKEN # A token generated on GitHub allowing Travis to push code on you repository. Set in the Travis settings page of your repository, as a secure variable
  keep_history: true
  on:
    branch: master

GitLab Pages and GitLab CI

  1. Set the correct base in docs/.kdupress/config.js.

    If you are deploying to https://<USERNAME or GROUP>.gitlab.io/, you can omit base as it defaults to "/".

    If you are deploying to https://<USERNAME or GROUP>.gitlab.io/<REPO>/, for example your repository is at https://gitlab.com/<USERNAME>/<REPO>, then set base to "/<REPO>/".

  2. Set dest in .kdupress/config.js to public.

  3. Create a file called .gitlab-ci.yml in the root of your project with the content below. This will build and deploy your site whenever you make changes to your content:

image: node:10.22.0
pages:
  cache:
    paths:
    - node_modules/

  script:
  - yarn install # npm install
  - yarn docs:build # npm run docs:build
  artifacts:
    paths:
    - public
  only:
  - master

Netlify

  1. On Netlify (opens new window), setup up a new project from GitHub with the following settings:
  • Build Command: kdupress build docs or yarn docs:build or npm run docs:build
  • Publish directory: docs/.kdupress/dist
  1. Hit the deploy button.

Google Firebase

  1. Make sure you have firebase-tools (opens new window) installed.

  2. Create firebase.json and .firebaserc at the root of your project with the following content:

firebase.json:

{
 "hosting": {
   "public": "./docs/.kdupress/dist",
   "ignore": []
 }
}

.firebaserc:

{
 "projects": {
   "default": "<YOUR_FIREBASE_ID>"
 }
}
  1. After running yarn docs:build or npm run docs:build, deploy using the command firebase deploy.

Surge

  1. First install surge (opens new window), if you haven’t already.

  2. Run yarn docs:build or npm run docs:build.

  3. Deploy to surge by typing surge docs/.kdupress/dist.

You can also deploy to a custom domain (opens new window) by adding surge docs/.kdupress/dist yourdomain.com.

Heroku

  1. Install Heroku CLI (opens new window).

  2. Create a Heroku account by signing up (opens new window).

  3. Run heroku login and fill in your Heroku credentials:

    heroku login
    
  4. Create a file called static.json in the root of your project with the below content:

    static.json:

    {
      "root": "./docs/.kdupress/dist"
    }
    

This is the configuration of your site; read more at heroku-buildpack-static (opens new window).

  1. Set up your Heroku git remote:
# version change
git init
git add .
git commit -m "My site ready for deployment."

# creates a new app with a specified name
heroku apps:create example

# set buildpack for static sites
heroku buildpacks:set https://github.com/heroku/heroku-buildpack-static.git
  1. Deploy your site:
# publish site
git push heroku master

# opens a browser to view the Dashboard version of Heroku CI
heroku open