diff --git a/jcloud/docker/Dockerfile b/jcloud/docker/Dockerfile
index ffde2a7..d498ba3 100644
--- a/jcloud/docker/Dockerfile
+++ b/jcloud/docker/Dockerfile
@@ -185,7 +185,7 @@ ENV PATH "$PATH:/home/jingrow/.local/bin"
RUN wget https://bootstrap.pypa.io/get-pip.py && python${PYTHON_VERSION} get-pip.py `#stage-pre-pip`
ENV {{ pg.get_dependency_version("bench", True) }}
-RUN --mount=type=cache,target=/home/jingrow/.cache,uid=1000,gid=1000 python${PYTHON_VERSION} -m pip install --upgrade http://npm.jingrow.com:105/jingrow-bench-5.23.0.tar.gz `#stage-bench-bench`
+RUN --mount=type=cache,target=/home/jingrow/.cache,uid=1000,gid=1000 python${PYTHON_VERSION} -m pip install --upgrade git+http://git.jingrow.com:3000/jingrow/bench.git `#stage-bench-bench`
RUN --mount=type=cache,target=/home/jingrow/.cache,uid=1000,gid=1000 python${PYTHON_VERSION} -m pip install Jinja2~=3.0.3
RUN --mount=type=cache,target=/home/jingrow/.cache,uid=1000,gid=1000 python${PYTHON_VERSION} -m pip install --upgrade setuptools
diff --git a/jcloud/jcloud/workspace/jcloud/jcloud.json b/jcloud/jcloud/workspace/jcloud/jcloud.json
index 887665c..5245c1e 100644
--- a/jcloud/jcloud/workspace/jcloud/jcloud.json
+++ b/jcloud/jcloud/workspace/jcloud/jcloud.json
@@ -1,6 +1,6 @@
{
"charts": [],
- "content": "[{\"id\":\"zYUVFJZX-t\",\"type\":\"header\",\"data\":{\"text\":\"Jingrow\",\"col\":12}},{\"id\":\"VFzeFzlnB5\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"iNJ8WoS9kD\",\"type\":\"header\",\"data\":{\"text\":\"网站\",\"col\":12}},{\"id\":\"EYeJrbXv1P\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Active Sites\",\"col\":3}},{\"id\":\"7jAM0HBrde\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Broken Sites\",\"col\":3}},{\"id\":\"ttO5vXfzL_\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Pending Sites\",\"col\":3}},{\"id\":\"nvLoQ_N15n\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Suspended Sites\",\"col\":3}},{\"id\":\"AVO8JCkksy\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"aLqo1uNPYu\",\"type\":\"header\",\"data\":{\"text\":\"Benches\",\"col\":12}},{\"id\":\"BcJPVEkRcy\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Active Benches\",\"col\":3}},{\"id\":\"PhHBf-f1ej\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Broken Benches\",\"col\":3}},{\"id\":\"JJB6cOEiXy\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"7a18ugroq8\",\"type\":\"header\",\"data\":{\"text\":\"Servers\",\"col\":12}},{\"id\":\"M3urSE6cor\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Application Server\",\"col\":3}},{\"id\":\"5qOJXl1CkE\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Database Server\",\"col\":3}},{\"id\":\"PWrCW7DruI\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Proxy Server\",\"col\":3}},{\"id\":\"_GVOmg7C_U\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Hybrid Servers\",\"col\":3}},{\"id\":\"XHWA0NCImO\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"X1dteEUHoR\",\"type\":\"header\",\"data\":{\"text\":\"设置\",\"col\":12}},{\"id\":\"eeEbYjVj_n\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Jcloud Settings\",\"col\":3}},{\"id\":\"EiWS2tWYwu\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Root Domain\",\"col\":3}},{\"id\":\"EoLO5YYzdR\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Tls Certificate\",\"col\":3}},{\"id\":\"-Jx1Irf-28\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Team\",\"col\":3}},{\"id\":\"n-T0ehr2ca\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"xZEclbenJQ\",\"type\":\"header\",\"data\":{\"text\":\"Masters\",\"col\":12}},{\"id\":\"P6nCUrJreH\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"App\",\"col\":3}},{\"id\":\"1kAyHtrIrJ\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"App Source\",\"col\":3}},{\"id\":\"-N-Xb5MVPV\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"App Release\",\"col\":3}},{\"id\":\"QfN2XtXSBi\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Release Group\",\"col\":3}},{\"id\":\"ND9oElFB7R\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"0DYlbnEtOT\",\"type\":\"header\",\"data\":{\"text\":\"Subscription\",\"col\":12}},{\"id\":\"eddRzzqwSZ\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Server Plan\",\"col\":3}},{\"id\":\"GYk3Frsy1L\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Site Plan\",\"col\":3}},{\"id\":\"o_aDSbQlPf\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Subscription\",\"col\":3}},{\"id\":\"VZSHmE1jzA\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Invoice\",\"col\":3}},{\"id\":\"B8T-3IZ8Qg\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"WDyzNHuOas\",\"type\":\"header\",\"data\":{\"text\":\"Operations\",\"col\":12}},{\"id\":\"Ziby8rOfsU\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Agent Job\",\"col\":3}},{\"id\":\"Vm4Tn0dxiD\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Ansible Play\",\"col\":3}},{\"id\":\"n6VE51hPkc\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Jcloud Job\",\"col\":3}}]",
+ "content": "[{\"id\":\"zYUVFJZX-t\",\"type\":\"header\",\"data\":{\"text\":\"Jingrow\",\"col\":12}},{\"id\":\"VFzeFzlnB5\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"iNJ8WoS9kD\",\"type\":\"header\",\"data\":{\"text\":\"网站\",\"col\":12}},{\"id\":\"EYeJrbXv1P\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Active Sites\",\"col\":3}},{\"id\":\"7jAM0HBrde\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Broken Sites\",\"col\":3}},{\"id\":\"ttO5vXfzL_\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Pending Sites\",\"col\":3}},{\"id\":\"nvLoQ_N15n\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Suspended Sites\",\"col\":3}},{\"id\":\"AVO8JCkksy\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"aLqo1uNPYu\",\"type\":\"header\",\"data\":{\"text\":\"Benches\",\"col\":12}},{\"id\":\"BcJPVEkRcy\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Active Benches\",\"col\":3}},{\"id\":\"PhHBf-f1ej\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Broken Benches\",\"col\":3}},{\"id\":\"JJB6cOEiXy\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"7a18ugroq8\",\"type\":\"header\",\"data\":{\"text\":\"Servers\",\"col\":12}},{\"id\":\"M3urSE6cor\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Application Server\",\"col\":3}},{\"id\":\"5qOJXl1CkE\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Database Server\",\"col\":3}},{\"id\":\"PWrCW7DruI\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Proxy Server\",\"col\":3}},{\"id\":\"_GVOmg7C_U\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Hybrid Servers\",\"col\":3}},{\"id\":\"XHWA0NCImO\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"X1dteEUHoR\",\"type\":\"header\",\"data\":{\"text\":\"设置\",\"col\":12}},{\"id\":\"eeEbYjVj_n\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Jcloud Settings\",\"col\":3}},{\"id\":\"EiWS2tWYwu\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Root Domain\",\"col\":3}},{\"id\":\"EoLO5YYzdR\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Tls Certificate\",\"col\":3}},{\"id\":\"-Jx1Irf-28\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Team\",\"col\":3}},{\"id\":\"n-T0ehr2ca\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"xZEclbenJQ\",\"type\":\"header\",\"data\":{\"text\":\"Masters\",\"col\":12}},{\"id\":\"P6nCUrJreH\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"App\",\"col\":3}},{\"id\":\"1kAyHtrIrJ\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"App Source\",\"col\":3}},{\"id\":\"-N-Xb5MVPV\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"App Release\",\"col\":3}},{\"id\":\"QfN2XtXSBi\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Release Group\",\"col\":3}},{\"id\":\"40QxKrKmeM\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Deploy Candidate\",\"col\":3}},{\"id\":\"ND9oElFB7R\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"0DYlbnEtOT\",\"type\":\"header\",\"data\":{\"text\":\"Subscription\",\"col\":12}},{\"id\":\"eddRzzqwSZ\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Server Plan\",\"col\":3}},{\"id\":\"GYk3Frsy1L\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Site Plan\",\"col\":3}},{\"id\":\"o_aDSbQlPf\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Subscription\",\"col\":3}},{\"id\":\"VZSHmE1jzA\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Invoice\",\"col\":3}},{\"id\":\"B8T-3IZ8Qg\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"WDyzNHuOas\",\"type\":\"header\",\"data\":{\"text\":\"Operations\",\"col\":12}},{\"id\":\"Ziby8rOfsU\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Agent Job\",\"col\":3}},{\"id\":\"Vm4Tn0dxiD\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Ansible Play\",\"col\":3}},{\"id\":\"n6VE51hPkc\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Jcloud Job\",\"col\":3}}]",
"creation": "2024-07-30 18:43:18.421196",
"custom_blocks": [],
"for_user": "",
@@ -11,7 +11,7 @@
"is_hidden": 0,
"label": "Jcloud",
"links": [],
- "modified": "2025-05-14 20:40:22.773601",
+ "modified": "2025-05-14 21:10:13.864712",
"modified_by": "Administrator",
"module": "Jcloud",
"name": "Jcloud",
@@ -41,6 +41,14 @@
"stats_filter": "[]",
"type": "PageType"
},
+ {
+ "color": "Grey",
+ "label": "Deploy Candidate",
+ "link_to": "Deploy Candidate",
+ "pg_view": "List",
+ "stats_filter": "[]",
+ "type": "PageType"
+ },
{
"color": "Grey",
"label": "Agent Job",