diff --git a/docs/html/searchindex.js b/docs/html/searchindex.js
index 943db34..142c144 100644
--- a/docs/html/searchindex.js
+++ b/docs/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["index"], "filenames": ["index.md"], "titles": ["RISC-V Sample Document"], "terms": {"thi": 0, "i": 0, "text": 0, "type": 0, "make": 0, "html": 0, "doc": 0, "directori": 0, "build": 0, "The": 0, "result": 0, "found": 0, "For": 0, "more": 0, "inform": 0, "us": 0, "markdown": 0, "see": 0, "myst": 0, "project": 0, "documet": 0}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"risc": 0, "v": 0, "sampl": 0, "document": 0}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx": 57}, "alltitles": {"RISC-V Sample Document": [[0, "risc-v-sample-document"]]}, "indexentries": {}})
\ No newline at end of file
+Search.setIndex({"alltitles": {"Adding RISC-V agents in Jenkins": [[2, "adding-risc-v-agents-in-jenkins"]], "Becoming an RISC-V Ecosystem Labs Partner": [[0, "becoming-an-risc-v-ecosystem-labs-partner"]], "Hosting RISC-V CI through Jenkins": [[2, "hosting-risc-v-ci-through-jenkins"]], "Hosting a Continuous Integration (CI) Project at a Lab": [[1, "hosting-a-continuous-integration-ci-project-at-a-lab"]], "Install prerequisites": [[2, "install-prerequisites"]], "Installing Jenkins": [[2, "installing-jenkins"]], "RISC-V Labs Best Practices Documentation": [[3, "risc-v-labs-best-practices-documentation"]], "Set up agent in Jenkins": [[2, "set-up-agent-in-jenkins"]]}, "docnames": ["becoming_lab_partner", "ci_hosting", "hosting_jenkins", "index"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1}, "filenames": ["becoming_lab_partner.rst", "ci_hosting.rst", "hosting_jenkins.rst", "index.rst"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"17": 2, "22": 2, "For": 2, "If": 2, "In": 2, "abov": 2, "access": 2, "ad": [], "add": 2, "advanc": 2, "agent": 1, "also": 2, "an": 3, "apt": 2, "ar": 2, "assum": 2, "autom": 1, "avail": 2, "bar": 2, "bash": [], "becom": 3, "below": 2, "book": [], "build": [1, 2], "can": [1, 2], "chang": 2, "check": 2, "ci": 3, "click": 2, "code": 1, "com": 2, "comput": [1, 2], "concurr": 2, "connect": 2, "continu": 3, "control": [1, 2], "creat": 2, "credenti": 2, "current": 1, "describ": 2, "descript": 2, "develop": 1, "displai": 2, "doc": [], "ecosystem": 3, "emul": 1, "enter": 2, "etc": 1, "executor": 2, "follow": [1, 2], "from": 2, "gave": 2, "github": [1, 2], "gitlab": 1, "given": 2, "go": 2, "grant": 2, "hardwar": 1, "have": 2, "host": 3, "how": 2, "http": 2, "i": 2, "indic": 2, "initi": 2, "instal": [], "instanc": [1, 2], "instruct": 2, "integr": 3, "io": [], "ip": 2, "jdk": 2, "jenkin": [1, 3], "jenkinsci": 2, "kei": 2, "kind": 2, "launch": 2, "leav": 2, "left": 2, "link": 2, "linux": 2, "list": 2, "make": 2, "mani": 2, "manual": 2, "master": 2, "mean": 1, "mention": 2, "method": 2, "name": 2, "need": 2, "new": 2, "newer": 2, "next": 2, "node": 2, "now": 2, "number": 2, "onc": 2, "openjdk": 2, "oper": 2, "other": 2, "our": 2, "overview": 3, "page": 2, "partner": 3, "password": 2, "perman": 2, "permiss": 2, "pipelin": 2, "port": 2, "prefer": 2, "prerequisit": [], "process": 1, "project": 3, "provid": 1, "public": 1, "refer": 2, "repositori": 2, "requir": 2, "risc": 1, "run": 2, "runner": [1, 2], "sake": 2, "save": 2, "see": 2, "select": 2, "server": 2, "set": [], "simplic": 2, "sinc": 2, "slave": 2, "sourc": [1, 2], "ssh": 2, "start": 2, "statu": 2, "step": 2, "strategi": 2, "sudo": 2, "suitabl": 2, "support": 1, "sure": 2, "system": 1, "tbd": 3, "than": 2, "thei": 2, "them": 2, "thi": 2, "through": 3, "trust": 2, "ubuntu": 2, "up": [], "url": 2, "us": [1, 2], "user": 2, "usernam": 2, "v": 1, "verif": 2, "version": 1, "via": 2, "web": 2, "which": 2, "who": 2, "wish": 2, "www": [], "yada": 0, "yet": 2, "you": 2, "your": 2}, "titles": ["Becoming an RISC-V Ecosystem Labs Partner", "Hosting a Continuous Integration (CI) Project at a Lab", "Hosting RISC-V CI through Jenkins", "RISC-V Labs Best Practices Documentation"], "titleterms": {"ad": 2, "agent": 2, "an": 0, "becom": 0, "best": 3, "ci": [1, 2], "continu": 1, "document": 3, "ecosystem": 0, "host": [1, 2], "instal": 2, "integr": 1, "jenkin": 2, "lab": [0, 1, 3], "partner": 0, "practic": 3, "prerequisit": 2, "project": 1, "risc": [0, 2, 3], "set": 2, "through": 2, "up": 2, "v": [0, 2, 3]}})
\ No newline at end of file
diff --git a/source/assets/hosting_jenkins_1.png b/source/assets/hosting_jenkins_1.png
new file mode 100644
index 0000000..12ab6cc
Binary files /dev/null and b/source/assets/hosting_jenkins_1.png differ
diff --git a/source/assets/hosting_jenkins_2.png b/source/assets/hosting_jenkins_2.png
new file mode 100644
index 0000000..5b6a696
Binary files /dev/null and b/source/assets/hosting_jenkins_2.png differ
diff --git a/source/assets/hosting_jenkins_3.png b/source/assets/hosting_jenkins_3.png
new file mode 100644
index 0000000..fbecbd0
Binary files /dev/null and b/source/assets/hosting_jenkins_3.png differ
diff --git a/source/assets/hosting_jenkins_4.png b/source/assets/hosting_jenkins_4.png
new file mode 100644
index 0000000..1d3daf4
Binary files /dev/null and b/source/assets/hosting_jenkins_4.png differ
diff --git a/source/assets/hosting_jenkins_5.png b/source/assets/hosting_jenkins_5.png
new file mode 100644
index 0000000..a514869
Binary files /dev/null and b/source/assets/hosting_jenkins_5.png differ
diff --git a/source/becoming_lab_partner.md b/source/becoming_lab_partner.md
deleted file mode 100644
index 7d1a351..0000000
--- a/source/becoming_lab_partner.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Becoming an RISC-V Ecosystem Labs Partner
-
-Yada yada...
diff --git a/source/becoming_lab_partner.rst b/source/becoming_lab_partner.rst
new file mode 100644
index 0000000..38eae97
--- /dev/null
+++ b/source/becoming_lab_partner.rst
@@ -0,0 +1,5 @@
+==========================================
+Becoming an RISC-V Ecosystem Labs Partner
+==========================================
+
+Yada yada...
diff --git a/source/ci_hosting.md b/source/ci_hosting.md
deleted file mode 100644
index 2999ea2..0000000
--- a/source/ci_hosting.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Hosting a Continuous Integration (CI) Project at a Lab
-
-Good details to come...
diff --git a/source/ci_hosting.rst b/source/ci_hosting.rst
new file mode 100644
index 0000000..b6b1d62
--- /dev/null
+++ b/source/ci_hosting.rst
@@ -0,0 +1,16 @@
+======================================================
+Hosting a Continuous Integration (CI) Project at a Lab
+======================================================
+
+Hosting a continuous integration project at a lab means providing RISC-V hardware or emulated compute instances as CI runners/agents for public use. CI compute instances can be integrated with version control systems such as GitHub, GitLab, etc. and can automate the build process of the source code for developers.
+
+Following version control systems currently support RISC-V CI:
+
+#. Jenkins
+#. GitLab
+
+.. toctree::
+ :hidden:
+ :maxdepth: 2
+
+ hosting_jenkins
\ No newline at end of file
diff --git a/source/hosting_jenkins.rst b/source/hosting_jenkins.rst
new file mode 100644
index 0000000..7d99699
--- /dev/null
+++ b/source/hosting_jenkins.rst
@@ -0,0 +1,63 @@
+==================================
+Hosting RISC-V CI through Jenkins
+==================================
+
+This page describes how users can host RISC-V CI via Jenkins. For hosting CI through Jenkins, follow the steps described below.
+
+Installing Jenkins
+===================
+
+Jenkins install instructions are given at `this link `_.
+
+If you wish to build Jenkins from source, the repository is available at ``_
+
+Adding RISC-V agents in Jenkins
+===============================
+
+Agents are the compute instances in Jenkins on which CI builds are run.
+Once Jenkins is installed, the next step is to add RISC-V agents in Jenkins. They are also referred to as slaves, build executors, or runners.
+
+Make sure that Jenkins Master (the compute instance on which Jenkins web server is running) is accessible by the RISC-V compute instance you wish to add as a slave.
+
+*For the sake of simplicity, it is assumed that RISC-V compute instances have Linux operating installed on them (preferably Ubuntu) and are accessible through SSH*
+
+Install prerequisites
+---------------------
+
+Compute instances need OpenJDK 17 or newer installed on them to be hosted on Jenkins.
+
+.. code::
+
+ sudo apt install openjdk-17-jdk
+
+
+Set up agent in Jenkins
+-----------------------
+
+* In the Jenkins web server, go to :code:`Build Executor Status > New Node`
+
+.. image:: assets/hosting_jenkins_1.png
+
+.. image:: assets/hosting_jenkins_2.png
+
+* Add a Node name (this will be displayed in the build executor list) and select Permanent Agent
+
+* Add a suitable description for users who will be using that compute instance
+
+.. image:: assets/hosting_jenkins_3.png
+
+* Add the number of executors (this indicates how many builds can run concurrently)
+* Change :code:`Launch method` to :code:`Launch agents via SSH` since our agent is accessible via SSH
+* In :code:`Host`, add the IP or URL which can be used to access the compute instance
+* In :code:`Credentials`, click on :code:`Add` if you have not created the credentials yet and add the credentials :code:`Kind` as :code:`Username with password` (these are the credentials which you can use to SSH to your RISC-V compute instance)
+* In :code:`Host Key Verification Strategy`, select :code:`Manually trusted key Verification strategy` and also check :code:`Require manual verification of initial connection`
+* If you access the RISC-V compute instance through a port other than 22, click on :code:`Advanced` and enter :code:`Port`
+* Leave other settings as is and click save
+
+Once the settings are saved, you will see :code:`Trust SSH Host Key` on the left bar. Click on it and grant permission to use the compute instance to the Jenkins controller.
+
+.. image:: assets/hosting_jenkins_4.png
+
+.. image:: assets/hosting_jenkins_5.png
+
+Now the Jenkins agent is added and can be used. For using Jenkins as mentioned above instance, use the name which you gave it at the start in your build pipelines of Jenkins.
diff --git a/source/index.rst b/source/index.rst
index bc8d72e..4e94962 100644
--- a/source/index.rst
+++ b/source/index.rst
@@ -8,6 +8,7 @@ TBD overview...
Documents
.. toctree::
+ :includehidden:
:maxdepth: 2
becoming_lab_partner