Stand with Ukraine flag
Try it now Pricing
Professional Edition
Documentation > Contribution Guide > How to contribute your device integration guide
Getting Started
Devices Library Guides Installation Architecture API FAQ
On this page

How to contribute your device integration guide

Introduction to thingsboard.io

Our website is open-sourced. You may find the code of in this repo. Everyone can contribute to the website. The flow is as follows…

What is fork

If you are not familiar with GitHub, please read their documentation or ask a colleague who has an expertise before you proceed. If you have enough knowledge then go through further steps. Ensure that you already have a GitHub account, and you successfully logged in.

Whe-e! Starting now you have a copy of our website in your private GitHub repository.

Local deployment of ThingsBoard documentation repo (website)

Now you can launch the website on your local machine to see the up-to-date version. thingsboard.io uses jekyll site generator. So, in order to run the website on localhost you need a jekyll server installed.

The below commands set up your environment for running GitHub pages locally. Any edits you make will be viewable on a lightweight webserver that runs on your local machine.

Install Ruby 2.2 or higher. If you’re on Ubuntu 20.04.1 LTS, run these commands:

1
2
3
4
5
6
sudo apt-get install software-properties-common
sudo apt-add-repository ppa:brightbox/ruby-ng
sudo apt-get update
sudo apt-get install make ruby ruby-dev libffi-dev g++ zlib1g-dev
sudo gem install github-pages
sudo gem install jekyll bundler
  • If you’re on a Mac, follow these instructions.
  • If you’re on a Windows machine you can use the Ruby Installer. During the installation make sure to check the option for Add Ruby executables to your PATH.

Clone our site:

1
git clone https://github.com/thingsboard/thingsboard.github.io.git

Make any changes you want. Then, to see your changes locally:

1
2
3
cd thingsboard.github.io
bundle install
bundle exec jekyll serve --host 0.0.0.0

In case you change the layout or website structure you might need to execute following command:

1
rm -rf _site .jekyll-metadata && bundle exec jekyll serve --host 0.0.0.0

or execute the below script from the project root directory:

1
./restart.sh

Your copy of the site will then be viewable at: http://localhost:4000 (or wherever Jekyll tells you).

Integration guide pattern

Use this Sample as a base for your guide. This page is located in a path “/docs/samples/sample/sample.md”

Once you open the .md file perform further necessary steps

  • [Step 1] Add new directories to the website structure “/docs/samples/YOUR_INTEGRATION_NAME/”.
  • [Step 2] Add new directories to the website structure “https://img.thingsboard.io/samples/YOUR_INTEGRATION_NAME/”.
  • [Step 3] Create a “YOUR_INTEGRATION_NAME.md” file using the Sample as a base in your newly created directory from [Step 1].
  • [Step 4] Store all of your images for your guide in a path “https://img.thingsboard.io/samples/YOUR_INTEGRATION_NAME/”.
  • [Step 5] Add your company logo to path “https://img.thingsboard.io/partners/”.
  • [Step 6] Add your visit-card to “partners.json” which is located via path “/_includes/” & insert name of your company logo file ([Step 5]) into the “logo” in code bellow.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
      {
        "type": "hardware",
        "program": "",
        "name": "YOUR_INTEGRATION_NAME",
        "logo": "YOUR_LOGO.png",
        "links": {
          "Site": {
            "href": "https://www.YOUR_SITE.com/",
            "target": "_blank"
          },
          "Integration guide": {
            "href": "/docs/samples/PATH_TO_YOUR_GUIDE-FILE_FROM_STEP_3/GUIDE-FILE/"
          }
        },
        "blurb": "YOUR_INTEGRATION_DESCRIPTION."
      }
    

Where:

1
2
3
4
"YOUR_INTEGRATION_NAME" - Name of your integration guide
"YOUR_LOGO.png" - Your company/integration logo file from [Step 5]
"https://www.YOUR_SITE.com/" - Site of your company/integration.
"/docs/samples/PATH_TO_YOUR_GUIDE-FILE_FROM_STEP_3/GUIDE-FILE/" - Full path with file name from Repository root.

Push changes & create Pull Request

Optional steps

You may notify us about your Pull Request (with Pull Request #) via Contact us form or in any other way.