diff --git a/website/docs/developer-guide/chaoscenter-developer-guide.md b/website/docs/developer-guide/chaoscenter-developer-guide.md
new file mode 100644
index 00000000..a4fd3d2d
--- /dev/null
+++ b/website/docs/developer-guide/chaoscenter-developer-guide.md
@@ -0,0 +1,265 @@
+---
+id: chaoscenter-developer-guide
+title: ChaosCenter Developer Guide
+sidebar_label: ChaosCenter Developer Guide
+---
+
+---
+
+## **Prerequisites**
+:::note
+This document is intended to be implemented locally. Please do not use in dev or prod environments.
+:::
+
+- Kubernetes 1.17 or later
+- Helm3 or Kubectl
+- Node and npm
+- Docker
+- Golang
+- Local Kubernetes Cluster (via minikube, k3s or kind)
+
+## **Control Plane**
+Backend components consist of three microservices
+1. GraphQL server
+2. Authentication server
+3. MongoDB
+
+Frontend component
+1. React
+
+## **Steps to run the Control Plane**
+
+### 1. Run MongoDB
+
+Step-1: Pull and run the image
+
+```bash
+docker pull mongo:5
+
+docker network create mongo-cluster
+
+docker run -d --net mongo-cluster -p 27015:27015 --name m1 mongo:4.2 mongod --replSet rs0 --port 27015
+docker run -d --net mongo-cluster -p 27016:27016 --name m2 mongo:4.2 mongod --replSet rs0 --port 27016
+docker run -d --net mongo-cluster -p 27017:27017 --name m3 mongo:4.2 mongod --replSet rs0 --port 27017
+```
+
+Step-2: Add hosts
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+
+
+
+```bash
+# add hosts in hosts
+notepad C:\Windows\System32\drivers\etc\hosts
+
+# add the below line
+127.0.0.1 m1 m2 m3
+```
+
+
+
+
+```bash
+# add hosts in hosts
+sudo vim /etc/hosts
+
+# add the below line
+127.0.0.1 m1 m2 m3
+```
+
+
+
+
+
+Step-3: Configure the mongoDB replica set
+
+```bash
+docker exec -it m1 mongo -port 27015
+
+config={"_id":"rs0","members":[{"_id":0,"host":"m1:27015"},{"_id":1,"host":"m2:27016"},{"_id":2,"host":"m3:27017"}]}
+
+rs.initiate(config)
+
+db.getSiblingDB("admin").createUser({user:"admin",pwd:"1234",roles:[{role:"root",db:"admin"}]});
+```
+
+### 2. Run the Authentication Server
+
+:::note
+Make sure to run backend services before the frontend. If you haven’t already cloned the litmus project do so from the `litmuschaos/litmus` repository
+:::
+
+```bash
+git clone https://github.com/litmuschaos/litmus.git litmus --depth 1
+```
+
+
+Step-1: Export the following environment variables
+
+```bash
+export ADMIN_USERNAME=admin
+export ADMIN_PASSWORD=litmus
+export DB_SERVER="mongodb://m1:27015,m2:27016,m3:27017/?replicaSet=rs0"
+export DB_USER=admin
+export DB_PASSWORD=1234
+export JWT_SECRET=litmus-portal@123
+export PORTAL_ENDPOINT=http://localhost:8080
+export LITMUS_SVC_ENDPOINT=""
+export SELF_AGENT=false
+export INFRA_SCOPE=cluster
+export INFRA_NAMESPACE=litmus
+export LITMUS_PORTAL_NAMESPACE=litmus
+export PORTAL_SCOPE=namespace
+export SUBSCRIBER_IMAGE=litmuschaos/litmusportal-subscriber:ci
+export EVENT_TRACKER_IMAGE=litmuschaos/litmusportal-event-tracker:ci
+export CONTAINER_RUNTIME_EXECUTOR=k8sapi
+export ARGO_WORKFLOW_CONTROLLER_IMAGE=argoproj/workflow-controller:v2.11.0
+export ARGO_WORKFLOW_EXECUTOR_IMAGE=argoproj/argoexec:v2.11.0
+export CHAOS_CENTER_SCOPE=cluster
+export WORKFLOW_HELPER_IMAGE_VERSION=3.0.0
+export LITMUS_CHAOS_OPERATOR_IMAGE=litmuschaos/chaos-operator:3.0.0
+export LITMUS_CHAOS_RUNNER_IMAGE=litmuschaos/chaos-runner:3.0.0
+export LITMUS_CHAOS_EXPORTER_IMAGE=litmuschaos/chaos-exporter:3.0.0
+export VERSION=ci
+export HUB_BRANCH_NAME=v2.0.x
+export INFRA_DEPLOYMENTS="[\"app=chaos-exporter\", \"name=chaos-operator\", \"app=event-tracker\",\"app=workflow-controller\"]"
+export INFRA_COMPATIBLE_VERSIONS='["0.2.0", "0.1.0","ci"]'
+export DEFAULT_HUB_BRANCH_NAME=master
+export ENABLE_INTERNAL_TLS=false
+export REST_PORT=3000
+export GRPC_PORT=3030
+```
+
+
+
+
+Docker or Hyper-V is reserving that port range. You can use 3030 ports by running the command below
+
+```bash
+netsh interface ipv4 show excludedportrange protocol=tcp
+net stop winnat
+netsh int ipv4 add excludedportrange protocol=tcp startport=3030 numberofports=1
+net start winnat
+```
+
+
+
+
+Step-2: Run the go application
+
+```bash
+cd chaoscenter/authentication/api
+go run main.go
+```
+
+### 3. Run the GraphQL Server
+
+Step-1: Export the following environment variables
+
+```bash
+export DB_SERVER="mongodb://m1:27015,m2:27016,m3:27017/?replicaSet=rs0"
+export DB_USER=admin
+export DB_PASSWORD=1234
+export JWT_SECRET=litmus-portal@123
+export PORTAL_ENDPOINT=http://localhost:8080
+export LITMUS_SVC_ENDPOINT=""
+export SELF_AGENT=false
+export INFRA_SCOPE=cluster
+export INFRA_NAMESPACE=litmus
+export LITMUS_PORTAL_NAMESPACE=litmus
+export PORTAL_SCOPE=namespace
+export SUBSCRIBER_IMAGE=litmuschaos/litmusportal-subscriber:ci
+export EVENT_TRACKER_IMAGE=litmuschaos/litmusportal-event-tracker:ci
+export CONTAINER_RUNTIME_EXECUTOR=k8sapi
+export ARGO_WORKFLOW_CONTROLLER_IMAGE=argoproj/workflow-controller:v2.11.0
+export ARGO_WORKFLOW_EXECUTOR_IMAGE=argoproj/argoexec:v2.11.0
+export CHAOS_CENTER_SCOPE=cluster
+export WORKFLOW_HELPER_IMAGE_VERSION=3.0.0
+export LITMUS_CHAOS_OPERATOR_IMAGE=litmuschaos/chaos-operator:3.0.0
+export LITMUS_CHAOS_RUNNER_IMAGE=litmuschaos/chaos-runner:3.0.0
+export LITMUS_CHAOS_EXPORTER_IMAGE=litmuschaos/chaos-exporter:3.0.0
+export ADMIN_USERNAME=admin
+export ADMIN_PASSWORD=litmus
+export VERSION=ci
+export HUB_BRANCH_NAME=v2.0.x
+export INFRA_DEPLOYMENTS="[\"app=chaos-exporter\", \"name=chaos-operator\", \"app=event-tracker\",\"app=workflow-controller\"]"
+export INFRA_COMPATIBLE_VERSIONS='["0.2.0", "0.1.0","ci"]'
+export DEFAULT_HUB_BRANCH_NAME=master
+```
+
+Step-2: Run the go application
+
+```bash
+cd chaoscenter/graphql/server
+go run server.go
+```
+
+### 4. Run Frontend
+
+:::note
+Make sure to run backend services before the frontend.
+:::
+
+Step-1: Install all the dependencies
+
+```bash
+cd litmus/chaoscenter/web
+yarn
+```
+
+Step-2: Generate the ssl certificate
+
+
+
+The command you run is in the script/generate-certificate.sh file, but it doesn't work in a Windows environment, so please run the script below instead
+
+```bash
+mkdir -p certificates
+
+openssl req -x509 -newkey rsa:4096 -keyout certificates/localhost-key.pem -out certificates/localhost.pem -days 365 -nodes -subj '//C=US'
+```
+
+
+
+
+```bash
+yarn generate-certificate
+```
+
+
+
+
+Step-3: Run the frontend project
+
+```bash
+yarn dev
+```
+
+> It’ll prompt you to start the development server at port `8185` or any other port than 3000 since it is already being used by the auth server.
+
+Once you are able to see the Login Screen of Litmus use the following default credentials
+
+```
+Username: admin
+Password: litmus
+```
+
+
+
+
+## **Steps to connect Chaos Infrastructure**
+### Using Litmusctl
+Use [litmusctl](https://github.com/litmuschaos/litmusctl) on the same box/local cluster and connect an ns infrastructure
+
+### Using Chaoscenter
+Use Chaoscenter to connect an Infrastructure, download the manifest and apply it on k3d/minikube. Once the pods are up(except the subscriber), run the following command:
+
+```bash
+cd subscriber
+
+INFRA_ID= ACCESS_KEY= INFRA_SCOPE=cluster SERVER_ADDR=http://localhost:8080/query INFRA_NAMESPACE=litmus IS_INFRA_CONFIRMED="false" COMPONENTS="DEPLOYMENTS: ["app=chaos-exporter", "name=chaos-operator", "app=workflow-controller"]" START_TIME=1631089756 VERSION="ci" AGENT_POD="subscriber-78f6bd4db5-ck5d9" SKIP_
+SSL_VERIFY="false" go run subscriber.go -kubeconfig ~/.kube/config
+```
diff --git a/website/sidebars.js b/website/sidebars.js
index cb933732..6b5cdc39 100644
--- a/website/sidebars.js
+++ b/website/sidebars.js
@@ -106,6 +106,9 @@ module.exports = {
'user-guides/uninstall-litmus'
]
},
+ {
+ 'Developer Guide': ['developer-guide/chaoscenter-developer-guide']
+ },
{
Litmusctl: ['litmusctl/installation', 'litmusctl/litmusctl-usage']
},
diff --git a/website/versioned_docs/version-3.10.0/developer-guide/chaoscenter-developer-guide.md b/website/versioned_docs/version-3.10.0/developer-guide/chaoscenter-developer-guide.md
new file mode 100644
index 00000000..021405ff
--- /dev/null
+++ b/website/versioned_docs/version-3.10.0/developer-guide/chaoscenter-developer-guide.md
@@ -0,0 +1,267 @@
+---
+id: chaoscenter-developer-guide
+title: ChaosCenter Developer Guide
+sidebar_label: ChaosCenter Developer Guide
+---
+
+---
+
+## **Prerequisites**
+:::note
+This document is intended to be implemented locally. Please do not use in dev or prod environments.
+:::
+
+- Kubernetes 1.17 or later
+- Helm3 or Kubectl
+- Node and npm
+- Docker
+- Golang
+- Local Kubernetes Cluster (via minikube, k3s or kind)
+
+## **Control Plane**
+Backend components consist of three microservices
+1. GraphQL server
+2. Authentication server
+3. MongoDB
+
+Frontend component
+1. React
+
+## **Steps to run the Control Plane**
+
+### 1. Run MongoDB
+
+Step-1: Pull and run the image
+
+```bash
+docker pull mongo:5
+
+docker network create mongo-cluster
+
+docker run -d --net mongo-cluster -p 27015:27015 --name m1 mongo:4.2 mongod --replSet rs0 --port 27015
+docker run -d --net mongo-cluster -p 27016:27016 --name m2 mongo:4.2 mongod --replSet rs0 --port 27016
+docker run -d --net mongo-cluster -p 27017:27017 --name m3 mongo:4.2 mongod --replSet rs0 --port 27017
+```
+
+Step-2: Add hosts
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+
+
+
+```bash
+# add hosts in hosts
+notepad C:\Windows\System32\drivers\etc\hosts
+
+# add the below line
+127.0.0.1 m1 m2 m3
+```
+
+
+
+
+```bash
+# add hosts in hosts
+sudo vim /etc/hosts
+
+# add the below line
+127.0.0.1 m1 m2 m3
+```
+
+
+
+
+
+Step-3: Configure the mongoDB replica set
+
+```bash
+docker exec -it m1 mongo -port 27015
+
+config={"_id":"rs0","members":[{"_id":0,"host":"m1:27015"},{"_id":1,"host":"m2:27016"},{"_id":2,"host":"m3:27017"}]}
+
+rs.initiate(config)
+
+db.getSiblingDB("admin").createUser({user:"admin",pwd:"1234",roles:[{role:"root",db:"admin"}]});
+```
+
+### 2. Run the Authentication Server
+
+:::note
+Make sure to run backend services before the frontend. If you haven’t already cloned the litmus project do so from the `litmuschaos/litmus` repository
+:::
+
+```bash
+git clone https://github.com/litmuschaos/litmus.git litmus --depth 1
+```
+
+
+Step-1: Export the following environment variables
+
+```bash
+export ADMIN_USERNAME=admin
+export ADMIN_PASSWORD=litmus
+export DB_SERVER="mongodb://m1:27015,m2:27016,m3:27017/?replicaSet=rs0"
+export DB_USER=admin
+export DB_PASSWORD=1234
+export JWT_SECRET=litmus-portal@123
+export PORTAL_ENDPOINT=http://localhost:8080
+export LITMUS_SVC_ENDPOINT=""
+export SELF_AGENT=false
+export INFRA_SCOPE=cluster
+export INFRA_NAMESPACE=litmus
+export LITMUS_PORTAL_NAMESPACE=litmus
+export PORTAL_SCOPE=namespace
+export SUBSCRIBER_IMAGE=litmuschaos/litmusportal-subscriber:ci
+export EVENT_TRACKER_IMAGE=litmuschaos/litmusportal-event-tracker:ci
+export CONTAINER_RUNTIME_EXECUTOR=k8sapi
+export ARGO_WORKFLOW_CONTROLLER_IMAGE=argoproj/workflow-controller:v2.11.0
+export ARGO_WORKFLOW_EXECUTOR_IMAGE=argoproj/argoexec:v2.11.0
+export CHAOS_CENTER_SCOPE=cluster
+export WORKFLOW_HELPER_IMAGE_VERSION=3.0.0
+export LITMUS_CHAOS_OPERATOR_IMAGE=litmuschaos/chaos-operator:3.0.0
+export LITMUS_CHAOS_RUNNER_IMAGE=litmuschaos/chaos-runner:3.0.0
+export LITMUS_CHAOS_EXPORTER_IMAGE=litmuschaos/chaos-exporter:3.0.0
+export ADMIN_USERNAME=admin
+export ADMIN_PASSWORD=litmus
+export VERSION=ci
+export HUB_BRANCH_NAME=v2.0.x
+export INFRA_DEPLOYMENTS="[\"app=chaos-exporter\", \"name=chaos-operator\", \"app=event-tracker\",\"app=workflow-controller\"]"
+export INFRA_COMPATIBLE_VERSIONS='["0.2.0", "0.1.0","ci"]'
+export DEFAULT_HUB_BRANCH_NAME=master
+export ENABLE_INTERNAL_TLS=false
+export REST_PORT=3000
+export GRPC_PORT=3030
+```
+
+
+
+
+Docker or Hyper-V is reserving that port range. You can use 3030 ports by running the command below
+
+```bash
+netsh interface ipv4 show excludedportrange protocol=tcp
+net stop winnat
+netsh int ipv4 add excludedportrange protocol=tcp startport=3030 numberofports=1
+net start winnat
+```
+
+
+
+
+Step-2: Run the go application
+
+```bash
+cd chaoscenter/authentication/api
+go run main.go
+```
+
+### 3. Run the GraphQL Server
+
+Step-1: Export the following environment variables
+
+```bash
+export DB_SERVER="mongodb://m1:27015,m2:27016,m3:27017/?replicaSet=rs0"
+export DB_USER=admin
+export DB_PASSWORD=1234
+export JWT_SECRET=litmus-portal@123
+export PORTAL_ENDPOINT=http://localhost:8080
+export LITMUS_SVC_ENDPOINT=""
+export SELF_AGENT=false
+export INFRA_SCOPE=cluster
+export INFRA_NAMESPACE=litmus
+export LITMUS_PORTAL_NAMESPACE=litmus
+export PORTAL_SCOPE=namespace
+export SUBSCRIBER_IMAGE=litmuschaos/litmusportal-subscriber:ci
+export EVENT_TRACKER_IMAGE=litmuschaos/litmusportal-event-tracker:ci
+export CONTAINER_RUNTIME_EXECUTOR=k8sapi
+export ARGO_WORKFLOW_CONTROLLER_IMAGE=argoproj/workflow-controller:v2.11.0
+export ARGO_WORKFLOW_EXECUTOR_IMAGE=argoproj/argoexec:v2.11.0
+export CHAOS_CENTER_SCOPE=cluster
+export WORKFLOW_HELPER_IMAGE_VERSION=3.0.0
+export LITMUS_CHAOS_OPERATOR_IMAGE=litmuschaos/chaos-operator:3.0.0
+export LITMUS_CHAOS_RUNNER_IMAGE=litmuschaos/chaos-runner:3.0.0
+export LITMUS_CHAOS_EXPORTER_IMAGE=litmuschaos/chaos-exporter:3.0.0
+export ADMIN_USERNAME=admin
+export ADMIN_PASSWORD=litmus
+export VERSION=ci
+export HUB_BRANCH_NAME=v2.0.x
+export INFRA_DEPLOYMENTS="[\"app=chaos-exporter\", \"name=chaos-operator\", \"app=event-tracker\",\"app=workflow-controller\"]"
+export INFRA_COMPATIBLE_VERSIONS='["0.2.0", "0.1.0","ci"]'
+export DEFAULT_HUB_BRANCH_NAME=master
+```
+
+Step-2: Run the go application
+
+```bash
+cd chaoscenter/graphql/server
+go run server.go
+```
+
+### 4. Run Frontend
+
+:::note
+Make sure to run backend services before the frontend.
+:::
+
+Step-1: Install all the dependencies
+
+```bash
+cd litmus/chaoscenter/web
+yarn
+```
+
+Step-2: Generate the ssl certificate
+
+
+
+The command you run is in the script/generate-certificate.sh file, but it doesn't work in a Windows environment, so please run the script below instead
+
+```bash
+mkdir -p certificates
+
+openssl req -x509 -newkey rsa:4096 -keyout certificates/localhost-key.pem -out certificates/localhost.pem -days 365 -nodes -subj '//C=US'
+```
+
+
+
+
+```bash
+yarn generate-certificate
+```
+
+
+
+
+Step-3: Run the frontend project
+
+```bash
+yarn dev
+```
+
+> It’ll prompt you to start the development server at port `8185` or any other port than 3000 since it is already being used by the auth server.
+
+Once you are able to see the Login Screen of Litmus use the following default credentials
+
+```
+Username: admin
+Password: litmus
+```
+
+
+
+
+## **Steps to connect Chaos Infrastructure**
+### Using Litmusctl
+Use [litmusctl](https://github.com/litmuschaos/litmusctl) on the same box/local cluster and connect an ns infrastructure
+
+### Using Chaoscenter
+Use Chaoscenter to connect an Infrastructure, download the manifest and apply it on k3d/minikube. Once the pods are up(except the subscriber), run the following command:
+
+```bash
+cd subscriber
+
+INFRA_ID= ACCESS_KEY= INFRA_SCOPE=cluster SERVER_ADDR=http://localhost:8080/query INFRA_NAMESPACE=litmus IS_INFRA_CONFIRMED="false" COMPONENTS="DEPLOYMENTS: ["app=chaos-exporter", "name=chaos-operator", "app=workflow-controller"]" START_TIME=1631089756 VERSION="ci" AGENT_POD="subscriber-78f6bd4db5-ck5d9" SKIP_
+SSL_VERIFY="false" go run subscriber.go -kubeconfig ~/.kube/config
+```
\ No newline at end of file
diff --git a/website/versioned_docs/version-3.9.1/developer-guide/chaoscenter-developer-guide.md b/website/versioned_docs/version-3.9.1/developer-guide/chaoscenter-developer-guide.md
new file mode 100644
index 00000000..021405ff
--- /dev/null
+++ b/website/versioned_docs/version-3.9.1/developer-guide/chaoscenter-developer-guide.md
@@ -0,0 +1,267 @@
+---
+id: chaoscenter-developer-guide
+title: ChaosCenter Developer Guide
+sidebar_label: ChaosCenter Developer Guide
+---
+
+---
+
+## **Prerequisites**
+:::note
+This document is intended to be implemented locally. Please do not use in dev or prod environments.
+:::
+
+- Kubernetes 1.17 or later
+- Helm3 or Kubectl
+- Node and npm
+- Docker
+- Golang
+- Local Kubernetes Cluster (via minikube, k3s or kind)
+
+## **Control Plane**
+Backend components consist of three microservices
+1. GraphQL server
+2. Authentication server
+3. MongoDB
+
+Frontend component
+1. React
+
+## **Steps to run the Control Plane**
+
+### 1. Run MongoDB
+
+Step-1: Pull and run the image
+
+```bash
+docker pull mongo:5
+
+docker network create mongo-cluster
+
+docker run -d --net mongo-cluster -p 27015:27015 --name m1 mongo:4.2 mongod --replSet rs0 --port 27015
+docker run -d --net mongo-cluster -p 27016:27016 --name m2 mongo:4.2 mongod --replSet rs0 --port 27016
+docker run -d --net mongo-cluster -p 27017:27017 --name m3 mongo:4.2 mongod --replSet rs0 --port 27017
+```
+
+Step-2: Add hosts
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+
+
+
+```bash
+# add hosts in hosts
+notepad C:\Windows\System32\drivers\etc\hosts
+
+# add the below line
+127.0.0.1 m1 m2 m3
+```
+
+
+
+
+```bash
+# add hosts in hosts
+sudo vim /etc/hosts
+
+# add the below line
+127.0.0.1 m1 m2 m3
+```
+
+
+
+
+
+Step-3: Configure the mongoDB replica set
+
+```bash
+docker exec -it m1 mongo -port 27015
+
+config={"_id":"rs0","members":[{"_id":0,"host":"m1:27015"},{"_id":1,"host":"m2:27016"},{"_id":2,"host":"m3:27017"}]}
+
+rs.initiate(config)
+
+db.getSiblingDB("admin").createUser({user:"admin",pwd:"1234",roles:[{role:"root",db:"admin"}]});
+```
+
+### 2. Run the Authentication Server
+
+:::note
+Make sure to run backend services before the frontend. If you haven’t already cloned the litmus project do so from the `litmuschaos/litmus` repository
+:::
+
+```bash
+git clone https://github.com/litmuschaos/litmus.git litmus --depth 1
+```
+
+
+Step-1: Export the following environment variables
+
+```bash
+export ADMIN_USERNAME=admin
+export ADMIN_PASSWORD=litmus
+export DB_SERVER="mongodb://m1:27015,m2:27016,m3:27017/?replicaSet=rs0"
+export DB_USER=admin
+export DB_PASSWORD=1234
+export JWT_SECRET=litmus-portal@123
+export PORTAL_ENDPOINT=http://localhost:8080
+export LITMUS_SVC_ENDPOINT=""
+export SELF_AGENT=false
+export INFRA_SCOPE=cluster
+export INFRA_NAMESPACE=litmus
+export LITMUS_PORTAL_NAMESPACE=litmus
+export PORTAL_SCOPE=namespace
+export SUBSCRIBER_IMAGE=litmuschaos/litmusportal-subscriber:ci
+export EVENT_TRACKER_IMAGE=litmuschaos/litmusportal-event-tracker:ci
+export CONTAINER_RUNTIME_EXECUTOR=k8sapi
+export ARGO_WORKFLOW_CONTROLLER_IMAGE=argoproj/workflow-controller:v2.11.0
+export ARGO_WORKFLOW_EXECUTOR_IMAGE=argoproj/argoexec:v2.11.0
+export CHAOS_CENTER_SCOPE=cluster
+export WORKFLOW_HELPER_IMAGE_VERSION=3.0.0
+export LITMUS_CHAOS_OPERATOR_IMAGE=litmuschaos/chaos-operator:3.0.0
+export LITMUS_CHAOS_RUNNER_IMAGE=litmuschaos/chaos-runner:3.0.0
+export LITMUS_CHAOS_EXPORTER_IMAGE=litmuschaos/chaos-exporter:3.0.0
+export ADMIN_USERNAME=admin
+export ADMIN_PASSWORD=litmus
+export VERSION=ci
+export HUB_BRANCH_NAME=v2.0.x
+export INFRA_DEPLOYMENTS="[\"app=chaos-exporter\", \"name=chaos-operator\", \"app=event-tracker\",\"app=workflow-controller\"]"
+export INFRA_COMPATIBLE_VERSIONS='["0.2.0", "0.1.0","ci"]'
+export DEFAULT_HUB_BRANCH_NAME=master
+export ENABLE_INTERNAL_TLS=false
+export REST_PORT=3000
+export GRPC_PORT=3030
+```
+
+
+
+
+Docker or Hyper-V is reserving that port range. You can use 3030 ports by running the command below
+
+```bash
+netsh interface ipv4 show excludedportrange protocol=tcp
+net stop winnat
+netsh int ipv4 add excludedportrange protocol=tcp startport=3030 numberofports=1
+net start winnat
+```
+
+
+
+
+Step-2: Run the go application
+
+```bash
+cd chaoscenter/authentication/api
+go run main.go
+```
+
+### 3. Run the GraphQL Server
+
+Step-1: Export the following environment variables
+
+```bash
+export DB_SERVER="mongodb://m1:27015,m2:27016,m3:27017/?replicaSet=rs0"
+export DB_USER=admin
+export DB_PASSWORD=1234
+export JWT_SECRET=litmus-portal@123
+export PORTAL_ENDPOINT=http://localhost:8080
+export LITMUS_SVC_ENDPOINT=""
+export SELF_AGENT=false
+export INFRA_SCOPE=cluster
+export INFRA_NAMESPACE=litmus
+export LITMUS_PORTAL_NAMESPACE=litmus
+export PORTAL_SCOPE=namespace
+export SUBSCRIBER_IMAGE=litmuschaos/litmusportal-subscriber:ci
+export EVENT_TRACKER_IMAGE=litmuschaos/litmusportal-event-tracker:ci
+export CONTAINER_RUNTIME_EXECUTOR=k8sapi
+export ARGO_WORKFLOW_CONTROLLER_IMAGE=argoproj/workflow-controller:v2.11.0
+export ARGO_WORKFLOW_EXECUTOR_IMAGE=argoproj/argoexec:v2.11.0
+export CHAOS_CENTER_SCOPE=cluster
+export WORKFLOW_HELPER_IMAGE_VERSION=3.0.0
+export LITMUS_CHAOS_OPERATOR_IMAGE=litmuschaos/chaos-operator:3.0.0
+export LITMUS_CHAOS_RUNNER_IMAGE=litmuschaos/chaos-runner:3.0.0
+export LITMUS_CHAOS_EXPORTER_IMAGE=litmuschaos/chaos-exporter:3.0.0
+export ADMIN_USERNAME=admin
+export ADMIN_PASSWORD=litmus
+export VERSION=ci
+export HUB_BRANCH_NAME=v2.0.x
+export INFRA_DEPLOYMENTS="[\"app=chaos-exporter\", \"name=chaos-operator\", \"app=event-tracker\",\"app=workflow-controller\"]"
+export INFRA_COMPATIBLE_VERSIONS='["0.2.0", "0.1.0","ci"]'
+export DEFAULT_HUB_BRANCH_NAME=master
+```
+
+Step-2: Run the go application
+
+```bash
+cd chaoscenter/graphql/server
+go run server.go
+```
+
+### 4. Run Frontend
+
+:::note
+Make sure to run backend services before the frontend.
+:::
+
+Step-1: Install all the dependencies
+
+```bash
+cd litmus/chaoscenter/web
+yarn
+```
+
+Step-2: Generate the ssl certificate
+
+
+
+The command you run is in the script/generate-certificate.sh file, but it doesn't work in a Windows environment, so please run the script below instead
+
+```bash
+mkdir -p certificates
+
+openssl req -x509 -newkey rsa:4096 -keyout certificates/localhost-key.pem -out certificates/localhost.pem -days 365 -nodes -subj '//C=US'
+```
+
+
+
+
+```bash
+yarn generate-certificate
+```
+
+
+
+
+Step-3: Run the frontend project
+
+```bash
+yarn dev
+```
+
+> It’ll prompt you to start the development server at port `8185` or any other port than 3000 since it is already being used by the auth server.
+
+Once you are able to see the Login Screen of Litmus use the following default credentials
+
+```
+Username: admin
+Password: litmus
+```
+
+
+
+
+## **Steps to connect Chaos Infrastructure**
+### Using Litmusctl
+Use [litmusctl](https://github.com/litmuschaos/litmusctl) on the same box/local cluster and connect an ns infrastructure
+
+### Using Chaoscenter
+Use Chaoscenter to connect an Infrastructure, download the manifest and apply it on k3d/minikube. Once the pods are up(except the subscriber), run the following command:
+
+```bash
+cd subscriber
+
+INFRA_ID= ACCESS_KEY= INFRA_SCOPE=cluster SERVER_ADDR=http://localhost:8080/query INFRA_NAMESPACE=litmus IS_INFRA_CONFIRMED="false" COMPONENTS="DEPLOYMENTS: ["app=chaos-exporter", "name=chaos-operator", "app=workflow-controller"]" START_TIME=1631089756 VERSION="ci" AGENT_POD="subscriber-78f6bd4db5-ck5d9" SKIP_
+SSL_VERIFY="false" go run subscriber.go -kubeconfig ~/.kube/config
+```
\ No newline at end of file
diff --git a/website/versioned_docs/version-3.9.2/developer-guide/chaoscenter-developer-guide.md b/website/versioned_docs/version-3.9.2/developer-guide/chaoscenter-developer-guide.md
new file mode 100644
index 00000000..021405ff
--- /dev/null
+++ b/website/versioned_docs/version-3.9.2/developer-guide/chaoscenter-developer-guide.md
@@ -0,0 +1,267 @@
+---
+id: chaoscenter-developer-guide
+title: ChaosCenter Developer Guide
+sidebar_label: ChaosCenter Developer Guide
+---
+
+---
+
+## **Prerequisites**
+:::note
+This document is intended to be implemented locally. Please do not use in dev or prod environments.
+:::
+
+- Kubernetes 1.17 or later
+- Helm3 or Kubectl
+- Node and npm
+- Docker
+- Golang
+- Local Kubernetes Cluster (via minikube, k3s or kind)
+
+## **Control Plane**
+Backend components consist of three microservices
+1. GraphQL server
+2. Authentication server
+3. MongoDB
+
+Frontend component
+1. React
+
+## **Steps to run the Control Plane**
+
+### 1. Run MongoDB
+
+Step-1: Pull and run the image
+
+```bash
+docker pull mongo:5
+
+docker network create mongo-cluster
+
+docker run -d --net mongo-cluster -p 27015:27015 --name m1 mongo:4.2 mongod --replSet rs0 --port 27015
+docker run -d --net mongo-cluster -p 27016:27016 --name m2 mongo:4.2 mongod --replSet rs0 --port 27016
+docker run -d --net mongo-cluster -p 27017:27017 --name m3 mongo:4.2 mongod --replSet rs0 --port 27017
+```
+
+Step-2: Add hosts
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+
+
+
+```bash
+# add hosts in hosts
+notepad C:\Windows\System32\drivers\etc\hosts
+
+# add the below line
+127.0.0.1 m1 m2 m3
+```
+
+
+
+
+```bash
+# add hosts in hosts
+sudo vim /etc/hosts
+
+# add the below line
+127.0.0.1 m1 m2 m3
+```
+
+
+
+
+
+Step-3: Configure the mongoDB replica set
+
+```bash
+docker exec -it m1 mongo -port 27015
+
+config={"_id":"rs0","members":[{"_id":0,"host":"m1:27015"},{"_id":1,"host":"m2:27016"},{"_id":2,"host":"m3:27017"}]}
+
+rs.initiate(config)
+
+db.getSiblingDB("admin").createUser({user:"admin",pwd:"1234",roles:[{role:"root",db:"admin"}]});
+```
+
+### 2. Run the Authentication Server
+
+:::note
+Make sure to run backend services before the frontend. If you haven’t already cloned the litmus project do so from the `litmuschaos/litmus` repository
+:::
+
+```bash
+git clone https://github.com/litmuschaos/litmus.git litmus --depth 1
+```
+
+
+Step-1: Export the following environment variables
+
+```bash
+export ADMIN_USERNAME=admin
+export ADMIN_PASSWORD=litmus
+export DB_SERVER="mongodb://m1:27015,m2:27016,m3:27017/?replicaSet=rs0"
+export DB_USER=admin
+export DB_PASSWORD=1234
+export JWT_SECRET=litmus-portal@123
+export PORTAL_ENDPOINT=http://localhost:8080
+export LITMUS_SVC_ENDPOINT=""
+export SELF_AGENT=false
+export INFRA_SCOPE=cluster
+export INFRA_NAMESPACE=litmus
+export LITMUS_PORTAL_NAMESPACE=litmus
+export PORTAL_SCOPE=namespace
+export SUBSCRIBER_IMAGE=litmuschaos/litmusportal-subscriber:ci
+export EVENT_TRACKER_IMAGE=litmuschaos/litmusportal-event-tracker:ci
+export CONTAINER_RUNTIME_EXECUTOR=k8sapi
+export ARGO_WORKFLOW_CONTROLLER_IMAGE=argoproj/workflow-controller:v2.11.0
+export ARGO_WORKFLOW_EXECUTOR_IMAGE=argoproj/argoexec:v2.11.0
+export CHAOS_CENTER_SCOPE=cluster
+export WORKFLOW_HELPER_IMAGE_VERSION=3.0.0
+export LITMUS_CHAOS_OPERATOR_IMAGE=litmuschaos/chaos-operator:3.0.0
+export LITMUS_CHAOS_RUNNER_IMAGE=litmuschaos/chaos-runner:3.0.0
+export LITMUS_CHAOS_EXPORTER_IMAGE=litmuschaos/chaos-exporter:3.0.0
+export ADMIN_USERNAME=admin
+export ADMIN_PASSWORD=litmus
+export VERSION=ci
+export HUB_BRANCH_NAME=v2.0.x
+export INFRA_DEPLOYMENTS="[\"app=chaos-exporter\", \"name=chaos-operator\", \"app=event-tracker\",\"app=workflow-controller\"]"
+export INFRA_COMPATIBLE_VERSIONS='["0.2.0", "0.1.0","ci"]'
+export DEFAULT_HUB_BRANCH_NAME=master
+export ENABLE_INTERNAL_TLS=false
+export REST_PORT=3000
+export GRPC_PORT=3030
+```
+
+
+
+
+Docker or Hyper-V is reserving that port range. You can use 3030 ports by running the command below
+
+```bash
+netsh interface ipv4 show excludedportrange protocol=tcp
+net stop winnat
+netsh int ipv4 add excludedportrange protocol=tcp startport=3030 numberofports=1
+net start winnat
+```
+
+
+
+
+Step-2: Run the go application
+
+```bash
+cd chaoscenter/authentication/api
+go run main.go
+```
+
+### 3. Run the GraphQL Server
+
+Step-1: Export the following environment variables
+
+```bash
+export DB_SERVER="mongodb://m1:27015,m2:27016,m3:27017/?replicaSet=rs0"
+export DB_USER=admin
+export DB_PASSWORD=1234
+export JWT_SECRET=litmus-portal@123
+export PORTAL_ENDPOINT=http://localhost:8080
+export LITMUS_SVC_ENDPOINT=""
+export SELF_AGENT=false
+export INFRA_SCOPE=cluster
+export INFRA_NAMESPACE=litmus
+export LITMUS_PORTAL_NAMESPACE=litmus
+export PORTAL_SCOPE=namespace
+export SUBSCRIBER_IMAGE=litmuschaos/litmusportal-subscriber:ci
+export EVENT_TRACKER_IMAGE=litmuschaos/litmusportal-event-tracker:ci
+export CONTAINER_RUNTIME_EXECUTOR=k8sapi
+export ARGO_WORKFLOW_CONTROLLER_IMAGE=argoproj/workflow-controller:v2.11.0
+export ARGO_WORKFLOW_EXECUTOR_IMAGE=argoproj/argoexec:v2.11.0
+export CHAOS_CENTER_SCOPE=cluster
+export WORKFLOW_HELPER_IMAGE_VERSION=3.0.0
+export LITMUS_CHAOS_OPERATOR_IMAGE=litmuschaos/chaos-operator:3.0.0
+export LITMUS_CHAOS_RUNNER_IMAGE=litmuschaos/chaos-runner:3.0.0
+export LITMUS_CHAOS_EXPORTER_IMAGE=litmuschaos/chaos-exporter:3.0.0
+export ADMIN_USERNAME=admin
+export ADMIN_PASSWORD=litmus
+export VERSION=ci
+export HUB_BRANCH_NAME=v2.0.x
+export INFRA_DEPLOYMENTS="[\"app=chaos-exporter\", \"name=chaos-operator\", \"app=event-tracker\",\"app=workflow-controller\"]"
+export INFRA_COMPATIBLE_VERSIONS='["0.2.0", "0.1.0","ci"]'
+export DEFAULT_HUB_BRANCH_NAME=master
+```
+
+Step-2: Run the go application
+
+```bash
+cd chaoscenter/graphql/server
+go run server.go
+```
+
+### 4. Run Frontend
+
+:::note
+Make sure to run backend services before the frontend.
+:::
+
+Step-1: Install all the dependencies
+
+```bash
+cd litmus/chaoscenter/web
+yarn
+```
+
+Step-2: Generate the ssl certificate
+
+
+
+The command you run is in the script/generate-certificate.sh file, but it doesn't work in a Windows environment, so please run the script below instead
+
+```bash
+mkdir -p certificates
+
+openssl req -x509 -newkey rsa:4096 -keyout certificates/localhost-key.pem -out certificates/localhost.pem -days 365 -nodes -subj '//C=US'
+```
+
+
+
+
+```bash
+yarn generate-certificate
+```
+
+
+
+
+Step-3: Run the frontend project
+
+```bash
+yarn dev
+```
+
+> It’ll prompt you to start the development server at port `8185` or any other port than 3000 since it is already being used by the auth server.
+
+Once you are able to see the Login Screen of Litmus use the following default credentials
+
+```
+Username: admin
+Password: litmus
+```
+
+
+
+
+## **Steps to connect Chaos Infrastructure**
+### Using Litmusctl
+Use [litmusctl](https://github.com/litmuschaos/litmusctl) on the same box/local cluster and connect an ns infrastructure
+
+### Using Chaoscenter
+Use Chaoscenter to connect an Infrastructure, download the manifest and apply it on k3d/minikube. Once the pods are up(except the subscriber), run the following command:
+
+```bash
+cd subscriber
+
+INFRA_ID= ACCESS_KEY= INFRA_SCOPE=cluster SERVER_ADDR=http://localhost:8080/query INFRA_NAMESPACE=litmus IS_INFRA_CONFIRMED="false" COMPONENTS="DEPLOYMENTS: ["app=chaos-exporter", "name=chaos-operator", "app=workflow-controller"]" START_TIME=1631089756 VERSION="ci" AGENT_POD="subscriber-78f6bd4db5-ck5d9" SKIP_
+SSL_VERIFY="false" go run subscriber.go -kubeconfig ~/.kube/config
+```
\ No newline at end of file
diff --git a/website/versioned_sidebars/version-3.10.0-sidebars.json b/website/versioned_sidebars/version-3.10.0-sidebars.json
index 939a4d4d..9c12b115 100644
--- a/website/versioned_sidebars/version-3.10.0-sidebars.json
+++ b/website/versioned_sidebars/version-3.10.0-sidebars.json
@@ -115,6 +115,11 @@
"user-guides/uninstall-litmus"
]
},
+ {
+ "Developer Guide": [
+ "developer-guide/chaoscenter-developer-guide"
+ ]
+ },
{
"Litmusctl": [
"litmusctl/installation",
diff --git a/website/versioned_sidebars/version-3.9.1-sidebars.json b/website/versioned_sidebars/version-3.9.1-sidebars.json
index 939a4d4d..9c12b115 100644
--- a/website/versioned_sidebars/version-3.9.1-sidebars.json
+++ b/website/versioned_sidebars/version-3.9.1-sidebars.json
@@ -115,6 +115,11 @@
"user-guides/uninstall-litmus"
]
},
+ {
+ "Developer Guide": [
+ "developer-guide/chaoscenter-developer-guide"
+ ]
+ },
{
"Litmusctl": [
"litmusctl/installation",
diff --git a/website/versioned_sidebars/version-3.9.2-sidebars.json b/website/versioned_sidebars/version-3.9.2-sidebars.json
index 939a4d4d..768f249b 100644
--- a/website/versioned_sidebars/version-3.9.2-sidebars.json
+++ b/website/versioned_sidebars/version-3.9.2-sidebars.json
@@ -114,6 +114,10 @@
"user-guides/image-registry",
"user-guides/uninstall-litmus"
]
+ },{
+ "Developer Guide": [
+ "developer-guide/chaoscenter-developer-guide"
+ ]
},
{
"Litmusctl": [