diff --git a/docs/concepts.md b/docs/concepts.md
index 259f9e43..0f954346 100644
--- a/docs/concepts.md
+++ b/docs/concepts.md
@@ -1,10 +1,67 @@
hero: All concepts related to cello
-## 1. [Server](setup/server.md)
+# Concepts
+
+```mermaid
+graph LR
+ subgraph Network
+ subgraph Channel
+ subgraph Org A
+ USER_A[User A]
+ AGENT_A[Agent A]
+ NODE_A[Node A]
+ end
+
+ subgraph Org B
+ USER_B[User B]
+ AGENT_B[Agent B]
+ NODE_B[Node B]
+ end
+
+ subgraph Org C
+ USER_C[User C]
+ AGENT_C[Agent C]
+ NODE_C[Node C]
+ end
+ end
+ end
+
+ subgraph Hyperledger Cello Server
+ DASHBOARD[Dashboard]
+ APIENGINE[API Engine]
+ DB[(Database)]
+ end
+
+ USER_A --> DASHBOARD
+ USER_B --> DASHBOARD
+ USER_C --> DASHBOARD
+ DASHBOARD --> APIENGINE
+ APIENGINE --> |Register users, organizations, and networks| DB
+ APIENGINE --> |Ask for node creations| AGENT_A
+ APIENGINE --> |Ask for node creations| AGENT_B
+ APIENGINE --> |Ask for node creations| AGENT_C
+ APIENGINE --> |Forward Blockchain operations| NODE_A
+ APIENGINE --> |Forward Blockchain operations| NODE_B
+ APIENGINE --> |Forward Blockchain operations| NODE_C
+ AGENT_A --> |Create via CRI| NODE_A
+ AGENT_B --> |Create via CRI| NODE_B
+ AGENT_C --> |Create via CRI| NODE_C
-### 1.1 Components [^1]
+```
+
+## Server
+
+*Server* is shared between organizations. It's used for user management and node manipulation. It will ask agents to create nodes and is responsible for **every operation with them**.
+
+### Components
-#### 1.1.1 API Engine
+*Components* are all the containers you need to run a Cello Server.
+
+#### Dashboard
+
+The Web UI of Cello.
+
+#### API Engine
Api engine supply the core function, all operations through the api service.
@@ -14,37 +71,26 @@ Host path mappings:
* /var/run/docker.sock:/var/run/docker.sock {>>Used for agent containers launch, which will deploy fabric, eg. network<<}
* (==optional==) $ROOT_PATH/src/api-engine:/var/www/server {>>When run in debug mode, MODE=dev, will mapping the source code into container, ROOT_PATH is the source code path.<<}
-#### 1.1.2 API Engine Tasks
+#### Database
-This component run all the async longtime task for api engine, it's receive tasks through redis, and can dynamic set the thread pool.
-
-```
-
-#### 1.1.3 Postgres
-
-Store all the data in postgres database, and the storage path is mapping out on the host.
+Store all the data in a postgres database, and the storage path is mapping out on the host.
Host path mappings:
* /opt/cello/postgres:/var/lib/postgresql/data {>>Store all db data.<<}
-#### 1.1.4 Redis
-
-#### 1.1.5 Dashboard
+## Agent
-### 1.2 Deployment Method
+*Agents* run under every organization. It's used for **creating nodes** for the Blockchain networks.
-#### 1.2.1 Docker compose
+### Docker
-#### 1.2.2 Kubernetes
+Docker agent will create nodes as users request via the Docker socket.
-## 2. Agent
+## Node
+*Nodes* are **what really run inside the Blockchain networks**.
-### 2.1 [Kubernetes](agents/kubernetes.md)
-
-### 2.2 [Fabric Operator](agents/fabric-operator.md)
-
-[^1]: running containers of cello master service
+### Hyperledger Fabric
+For more information about the Hyperledger Fabric nodes, please check out the [Hyperledger Fabric Document](https://hyperledger-fabric.readthedocs.io/en/latest/).

This work is licensed under a Creative Commons Attribution 4.0 International License.
-```
diff --git a/docs/requirements.txt b/docs/requirements.txt
index d575fb40..e7820709 100644
--- a/docs/requirements.txt
+++ b/docs/requirements.txt
@@ -1,3 +1,4 @@
mkdocs>= 1.4.2
mkdocs-material>=4.4.0
pygments>=2.14.0
+mkdocs-mermaid2-plugin>=1.2.1
diff --git a/mkdocs.yml b/mkdocs.yml
index 723f9bf7..88bfd7c6 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -2,7 +2,7 @@ site_name: Hyperledger Cello
repo_name: "hyperledger/cello"
repo_url: "https://github.com/hyperledger/cello"
theme:
- name: "mkdocs"
+ name: "material"
logo: "images/favicon.png"
favicon: "images/favicon.png"
feature:
@@ -24,6 +24,14 @@ markdown_extensions:
- markdown.extensions.meta
- markdown.extensions.toc:
permalink: true
+ - pymdownx.superfences:
+ custom_fences:
+ - name: mermaid
+ class: mermaid
+ format: !!python/name:mermaid2.fence_mermaid
+ - pymdownx.mark
+ - pymdownx.critic:
+ mode: view
docs_dir: docs
nav:
- Docs:
@@ -52,8 +60,9 @@ nav:
- faq.md
- Release Notes:
- release_note.md
-#plugins:
-# - search
+plugins:
+ - search
+ - mermaid2
# - minify:
# minify_html: true
# - pdf-export: