@sanbornagency/nodebb-theme-quest

Custom NodeBB theme for Quest Oracle Community

Usage no npm install needed!

<script type="module">
  import sanbornagencyNodebbThemeQuest from 'https://cdn.skypack.dev/@sanbornagency/nodebb-theme-quest';
</script>

README

QuestOracleCommunity NodeBB Forum – quest-nodebb-forum

Installation

To install the Quest Oracle Community Docker Development Network, please follow the instuctions here.

!!! IMPORTANT !!! Turn off notification & digest emails

If you have chosen a production database, PLEASE TURN OFF NOTIFICATION AND DIGEST EMAILS in the NodeBB admin directly following restortion.

  1. In NodeBB admin, select SETTINGS > EMAIL https://take.ms/TBhrvf
  2. Scroll down to Email Subscriptions
  3. Turn Disable subscriber notification emails ON. https://take.ms/ZkOoG

NOTE: The forums will not display correctly until one of the following build commands has been run in the quest-website directory:

  • $ yarn run development - build for development
  • $ yarn run production - build for distribution
  • $ yarn run watch - build files for development whenever changes are detected

Downloading a Production Database

Should you choose to restore a database, you may download one in the NodeBB Admin.

This is not necessary if you're working with a clean data environment. However, if you've restored an API database with users, this step is highly recommended.

To retrieve a production database and restore it:

  1. Login to the production site using a user with NodeBB admin permissions https://questoraclecommunity.com/login.

  2. To get to the NodeBB admin, got to https://forum.questoraclecommunity.org, then click on the Go to Admin button on the top right of the page.

  3. In NodeBB admin, select Plugins > SASS from the menu Pic

  4. Select DOWNLOAD BACKUP from https://forum.questoraclecommunity.org/admin/plugins/saas

  5. Unzip the downloaded file nodebb.objects.bson.gz to get nodebb.objects.bson

  6. Use mongorestore to restore the database locally

    mongorestore -u <username> -p <password> -d <database> -c <collection>

    mongorestore -d nodebb -c objects

  7. After restoring the database, you will need to add the following indexes:

    [
        {
            "v" : 2,
            "key" : {
                "_id" : 1
            },
            "name" : "_id_",
            "ns" : "nodebb.objects"
        },
        {
            "v" : 2,
            "key" : {
                "expireAt" : 1.0
            },
            "name" : "expireAt_1",
            "ns" : "nodebb.objects",
            "expireAfterSeconds" : 0.0
        },
        {
            "v" : 2,
            "key" : {
                "key" : 1.0,
                "score" : -1.0
            },
            "name" : "_key_1_score-1",
            "ns" : "nodebb.objects"
        },
        {
            "v" : 2,
            "unique" : true,
            "key" : {
                "_key" : 1.0,
                "value" : -1.0
            },
            "name" : "_key_1_value-1",
            "sparse" : true,
            "ns" : "nodebb.objects"
        },
        {
            "v" : 2,
            "key" : {
                "_key" : 1,
                "score" : -1
            },
            "name" : "_key_1_score_-1",
            "ns" : "nodebb.objects",
            "background" : true
        },
        {
            "v" : 2,
            "key" : {
                "_fts" : "text",
                "_ftsx" : 1
            },
            "name" : "TextIndex",
            "weights" : {
                "$**" : 1
            },
            "default_language" : "english",
            "language_override" : "language",
            "ns" : "nodebb.objects",
            "textIndexVersion" : 3
        }
    ]

!!! IMPORTANT !!! Turn off notification & digest emails

If you have chosen a production database, PLEASE TURN OFF NOTIFICATION AND DIGEST EMAILS in the NodeBB admin directly following restortion.

  1. In NodeBB admin, select Settings > Email https://take.ms/TBhrvf
  2. Scroll down to Email Subscriptions
  3. Turn Disable subscriber notification emails ON. https://take.ms/ZkOoG

NodeBB Required Plugins

The following plugins are required for NodeBB. They will be installed when following the Docker Network Installation instructions.

Updating the theme

DEV / STAGING: Commits to the staging branch are automatically deployed to the staging server.

PRODUCTION: To update the NodeBB theme on production:

  1. Increment the version number in package.json and set a matching tag on the master branch for the commit.

  2. Manually trigger the Buddy Pipeline: Publish Theme to Private NPM Repository. This does not activate the changes to the theme on the production server. It just publishes the changes to NPM.js and makes them available to the production server.

  3. After the Buddy pipeline finishes, go to the Forum Admin > Plugins > Quest Settings and click the UPDATE THEME button. https://forum.questoraclecommunity.org/admin/plugins/quest-settings

  4. Once the process completes go to Forum Admin > Plugins > Install Plugins, you should see your new version listed by Latest under @sanbornagency/nodebb-theme-quest. Click to update. https://forum.questoraclecommunity.org/admin/extend/plugins

Docker Container Updates / Changes

If you make changes to the forum's docker container, the container will reset and you'll be presented with the web install screen again. To avoid going through the setup process again do the following:

Open a shell in the container:

$ docker-compose exec forums bash

Install an editor and open config.json:

$ apt-get update && apt-get install -y vim && vi config.json

- OR -

$ apt-get update && apt-get install -y nano && nano config.json

Copy the contents of quest-nodebb-forum/config.json to docker-container:config.json:

{
    "url": "http://forums.quest.local:4567",
    "secret": "0ec25a44-7683-484f-8a41-5c562e6ac5d6",
    "database": "mongo",
    "port": "4567",
    "mongo": {
        "host": "mongo",
        "port": "27017",
        "username": "",
        "password": "",
        "database": "nodebb",
        "uri": ""
    }
}

Run npm install:

$ npm i passport-http-bearer aws-sdk gm dotenv cookies \
    request-promise getstream elasticsearch http-aws-es \
    crypto-js json2env universal-analytics nodebb-plugin-email-helper \
    mime js-cookie json2csv html-entities dotenv

Start / Restart NodeBB:

$ ./nodebb build && ./nodebb dev

- OR -

(terminal OUTSIDE docker container) $ docker-compose restart forums

Running Node BB

NodeBB should be run as part of the whole docker network. To start the docker network run $ docker-compose up -d in the project directory.

Notes

Template file names and directory structure must mirror the templates they're replacing in the Node BB directory, as Node BB's build process will use the theme's templates to overwrite the defaults.