Contributing to documentation¶
Like all contributing to all other aspects of Netdata, we ask that anyone who wants to help with documentation read and abide by the Contributor Convenant Code of Conduct and follow the instructions outlined in our Contributing document.
We also ask you to read our documentation style guide, which, while not complete, will give you some guidance on how we write and organize our documentation.
How contributing to the documentation works¶
There are two ways to contribute to Netdata’s documentation:
Editing in GitHub is a simpler process and is perfect for quick edits to a single document, such as fixing a typo or clarifying a confusing sentence.
Editing locally is more complex, as you need to download the Netdata repository and build the documentation using
mkdocs, but allows you to better organize complex projects. By building documentation locally, you can preview your work using a local web server before you submit your PR.
In both cases, you’ll finish by submitting a pull request (PR). Once you submit your PR, GitHub will initiate a number of jobs, including a Netlify preview. You can use this preview to view the documentation site with your changes applied, which might help you catch any lingering issues.
To continue, follow one of the paths below:
Edit documentation directly on GitHub¶
Start editing documentation on GitHub by clicking the small pencil icon on any page on Netdata’s documentation site. You can find them at the top of every page.
Clicking on this icon will take you to the associated page in the
netdata/netdata repository. Then click the small pencil icon on any documentation file (those ending in the
.md [Markdown] extension) in the
If you know where a file resides in the Netdata repository already, you can skip the step of beginning on the documentation site and go directly to GitHub.
Once you’ve clicked the pencil icon on GitHub, you’ll see a full Markdown version of the file. Make changes as you see fit. You can use the
Preview changes button to ensure your Markdown syntax is working properly.
Propose file change header, write in a descriptive title for your requested change. Beneath that, add a concise descrition of what you’ve changed and why you think it’s important. Then, click the
Propose file change button.
After you’ve hit that button, jump down to our instructions on pull requests and cleanup for your next steps.
This process will create a branch directly on the
netdata/netdata repository, which then requires manual cleanup. If you’re going to make significant documentation contributions, or contribute often, we recommend the local editing process just below.
Edit documentation locally¶
Editing documentation locally is the preferred method for complex changes, PRs that span across multiple documents, or those that change the styling or underlying functionality of the documentation.
Here is the workflow for editing documentation locally. First, create a fork of the Netdata repository, if you don’t have one already. Visit the Netdata repository and click on the
Fork button in the upper-right corner of the window.
GitHub will ask you where you want to clone the repository, and once finished you’ll end up at the index of your forked Netdata repository. Clone your fork to your local machine:
$ git clone https://github.com/YOUR-GITHUB-USERNAME/netdata.git
You can now jump into the directory and explore Netdata’s structure for yourself.
Understanding the structure of Netdata’s documentation¶
All of Netdata’s documentation is stored within the repository itself, as close as possible to the code it corresponds to. Many sub-folders contain a
README.md file, which is then used to populate the documentation about that feature/component of Netdata.
For example, the file at
https://docs.netdata.cloud/packaging/installer/ and is our installation documentation. By co-locating it with quick-start installtion code, we ensure documentation is always tightly knit with the functions it describes.
You might find other
.md files within these directories. The
packaging/installer/ folder also contains
UNINSTALL.md, which become
If the documentation you’re working on has a direct correlation to some component of Netdata, place it into the correct folder and either name it
README.md for generic documentation, or with another name for very specific instructions.
At the root of the Netdata repository is a
docs/ folder. Inside this folder we place documentation that does not have a direct relationship to a specific component of Netdata. It’s where we house our getting started guide, guides on running Netdata behind Nginx, and more.
If the documentation you’re working on doesn’t have a direct relaionship to a component of Netdata, it can be placed in this
Make your edits¶
Now that you’re set up and understand where to find or create your
.md file, you can now begin to make your edits. Just use your favorite editor and keep in mind our style guide as you work.
If you add a new file to the documentation, you may need to modify the
buildyaml.sh file to ensure it’s added to the site’s navigation. This is true for any file added to the
Be sure to periodically add/commit your edits so that you don’t lose your work! We use version control software for a reason.
Build the documentation¶
Building the documentation periodically gives you a glimpse into the final product, and is generally required if you’re making changes to the table of contents.
We have only tested the build process on Linux. Initial tests on OS X have been unsuccessful. Windows is fully untested at this point, but we would love to know if it works there as well!
To build the documentation, you need
mkdocs-material installed on your machine.
Follow the Python installation instructions for your machine.
pip, which was installed alongside Python, to install
mkdocs-material. Your operating system might force you to use
pip3 instead, dependin on which version of Python you have installed.
$ pip install mkdocs mkdocs-material
If you’re having trouble with the installation of Python,
mkdocs-material, try looking into the
mkdocs installation instructions.
pip is finished installing, navigate to the root directory of the Netdata repository and run the documentation generator script.
$ sh docs/generator/buildhtml.sh
This process will take some time. Once finished, the built documentation site will be located at
Run a local web server to test documentation¶
The best way to view the documentation site you just built is to run a simple web server from the
docs/generator/build/ directory. So, navigate there and run a Python-based web server:
$ cd docs/generator/build/ $ python3 -m http.server 20000
Feel free to replace the port number you want this web server to listen on (port
20000 in this case [only one higher than the agent!]).
Open your web browser and navigate to
http://localhost:20000. If you replaced the port earlier, change it here as well. You can now navigate through the documentation as you would on the live site!
Pull requests and final steps¶
When you’re finished with your changes, add and commit them to your fork of the Netdata repository. Head over to GitHub to create your pull request (PR).
Once we receive your pull request (PR), we’ll take time to read through it and assess it for correctness, conciseness, and overall quality. We may point to specific sections and ask for additional information or other fixes.
- Read up on the Netdata documentation style guide.