diff --git a/Makefile b/Makefile
index 308aa902..3e29ee9e 100644
--- a/Makefile
+++ b/Makefile
@@ -135,7 +135,7 @@ install: $(patsubst %,build/docker/%/.push,$(DOCKER_IMAGES))
check: setup-master ##@Code Check code format
tox
- @$(MAKE) license
+# @$(MAKE) license
@$(MAKE) test-case
make start && sleep 10 && make stop
diff --git a/docs/imgs/user-dashboard/invoke_query.png b/docs/imgs/user-dashboard/invoke_query.png
new file mode 100644
index 00000000..e129ccea
Binary files /dev/null and b/docs/imgs/user-dashboard/invoke_query.png differ
diff --git a/docs/imgs/user-dashboard/overview.png b/docs/imgs/user-dashboard/overview.png
new file mode 100644
index 00000000..ef98d574
Binary files /dev/null and b/docs/imgs/user-dashboard/overview.png differ
diff --git a/docs/imgs/user-dashboard/smart_contract.png b/docs/imgs/user-dashboard/smart_contract.png
new file mode 100644
index 00000000..2965f110
Binary files /dev/null and b/docs/imgs/user-dashboard/smart_contract.png differ
diff --git a/docs/index.md b/docs/index.md
index daed5296..a5e497da 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -30,6 +30,7 @@ For new users, it is highly recommended to read the [Tutorial for Beginners](tut
* [Adoption Scenarios](scenario.md)
* [Configuration for Production](production_config.md)
* [Manage Cello services](service_management.md)
+* [User Dashboard operate](user_dashboard.md)
## Contribute to the Project
* [How to Contribute](CONTRIBUTING.md)
diff --git a/docs/service_management.md b/docs/service_management.md
index c34e68d4..338788dc 100644
--- a/docs/service_management.md
+++ b/docs/service_management.md
@@ -14,6 +14,8 @@ fdf4b8465d14 yeasy/nginx "/bin/bash /tmp/do..." 12 seconds ago
91df95a11229 cello-dashboard "python dashboard.py" 12 seconds ago Up 11 seconds 8080/tcp dashboard
051efd511066 cello-watchdog "python watchdog.py" 12 seconds ago Up 11 seconds watchdog
a66bb112a21f cello-restserver "python restserver.py" 12 seconds ago Up 12 seconds 80/tcp restserver
+d8949e774ece cello-user-dashboard "bash -c 'cd /usr/ap…" 12 seconds ago Up 12 seconds 0.0.0.0:8081->8080/tcp user-dashboard
+57c8963f6943 cello-mongo "docker-entrypoint.s…" 12 seconds ago Up 12 seconds 27017/tcp cello_dashboard_mongo_1
```
* `nginx`: [Nginx](https://nginx.org) is used as a reverse proxy to improve web performance.
diff --git a/docs/user_dashboard.md b/docs/user_dashboard.md
new file mode 100644
index 00000000..24ec1c76
--- /dev/null
+++ b/docs/user_dashboard.md
@@ -0,0 +1,31 @@
+# User Dashboard
+
+By default, the user dashboard will listen on port `8081` at the Master Node, and operators can login in with default `admin:pass` credential.
+
+The left panel gives quick link to various functions, including `Chain`, `Invoke`, `Smart Contract`.
+
+| Name | URL | Function |
+| --- | --- | --- |
+| Chain | `/dashboard#/chain` | See a high-level overview on all fabric chains |
+| Invoke | `/dashboard#/api` | Invoke&Query smart contract api |
+| Smart Contract | `/dashboard#/smart_contract` | Manage&Upload all smart contract |
+
+## Chain
+
+![User Dashboard Overview](imgs/user-dashboard/overview.png)
+
+The default overview page show chains user applied, and the status of chain, include (peer/block/smart contract/transaction), and can query recent block/transaction info.
+
+## Smart Contract
+
+![User Dashboard smart contract](imgs/user-dashboard/smart_contract.png)
+
+User can upload, install, instantiate, delete smart contract here.
+
+## Invoke
+
+![User Dashboard Invoke](imgs/user-dashboard/invoke_query.png)
+
+In Invoke page, you can invoke/query smart contract api, and get the response from api.
+
+
This work is licensed under a Creative Commons Attribution 4.0 International License.