From 946a33a928a0e2a45d2e8a6c65fafca992494a00 Mon Sep 17 00:00:00 2001 From: jonssonyan Date: Thu, 24 Aug 2023 01:01:58 +0800 Subject: [PATCH] fix: update doc --- docs/404.html | 6 ++-- docs/api/api.html | 4 +-- docs/assets/js/11.58948b6d.js | 1 - docs/assets/js/11.e71ac172.js | 1 + .../js/{12.5bf16040.js => 12.7a7abe12.js} | 2 +- docs/assets/js/13.217d4dad.js | 1 - docs/assets/js/13.8fc7d6ee.js | 1 + .../js/{14.17b544b6.js => 14.3217504e.js} | 2 +- .../js/{16.78336478.js => 16.71eea079.js} | 2 +- .../js/{17.e9eb4f43.js => 17.d1604185.js} | 2 +- .../js/{18.48f2b6f0.js => 18.d19c2757.js} | 2 +- .../js/{19.fb78a976.js => 19.e169923f.js} | 2 +- .../js/{20.74b5774d.js => 20.981df060.js} | 2 +- .../js/{21.92ace509.js => 21.052e1b41.js} | 2 +- docs/assets/js/22.b693e33d.js | 1 + docs/assets/js/22.fa004d0a.js | 1 - .../js/{23.7f6b08f0.js => 23.aa93a8a9.js} | 2 +- .../js/{7.d93bbcbb.js => 7.6af79d70.js} | 2 +- .../js/{8.63d12875.js => 8.a4bae3c5.js} | 2 +- .../js/{9.f3f6c149.js => 9.1d051ac0.js} | 2 +- .../js/{app.836c6f7c.js => app.27e4f952.js} | 6 ++-- docs/change/change-log.html | 4 +-- docs/faq/faq.html | 4 +-- docs/index.html | 4 +-- .../install-tutorial/custom-installation.html | 36 +++++++++---------- docs/install-tutorial/docker-compose.html | 4 +-- docs/install-tutorial/installation.html | 15 ++++---- docs/sdk/sdk.html | 4 +-- docs/start/introduce.html | 4 +-- docs/start/system-structure.html | 4 +-- docs/tutorial/client-config.html | 4 +-- docs/tutorial/common-problem.html | 4 +-- docs/tutorial/des-of-related-doc.html | 4 +-- docs/tutorial/performance-testing.html | 4 +-- docs/tutorial/performance-tuning.html | 6 ++-- docs/tutorial/recommend-tool.html | 6 ++-- docs/tutorial/using-cdn.html | 4 +-- docs/tutorial/using-tutorials.html | 4 +-- 38 files changed, 81 insertions(+), 80 deletions(-) delete mode 100644 docs/assets/js/11.58948b6d.js create mode 100644 docs/assets/js/11.e71ac172.js rename docs/assets/js/{12.5bf16040.js => 12.7a7abe12.js} (99%) delete mode 100644 docs/assets/js/13.217d4dad.js create mode 100644 docs/assets/js/13.8fc7d6ee.js rename docs/assets/js/{14.17b544b6.js => 14.3217504e.js} (89%) rename docs/assets/js/{16.78336478.js => 16.71eea079.js} (93%) rename docs/assets/js/{17.e9eb4f43.js => 17.d1604185.js} (99%) rename docs/assets/js/{18.48f2b6f0.js => 18.d19c2757.js} (97%) rename docs/assets/js/{19.fb78a976.js => 19.e169923f.js} (98%) rename docs/assets/js/{20.74b5774d.js => 20.981df060.js} (98%) rename docs/assets/js/{21.92ace509.js => 21.052e1b41.js} (96%) create mode 100644 docs/assets/js/22.b693e33d.js delete mode 100644 docs/assets/js/22.fa004d0a.js rename docs/assets/js/{23.7f6b08f0.js => 23.aa93a8a9.js} (96%) rename docs/assets/js/{7.d93bbcbb.js => 7.6af79d70.js} (98%) rename docs/assets/js/{8.63d12875.js => 8.a4bae3c5.js} (99%) rename docs/assets/js/{9.f3f6c149.js => 9.1d051ac0.js} (99%) rename docs/assets/js/{app.836c6f7c.js => app.27e4f952.js} (83%) diff --git a/docs/404.html b/docs/404.html index 1160c7d..68dcd40 100644 --- a/docs/404.html +++ b/docs/404.html @@ -18,13 +18,13 @@ - + -

404

How did we get here?
+ - + diff --git a/docs/api/api.html b/docs/api/api.html index 34eaae0..e818141 100644 --- a/docs/api/api.html +++ b/docs/api/api.html @@ -18,7 +18,7 @@ - + @@ -965,6 +965,6 @@ } ]

参数说明:

参数 必须 说明
ip 服务器IP
name 服务器名称
grpc_port API端口
Last Updated: 8/20/2023, 12:24:00 AM
- + diff --git a/docs/assets/js/11.58948b6d.js b/docs/assets/js/11.58948b6d.js deleted file mode 100644 index 4f780f1..0000000 --- a/docs/assets/js/11.58948b6d.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{286:function(a,t,e){"use strict";e.r(t);var s=e(7),r=Object(s.a)({},(function(){var a=this,t=a._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[t("h1",{attrs:{id:"手动安装教程"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#手动安装教程"}},[a._v("#")]),a._v(" 手动安装教程")]),a._v(" "),t("h2",{attrs:{id:"准备"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#准备"}},[a._v("#")]),a._v(" 准备")]),a._v(" "),t("h4",{attrs:{id:"安装流程"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#安装流程"}},[a._v("#")]),a._v(" 安装流程")]),a._v(" "),t("p",[a._v("Docker -> Caddy -> MariaDB -> Redis -> Trojan Panel -> Trojan Panel UI -> Trojan Panel Core")]),a._v(" "),t("h4",{attrs:{id:"版本对应关系"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#版本对应关系"}},[a._v("#")]),a._v(" 版本对应关系")]),a._v(" "),t("table",[t("thead",[t("tr",[t("th",[a._v("名称")]),a._v(" "),t("th",[a._v("版本")])])]),a._v(" "),t("tbody",[t("tr",[t("td",[a._v("Docker")]),a._v(" "),t("td",[a._v("latest")])]),a._v(" "),t("tr",[t("td",[a._v("Nginx")]),a._v(" "),t("td",[a._v("1.20-alpine")])]),a._v(" "),t("tr",[t("td",[a._v("Caddy")]),a._v(" "),t("td",[a._v("2.6.2")])]),a._v(" "),t("tr",[t("td",[a._v("MariaDB")]),a._v(" "),t("td",[a._v("10.7.3")])]),a._v(" "),t("tr",[t("td",[a._v("Redis")]),a._v(" "),t("td",[a._v("6.2.7")])]),a._v(" "),t("tr",[t("td",[a._v("Trojan Panel UI")]),a._v(" "),t("td",[a._v("latest")])]),a._v(" "),t("tr",[t("td",[a._v("Trojan Panel")]),a._v(" "),t("td",[a._v("latest")])]),a._v(" "),t("tr",[t("td",[a._v("Trojan Panel Core")]),a._v(" "),t("td",[a._v("latest")])])])]),a._v(" "),t("h2",{attrs:{id:"安装docker"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#安装docker"}},[a._v("#")]),a._v(" 安装Docker")]),a._v(" "),t("blockquote",[t("p",[a._v("Docker官方安装教程:https://docs.docker.com/engine/install/")])]),a._v(" "),t("p",[a._v("注意:")]),a._v(" "),t("ol",[t("li",[a._v("如果是国内服务器需要设置Docker国内镜像源")])]),a._v(" "),t("h2",{attrs:{id:"安装caddy"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#安装caddy"}},[a._v("#")]),a._v(" 安装Caddy")]),a._v(" "),t("blockquote",[t("p",[a._v("Docker Hub:https://hub.docker.com/_/caddy")])]),a._v(" "),t("ol",[t("li",[a._v("Pull the image")])]),a._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[a._v("docker")]),a._v(" pull caddy:2.6.2\n")])])]),t("ol",{attrs:{start:"2"}},[t("li",[a._v("Start a container")])]),a._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[a._v("docker")]),a._v(" run "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-d")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--name")]),a._v(" trojan-panel-caddy "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--restart")]),a._v(" always "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--network")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("host "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"'),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${CADDY_CONFIG}")]),a._v('"')]),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"'),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${CADDY_CONFIG}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${CERT_PATH}")]),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"/tpdata/cert/certificates/acme-v02.api.letsencrypt.org-directory/'),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${domain}")]),a._v('/"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${WEB_PATH}")]),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${WEB_PATH}")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${CADDY_LOG}")]),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${CADDY_LOG}")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\ncaddy:2.6.2 caddy run "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--config")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${CADDY_CONFIG}")]),a._v("\n")])])]),t("p",[a._v("参数解释:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("--name trojan-panel-redis")]),a._v(":定义容器的名称")]),a._v(" "),t("li",[t("code",[a._v("--restart always")]),a._v(":容器随着Docker启动而启动")]),a._v(" "),t("li",[t("code",[a._v("--network=host")]),a._v(":使用Host网络模式")]),a._v(" "),t("li",[t("code",[a._v('-v "${CADDY_CONFIG}":"${CADDY_CONFIG}"')]),a._v(":映射Caddy配置文件")]),a._v(" "),t("li",[t("code",[a._v('-v ${CERT_PATH}:"/tpdata/cert/certificates/acme-v02.api.letsencrypt.org-directory/${domain}/"')]),a._v(":映射证书文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v ${WEB_PATH}:${WEB_PATH}")]),a._v(":映射伪装网站文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v ${CADDY_LOG}:${CADDY_LOG}")]),a._v(":日志文件夹")]),a._v(" "),t("li",[t("code",[a._v("caddy run --config ${CADDY_CONFIG}")]),a._v(":指定配置文件运行")])]),a._v(" "),t("p",[a._v("Caddy配置举例")]),a._v(" "),t("ol",[t("li",[a._v("acme自动申请和续签")])]),a._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[a._v('{\n "admin":{\n "disabled":true\n },\n "logging":{\n "logs":{\n "default":{\n "writer":{\n "output":"file",\n "filename":"${CADDY_LOG}error.log"\n },\n "level":"ERROR"\n }\n }\n },\n "storage":{\n "module":"file_system",\n "root":"${CERT_PATH}"\n },\n "apps":{\n "http":{\n "http_port": ${caddy_port},\n "servers":{\n "srv0":{\n "listen":[\n ":${caddy_port}"\n ],\n "routes":[\n {\n "match":[\n {\n "host":[\n "${domain}"\n ]\n }\n ],\n "handle":[\n {\n "handler":"static_response",\n "headers":{\n "Location":[\n "https://{http.request.host}:${caddy_remote_port}{http.request.uri}"\n ]\n },\n "status_code":301\n }\n ]\n }\n ]\n },\n "srv1":{\n "listen":[\n ":${caddy_remote_port}"\n ],\n "routes":[\n {\n "handle":[\n {\n "handler":"subroute",\n "routes":[\n {\n "match":[\n {\n "host":[\n "${domain}"\n ]\n }\n ],\n "handle":[\n {\n "handler":"file_server",\n "root":"${WEB_PATH}",\n "index_names":[\n "index.html",\n "index.htm"\n ]\n }\n ],\n "terminal":true\n }\n ]\n }\n ]\n }\n ],\n "tls_connection_policies":[\n {\n "match":{\n "sni":[\n "${domain}"\n ]\n }\n }\n ],\n "automatic_https":{\n "disable":true\n }\n }\n }\n },\n "tls":{\n "certificates":{\n "automate":[\n "${domain}"\n ]\n },\n "automation":{\n "policies":[\n {\n "issuers":[\n {\n "module":"acme",\n "email":""\n }\n ]\n }\n ]\n }\n }\n }\n}\n')])])]),t("p",[a._v("参数解释:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("${CADDY_LOG}")]),a._v(":日志文件夹")]),a._v(" "),t("li",[t("code",[a._v("${CERT_PATH}")]),a._v(":证书文件夹")]),a._v(" "),t("li",[t("code",[a._v("${caddy_port}")]),a._v(":Caddy端口")]),a._v(" "),t("li",[t("code",[a._v("${domain}")]),a._v(":你的域名")]),a._v(" "),t("li",[t("code",[a._v("${caddy_remote_port}")]),a._v(":Caddy转发的端口")]),a._v(" "),t("li",[t("code",[a._v("${WEB_PATH}")]),a._v(":伪装网站文件夹")])]),a._v(" "),t("ol",{attrs:{start:"2"}},[t("li",[a._v("手动设置自定义证书")])]),a._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[a._v('{\n "admin":{\n "disabled":true\n },\n "logging":{\n "logs":{\n "default":{\n "writer":{\n "output":"file",\n "filename":"${CADDY_LOG}error.log"\n },\n "level":"ERROR"\n }\n }\n },\n "storage":{\n "module":"file_system",\n "root":"${CERT_PATH}"\n },\n "apps":{\n "http":{\n "http_port": ${caddy_port},\n "servers":{\n "srv0":{\n "listen":[\n ":${caddy_port}"\n ],\n "routes":[\n {\n "match":[\n {\n "host":[\n "${domain}"\n ]\n }\n ],\n "handle":[\n {\n "handler":"static_response",\n "headers":{\n "Location":[\n "https://{http.request.host}:${caddy_remote_port}{http.request.uri}"\n ]\n },\n "status_code":301\n }\n ]\n }\n ]\n },\n "srv1":{\n "listen":[\n ":${caddy_remote_port}"\n ],\n "routes":[\n {\n "handle":[\n {\n "handler":"subroute",\n "routes":[\n {\n "match":[\n {\n "host":[\n "${domain}"\n ]\n }\n ],\n "handle":[\n {\n "handler":"file_server",\n "root":"${WEB_PATH}",\n "index_names":[\n "index.html",\n "index.htm"\n ]\n }\n ],\n "terminal":true\n }\n ]\n }\n ]\n }\n ],\n "tls_connection_policies":[\n {\n "match":{\n "sni":[\n "${domain}"\n ]\n }\n }\n ],\n "automatic_https":{\n "disable":true\n }\n }\n }\n },\n "tls":{\n "certificates":{\n "automate":[\n "${domain}"\n ],\n "load_files":[\n {\n "certificate":"/tpdata/cert/certificates/acme-v02.api.letsencrypt.org-directory/${domain}/${domain}.crt",\n "key":"/tpdata/cert/certificates/acme-v02.api.letsencrypt.org-directory/${domain}/${domain}.key"\n }\n ]\n },\n "automation":{\n "policies":[\n {\n "issuers":[\n {\n "module":"acme",\n "email":""\n }\n ]\n }\n ]\n }\n }\n }\n}\n')])])]),t("p",[a._v("注意:需要将证书文件上传至证书文件夹:"),t("code",[a._v("/tpdata/cert/")]),a._v(",证书文件名称格式为"),t("code",[a._v("${domian}.crt")]),a._v("和"),t("code",[a._v("${domian}.key")]),a._v("。")]),a._v(" "),t("p",[a._v("参数解释:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("${CADDY_LOG}")]),a._v(":日志文件夹")]),a._v(" "),t("li",[t("code",[a._v("${CERT_PATH}")]),a._v(":证书文件夹")]),a._v(" "),t("li",[t("code",[a._v("${caddy_port}")]),a._v(":Caddy端口")]),a._v(" "),t("li",[t("code",[a._v("${domain}")]),a._v(":你的域名")]),a._v(" "),t("li",[t("code",[a._v("${caddy_remote_port}")]),a._v(":Caddy转发的端口")]),a._v(" "),t("li",[t("code",[a._v("${WEB_PATH}")]),a._v(":伪装网站文件夹")])]),a._v(" "),t("h2",{attrs:{id:"安装mariadb"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#安装mariadb"}},[a._v("#")]),a._v(" 安装MariaDB")]),a._v(" "),t("blockquote",[t("p",[a._v("Docker Hub:https://hub.docker.com/_/mariadb")])]),a._v(" "),t("ol",[t("li",[a._v("Pull the image")])]),a._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[a._v("docker")]),a._v(" pull mariadb:10.7.3\n")])])]),t("ol",{attrs:{start:"2"}},[t("li",[a._v("Start a container")])]),a._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[a._v("docker")]),a._v(" run "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-d")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--name")]),a._v(" trojan-panel-mariadb "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--restart")]),a._v(" always "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--network")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("host "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("MYSQL_DATABASE")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"trojan_panel_db"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("MYSQL_ROOT_PASSWORD")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"'),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${mariadb_pas}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("TZ")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("Asia/Shanghai "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\nmariadb:10.7.3 "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--port")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${mariadb_port}")]),a._v("\n")])])]),t("p",[a._v("参数解释:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("--name trojan-panel-mariadb")]),a._v(":定义容器的名称")]),a._v(" "),t("li",[t("code",[a._v("--restart always")]),a._v(":容器随着Docker启动而启动")]),a._v(" "),t("li",[t("code",[a._v("--network=host")]),a._v(":使用Host网络模式")]),a._v(" "),t("li",[t("code",[a._v('-e MYSQL_DATABASE="trojan_panel_db"')]),a._v(":容器启动时创建一个默认的"),t("code",[a._v("trojan_panel_db")]),a._v("库")]),a._v(" "),t("li",[t("code",[a._v('-e MYSQL_ROOT_PASSWORD="${mariadb_pas}"')]),a._v(":设置MariaDB密码为"),t("code",[a._v("${mariadb_pas}")])]),a._v(" "),t("li",[t("code",[a._v("-e TZ=Asia/Shanghai")]),a._v(":设置时区为上海")]),a._v(" "),t("li",[t("code",[a._v("--port ${mariadb_port}")]),a._v(":自定义数据库端口(默认:9507)")])]),a._v(" "),t("h2",{attrs:{id:"安装redis"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#安装redis"}},[a._v("#")]),a._v(" 安装Redis")]),a._v(" "),t("blockquote",[t("p",[a._v("Docker Hub:https://hub.docker.com/_/redis")])]),a._v(" "),t("ol",[t("li",[a._v("Pull the image")])]),a._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[a._v("docker")]),a._v(" pull redis:6.2.7\n")])])]),t("ol",{attrs:{start:"2"}},[t("li",[a._v("Start a container")])]),a._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[a._v("docker")]),a._v(" run "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-d")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--name")]),a._v(" trojan-panel-redis "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--restart")]),a._v(" always "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--network")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("host "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\nredis:6.2.7 "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\nredis-server "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--requirepass")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"'),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${redis_pass}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--port")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${redis_port}")]),a._v("\n")])])]),t("p",[a._v("参数解释:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("--name trojan-panel-redis")]),a._v(":定义容器的名称")]),a._v(" "),t("li",[t("code",[a._v("--restart always")]),a._v(":容器随着Docker启动而启动")]),a._v(" "),t("li",[t("code",[a._v("--network=host")]),a._v(":使用Host网络模式")]),a._v(" "),t("li",[t("code",[a._v('redis-server --requirepass "${redis_pass}" --port ${redis_port}')]),a._v(":设置Redis密码为"),t("code",[a._v("${redis_pass}")]),a._v(" 设置Redis端口为"),t("code",[a._v("${redis_port}")]),a._v("\n(默认:6378)")])]),a._v(" "),t("h2",{attrs:{id:"安装trojan-panel"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#安装trojan-panel"}},[a._v("#")]),a._v(" 安装Trojan Panel")]),a._v(" "),t("blockquote",[t("p",[a._v("Docker Hub:https://hub.docker.com/r/jonssonyan/trojan-panel")])]),a._v(" "),t("ol",[t("li",[a._v("Pull the image")])]),a._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[a._v("docker")]),a._v(" pull jonssonyan/trojan-panel\n")])])]),t("ol",{attrs:{start:"2"}},[t("li",[a._v("Start a container")])]),a._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[a._v("docker")]),a._v(" run "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-d")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--name")]),a._v(" trojan-panel "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--restart")]),a._v(" always "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--network")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("host "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${WEB_PATH}")]),a._v(":/tpdata/trojan-panel/webfile/ "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_LOGS}")]),a._v(":/tpdata/trojan-panel/logs/ "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_EXPORT}")]),a._v(":/tpdata/trojan-panel/export/ "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_TEMPLATE}")]),a._v(":/tpdata/trojan-panel/template/ "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" /etc/localtime:/etc/localtime "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("GIN_MODE")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("release "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"mariadb_ip='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${mariadb_ip}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"mariadb_port='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${mariadb_port}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"mariadb_user='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${mariadb_user}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"mariadb_pas='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${mariadb_pas}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"redis_host='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${redis_host}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"redis_port='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${redis_port}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"redis_pass='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${redis_pass}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\njonssonyan/trojan-panel\n")])])]),t("p",[a._v("参数解释:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("--name trojan-panel")]),a._v(":定义容器的名称")]),a._v(" "),t("li",[t("code",[a._v("--restart always")]),a._v(":容器随着Docker启动而启动")]),a._v(" "),t("li",[t("code",[a._v("--network=host")]),a._v(":使用Host网络模式")]),a._v(" "),t("li",[t("code",[a._v("-v ${WEB_PATH}:/tpdata/trojan-panel/webfile/")]),a._v(":映射伪装网站文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v ${TROJAN_PANEL_LOGS}:/tpdata/trojan-panel/logs/")]),a._v(":映射日志文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v ${TROJAN_PANEL_EXPORT}:/tpdata/trojan-panel/export/")]),a._v(":映射导出文件文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v ${TROJAN_PANEL_TEMPLATE}:/tpdata/trojan-panel/template/")]),a._v(":映射模板文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v /etc/localtime:/etc/localtime")]),a._v(":同步宿主机和容器的时区")]),a._v(" "),t("li",[t("code",[a._v("-e GIN_MODE=release")]),a._v(":release模式启动")]),a._v(" "),t("li",[t("code",[a._v('-e "mariadb_ip=${mariadb_ip}"')]),a._v(":"),t("code",[a._v("${mariadb_ip}")]),a._v("为 MariaDB 数据库的 IP 地址(默认:本机数据库)")]),a._v(" "),t("li",[t("code",[a._v('-e "mariadb_port=${mariadb_port}"')]),a._v(":"),t("code",[a._v("${mariadb_port}")]),a._v("为 MariaDB 数据库的端口(默认:本机数据库端口)")]),a._v(" "),t("li",[t("code",[a._v('-e "mariadb_user=${mariadb_user}"')]),a._v(":"),t("code",[a._v("${mariadb_user}")]),a._v("为 MariaDB 数据库的用户名(默认:root)")]),a._v(" "),t("li",[t("code",[a._v('-e "mariadb_pas=${mariadb_pas}"')]),a._v(":"),t("code",[a._v("${mariadb_pas}")]),a._v("为 MariaDB 数据库密码(必填)")]),a._v(" "),t("li",[t("code",[a._v('-e "redis_host=${redis_host}"')]),a._v(":"),t("code",[a._v("${redis_host}")]),a._v("为 Redis 的 IP 地址(默认:本机 Redis)")]),a._v(" "),t("li",[t("code",[a._v('-e "redis_port=${redis_port}"')]),a._v(":"),t("code",[a._v("${redis_port}")]),a._v("为 Redis 的端口(默认:本机 Redis 端口)")]),a._v(" "),t("li",[t("code",[a._v('-e "redis_pass=${redis_pass}"')]),a._v(":"),t("code",[a._v("${redis_pass}")]),a._v("为 Redis 的密码(必填)")])]),a._v(" "),t("h2",{attrs:{id:"安装trojan-panel-ui"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#安装trojan-panel-ui"}},[a._v("#")]),a._v(" 安装Trojan Panel UI")]),a._v(" "),t("blockquote",[t("p",[a._v("Docker Hub:https://hub.docker.com/r/jonssonyan/trojan-panel-ui")])]),a._v(" "),t("ol",[t("li",[a._v("Pull the image")])]),a._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[a._v("docker")]),a._v(" pull jonssonyan/trojan-panel-ui\n")])])]),t("ol",{attrs:{start:"2"}},[t("li",[a._v("Start a container")])]),a._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[a._v("docker")]),a._v(" run "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-d")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--name")]),a._v(" trojan-panel-ui "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--restart")]),a._v(" always "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--network")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("host "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"'),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${UI_NGINX_CONFIG}")]),a._v('"')]),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"/etc/nginx/conf.d/default.conf"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${CERT_PATH}")]),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${CERT_PATH}")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\njonssonyan/trojan-panel-ui\n")])])]),t("p",[a._v("参数解释:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("--name trojan-panel-ui")]),a._v(":定义容器名称")]),a._v(" "),t("li",[t("code",[a._v("--restart always")]),a._v(":容器随着Docker启动而启动")]),a._v(" "),t("li",[t("code",[a._v("--network=host")]),a._v(":使用Host网络模式")]),a._v(" "),t("li",[t("code",[a._v('-v "${NGINX_CONFIG}":"/etc/nginx/conf.d/default.conf"')]),a._v(":映射Nginx配置文件")]),a._v(" "),t("li",[t("code",[a._v("-v ${CERT_PATH}:${CERT_PATH}")]),a._v(":映射证书文件夹")])]),a._v(" "),t("p",[a._v("Nginx配置举例")]),a._v(" "),t("ol",[t("li",[a._v("使用 https")])]),a._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[a._v("server {\n listen ${trojan_panel_ui_port} ssl;\n server_name localhost;\n #强制ssl\n ssl on;\n ssl_certificate ${CERT_PATH}${domain}.crt;\n ssl_certificate_key ${CERT_PATH}${domain}.key;\n #缓存有效期\n ssl_session_timeout 5m;\n #安全链接可选的加密协议\n ssl_protocols TLSv1.3;\n #加密算法\n ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;\n #使用服务器端的首选算法\n ssl_prefer_server_ciphers on;\n #access_log /var/log/nginx/host.access.log main;\n location / {\n root ${TROJAN_PANEL_UI_DATA};\n index index.html index.htm;\n }\n location /api {\n proxy_pass http://127.0.0.1:8081;\n }\n #error_page 404 /404.html;\n #497 http->https\n error_page 497 https://\\$host:${trojan_panel_ui_port}\\$request_uri;\n # redirect server error pages to the static page /50x.html\n #\n error_page 500 502 503 504 /50x.html;\n location = /50x.html {\n root /usr/share/nginx/html;\n }\n}\n")])])]),t("p",[a._v("参数解释:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("${trojan_panel_ui_port}")]),a._v(":Trojan Panel 端口")]),a._v(" "),t("li",[t("code",[a._v("${CERT_PATH}")]),a._v(":证书文件夹")]),a._v(" "),t("li",[t("code",[a._v("${domain}")]),a._v(":你的域名")]),a._v(" "),t("li",[t("code",[a._v("${TROJAN_PANEL_UI_DATA}")]),a._v(":前端编译文件所在的文件夹")])]),a._v(" "),t("ol",{attrs:{start:"2"}},[t("li",[a._v("使用 http")])]),a._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[a._v("server {\n listen ${trojan_panel_ui_port};\n server_name localhost;\n location / {\n root ${TROJAN_PANEL_UI_DATA};\n index index.html index.htm;\n }\n location /api {\n proxy_pass http://127.0.0.1:8081;\n }\n error_page 497 http://\\$host:${trojan_panel_ui_port}\\$request_uri;\n error_page 500 502 503 504 /50x.html;\n location = /50x.html {\n root /usr/share/nginx/html;\n }\n}\n")])])]),t("p",[a._v("参数解释:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("${trojan_panel_ui_port}")]),a._v(":Trojan Panel 前端端口")]),a._v(" "),t("li",[t("code",[a._v("${TROJAN_PANEL_UI_DATA}")]),a._v(":前端编译文件所在的文件夹")])]),a._v(" "),t("h2",{attrs:{id:"安装trojan-panel-core"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#安装trojan-panel-core"}},[a._v("#")]),a._v(" 安装Trojan Panel Core")]),a._v(" "),t("blockquote",[t("p",[a._v("Docker Hub:https://hub.docker.com/r/jonssonyan/trojan-panel-core")])]),a._v(" "),t("ol",[t("li",[a._v("Pull the image")])]),a._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[a._v("docker")]),a._v(" pull jonssonyan/trojan-panel-core\n")])])]),t("ol",{attrs:{start:"2"}},[t("li",[a._v("Start a container")])]),a._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[a._v("docker")]),a._v(" run "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-d")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--name")]),a._v(" trojan-panel-core "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--restart")]),a._v(" always "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--network")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("host "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_CORE_DATA}")]),a._v("bin/xray/config:"),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_CORE_DATA}")]),a._v("bin/xray/config "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_CORE_DATA}")]),a._v("bin/trojango/config:"),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_CORE_DATA}")]),a._v("bin/trojango/config "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_CORE_DATA}")]),a._v("bin/hysteria/config:"),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_CORE_DATA}")]),a._v("bin/hysteria/config "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_CORE_DATA}")]),a._v("bin/naiveproxy/config:"),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_CORE_DATA}")]),a._v("bin/naiveproxy/config "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_CORE_LOGS}")]),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_CORE_LOGS}")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_CORE_SQLITE}")]),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_CORE_SQLITE}")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${CERT_PATH}")]),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${CERT_PATH}")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${WEB_PATH}")]),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${WEB_PATH}")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" /etc/localtime:/etc/localtime "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("GIN_MODE")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("release "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"mariadb_ip='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${mariadb_ip}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"mariadb_port='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${mariadb_port}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"mariadb_user='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${mariadb_user}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"mariadb_pas='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${mariadb_pas}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"database='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${database}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"account-table='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${account_table}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"redis_host='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${redis_host}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"redis_port='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${redis_port}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"redis_pass='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${redis_pass}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"crt_path='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${CERT_PATH}")]),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${domain}")]),a._v('.crt"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"key_path='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${CERT_PATH}")]),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${domain}")]),a._v('.key"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"grpc_port='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${grpc_port}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\njonssonyan/trojan-panel-core\n")])])]),t("p",[a._v("参数解释:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("--name trojan-panel-core")]),a._v(":定义容器名称")]),a._v(" "),t("li",[t("code",[a._v("--restart always")]),a._v(":容器随着Docker启动而启动")]),a._v(" "),t("li",[t("code",[a._v("--network=host")]),a._v(":使用Host网络模式")]),a._v(" "),t("li",[t("code",[a._v("-v ${TROJAN_PANEL_CORE_DATA}bin/xray/config:${TROJAN_PANEL_CORE_DATA}bin/xray/config")]),a._v(":映射Xray配置文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v ${TROJAN_PANEL_CORE_DATA}bin/trojango/config:${TROJAN_PANEL_CORE_DATA}bin/trojango/config")]),a._v(":映射TrojanGo配置文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v ${TROJAN_PANEL_CORE_DATA}bin/hysteria/config:${TROJAN_PANEL_CORE_DATA}bin/hysteria/config")]),a._v(":映射Hysteria配置文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v ${TROJAN_PANEL_CORE_DATA}bin/naiveproxy/config:${TROJAN_PANEL_CORE_DATA}bin/naiveproxy/config")]),a._v(":映射NaiveProxy配置文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v ${TROJAN_PANEL_CORE_LOGS}:${TROJAN_PANEL_CORE_LOGS}")]),a._v(":映射日志文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v ${TROJAN_PANEL_CORE_SQLITE}:${TROJAN_PANEL_CORE_SQLITE}")]),a._v(":映射SQLite文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v ${CERT_PATH}:${CERT_PATH}")]),a._v(":映射证书文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v ${WEB_PATH}:${WEB_PATH}")]),a._v(":映射回落资源文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v /etc/localtime:/etc/localtime")]),a._v(":同步宿主机和容器的时区")]),a._v(" "),t("li",[t("code",[a._v("-e GIN_MODE=release")]),a._v(":release模式启动")]),a._v(" "),t("li",[t("code",[a._v('-e "mariadb_ip=${mariadb_ip}"')]),a._v(":"),t("code",[a._v("${mariadb_ip}")]),a._v("为 MariaDB 数据库的 IP 地址(默认:本机数据库)")]),a._v(" "),t("li",[t("code",[a._v('-e "mariadb_port=${mariadb_port}"')]),a._v(":"),t("code",[a._v("${mariadb_port}")]),a._v("为 MariaDB 数据库的端口(默认:本机数据库端口)")]),a._v(" "),t("li",[t("code",[a._v('-e "mariadb_user=${mariadb_user}"')]),a._v(":"),t("code",[a._v("${mariadb_user}")]),a._v("为 MariaDB 数据库的用户名(默认:root)")]),a._v(" "),t("li",[t("code",[a._v('-e "mariadb_pas=${mariadb_pas}"')]),a._v(":"),t("code",[a._v("${mariadb_pas}")]),a._v("为 MariaDB 数据库密码(默认:123456)")]),a._v(" "),t("li",[t("code",[a._v('-e "database=${database}"')]),a._v(":"),t("code",[a._v("${database}")]),a._v("为数据库名称")]),a._v(" "),t("li",[t("code",[a._v('-e "account-table=${account_table}"')]),a._v(":"),t("code",[a._v("${account_table}")]),a._v("为用户表名称")]),a._v(" "),t("li",[t("code",[a._v('-e "redis_host=${redis_host}"')]),a._v(":"),t("code",[a._v("${redis_host}")]),a._v("为 Redis 的 IP 地址(默认:本机 Redis)")]),a._v(" "),t("li",[t("code",[a._v('-e "redis_port=${redis_port}"')]),a._v(":"),t("code",[a._v("${redis_port}")]),a._v("为 Redis 的端口(默认:本机 Redis 端口)")]),a._v(" "),t("li",[t("code",[a._v('-e "redis_pass=${redis_pass}"')]),a._v(":"),t("code",[a._v("${redis_pass}")]),a._v("为 Redis 的密码(默认:123456)")]),a._v(" "),t("li",[t("code",[a._v('-e "crt_path=${CERT_PATH}${domain}.crt"')]),a._v(":自定义证书.crt文件路径")]),a._v(" "),t("li",[t("code",[a._v('-e "key_path=${CERT_PATH}${domain}.key"')]),a._v(":自定义证书.key文件路径")]),a._v(" "),t("li",[t("code",[a._v('-e "grpc_port=${grpc_port}"')]),a._v(":自定义服务器之间的通讯端口")])])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/11.e71ac172.js b/docs/assets/js/11.e71ac172.js new file mode 100644 index 0000000..5d39e31 --- /dev/null +++ b/docs/assets/js/11.e71ac172.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{284:function(a,t,e){"use strict";e.r(t);var s=e(7),r=Object(s.a)({},(function(){var a=this,t=a._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[t("h1",{attrs:{id:"手动安装教程"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#手动安装教程"}},[a._v("#")]),a._v(" 手动安装教程")]),a._v(" "),t("h2",{attrs:{id:"准备"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#准备"}},[a._v("#")]),a._v(" 准备")]),a._v(" "),t("h4",{attrs:{id:"安装顺序"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#安装顺序"}},[a._v("#")]),a._v(" 安装顺序")]),a._v(" "),t("p",[a._v("Docker -> Caddy2 -> MariaDB -> Redis -> Trojan Panel Backend -> Trojan Panel Frontend -> Trojan Panel Core")]),a._v(" "),t("h4",{attrs:{id:"版本对应关系"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#版本对应关系"}},[a._v("#")]),a._v(" 版本对应关系")]),a._v(" "),t("table",[t("thead",[t("tr",[t("th",[a._v("名称")]),a._v(" "),t("th",[a._v("版本")])])]),a._v(" "),t("tbody",[t("tr",[t("td",[a._v("Docker")]),a._v(" "),t("td",[a._v("latest")])]),a._v(" "),t("tr",[t("td",[a._v("Nginx")]),a._v(" "),t("td",[a._v("1.20-alpine")])]),a._v(" "),t("tr",[t("td",[a._v("Caddy2")]),a._v(" "),t("td",[a._v("2.6.2")])]),a._v(" "),t("tr",[t("td",[a._v("MariaDB")]),a._v(" "),t("td",[a._v("10.7.3")])]),a._v(" "),t("tr",[t("td",[a._v("Redis")]),a._v(" "),t("td",[a._v("6.2.7")])]),a._v(" "),t("tr",[t("td",[a._v("Trojan Panel Frontend")]),a._v(" "),t("td",[a._v("latest")])]),a._v(" "),t("tr",[t("td",[a._v("Trojan Panel Backend")]),a._v(" "),t("td",[a._v("latest")])]),a._v(" "),t("tr",[t("td",[a._v("Trojan Panel Core")]),a._v(" "),t("td",[a._v("latest")])])])]),a._v(" "),t("h2",{attrs:{id:"安装docker"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#安装docker"}},[a._v("#")]),a._v(" 安装Docker")]),a._v(" "),t("blockquote",[t("p",[a._v("Docker官方安装教程:https://docs.docker.com/engine/install/")])]),a._v(" "),t("h2",{attrs:{id:"安装caddy2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#安装caddy2"}},[a._v("#")]),a._v(" 安装Caddy2")]),a._v(" "),t("blockquote",[t("p",[a._v("Docker Hub:https://hub.docker.com/_/caddy")])]),a._v(" "),t("ol",[t("li",[t("p",[a._v("Pull the image")]),a._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[a._v("docker")]),a._v(" pull caddy:2.6.2\n")])])])]),a._v(" "),t("li",[t("p",[a._v("Start a container")]),a._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[a._v("docker")]),a._v(" run "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-d")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--name")]),a._v(" trojan-panel-caddy "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--restart")]),a._v(" always "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--network")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("host "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"'),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${CADDY_CONFIG}")]),a._v('"')]),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"'),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${CADDY_CONFIG}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${CERT_PATH}")]),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"/tpdata/cert/certificates/acme-v02.api.letsencrypt.org-directory/'),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${domain}")]),a._v('/"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${WEB_PATH}")]),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${WEB_PATH}")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${CADDY_LOG}")]),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${CADDY_LOG}")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\ncaddy:2.6.2 caddy run "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--config")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${CADDY_CONFIG}")]),a._v("\n")])])])])]),a._v(" "),t("p",[a._v("参数解释:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("--name trojan-panel-redis")]),a._v(":定义容器的名称")]),a._v(" "),t("li",[t("code",[a._v("--restart always")]),a._v(":容器随着Docker启动而启动")]),a._v(" "),t("li",[t("code",[a._v("--network=host")]),a._v(":使用Host网络模式")]),a._v(" "),t("li",[t("code",[a._v('-v "${CADDY_CONFIG}":"${CADDY_CONFIG}"')]),a._v(":映射Caddy配置文件")]),a._v(" "),t("li",[t("code",[a._v('-v ${CERT_PATH}:"/tpdata/cert/certificates/acme-v02.api.letsencrypt.org-directory/${domain}/"')]),a._v(":映射证书文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v ${WEB_PATH}:${WEB_PATH}")]),a._v(":映射伪装网站文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v ${CADDY_LOG}:${CADDY_LOG}")]),a._v(":日志文件夹")]),a._v(" "),t("li",[t("code",[a._v("caddy run --config ${CADDY_CONFIG}")]),a._v(":指定配置文件运行")])]),a._v(" "),t("p",[a._v("Caddy配置举例")]),a._v(" "),t("ol",[t("li",[a._v("acme自动申请和续签")])]),a._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[a._v('{\n "admin":{\n "disabled":true\n },\n "logging":{\n "logs":{\n "default":{\n "writer":{\n "output":"file",\n "filename":"${CADDY_LOG}error.log"\n },\n "level":"ERROR"\n }\n }\n },\n "storage":{\n "module":"file_system",\n "root":"${CERT_PATH}"\n },\n "apps":{\n "http":{\n "http_port": ${caddy_port},\n "servers":{\n "srv0":{\n "listen":[\n ":${caddy_port}"\n ],\n "routes":[\n {\n "match":[\n {\n "host":[\n "${domain}"\n ]\n }\n ],\n "handle":[\n {\n "handler":"static_response",\n "headers":{\n "Location":[\n "https://{http.request.host}:${caddy_remote_port}{http.request.uri}"\n ]\n },\n "status_code":301\n }\n ]\n }\n ]\n },\n "srv1":{\n "listen":[\n ":${caddy_remote_port}"\n ],\n "routes":[\n {\n "handle":[\n {\n "handler":"subroute",\n "routes":[\n {\n "match":[\n {\n "host":[\n "${domain}"\n ]\n }\n ],\n "handle":[\n {\n "handler":"file_server",\n "root":"${WEB_PATH}",\n "index_names":[\n "index.html",\n "index.htm"\n ]\n }\n ],\n "terminal":true\n }\n ]\n }\n ]\n }\n ],\n "tls_connection_policies":[\n {\n "match":{\n "sni":[\n "${domain}"\n ]\n }\n }\n ],\n "automatic_https":{\n "disable":true\n }\n }\n }\n },\n "tls":{\n "certificates":{\n "automate":[\n "${domain}"\n ]\n },\n "automation":{\n "policies":[\n {\n "issuers":[\n {\n "module":"acme",\n "email":""\n }\n ]\n }\n ]\n }\n }\n }\n}\n')])])]),t("p",[a._v("参数解释:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("${CADDY_LOG}")]),a._v(":日志文件夹")]),a._v(" "),t("li",[t("code",[a._v("${CERT_PATH}")]),a._v(":证书文件夹")]),a._v(" "),t("li",[t("code",[a._v("${caddy_port}")]),a._v(":Caddy端口")]),a._v(" "),t("li",[t("code",[a._v("${domain}")]),a._v(":你的域名")]),a._v(" "),t("li",[t("code",[a._v("${caddy_remote_port}")]),a._v(":Caddy转发的端口")]),a._v(" "),t("li",[t("code",[a._v("${WEB_PATH}")]),a._v(":伪装网站文件夹")])]),a._v(" "),t("ol",{attrs:{start:"2"}},[t("li",[a._v("手动设置自定义证书")])]),a._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[a._v('{\n "admin":{\n "disabled":true\n },\n "logging":{\n "logs":{\n "default":{\n "writer":{\n "output":"file",\n "filename":"${CADDY_LOG}error.log"\n },\n "level":"ERROR"\n }\n }\n },\n "storage":{\n "module":"file_system",\n "root":"${CERT_PATH}"\n },\n "apps":{\n "http":{\n "http_port": ${caddy_port},\n "servers":{\n "srv0":{\n "listen":[\n ":${caddy_port}"\n ],\n "routes":[\n {\n "match":[\n {\n "host":[\n "${domain}"\n ]\n }\n ],\n "handle":[\n {\n "handler":"static_response",\n "headers":{\n "Location":[\n "https://{http.request.host}:${caddy_remote_port}{http.request.uri}"\n ]\n },\n "status_code":301\n }\n ]\n }\n ]\n },\n "srv1":{\n "listen":[\n ":${caddy_remote_port}"\n ],\n "routes":[\n {\n "handle":[\n {\n "handler":"subroute",\n "routes":[\n {\n "match":[\n {\n "host":[\n "${domain}"\n ]\n }\n ],\n "handle":[\n {\n "handler":"file_server",\n "root":"${WEB_PATH}",\n "index_names":[\n "index.html",\n "index.htm"\n ]\n }\n ],\n "terminal":true\n }\n ]\n }\n ]\n }\n ],\n "tls_connection_policies":[\n {\n "match":{\n "sni":[\n "${domain}"\n ]\n }\n }\n ],\n "automatic_https":{\n "disable":true\n }\n }\n }\n },\n "tls":{\n "certificates":{\n "automate":[\n "${domain}"\n ],\n "load_files":[\n {\n "certificate":"/tpdata/cert/certificates/acme-v02.api.letsencrypt.org-directory/${domain}/${domain}.crt",\n "key":"/tpdata/cert/certificates/acme-v02.api.letsencrypt.org-directory/${domain}/${domain}.key"\n }\n ]\n },\n "automation":{\n "policies":[\n {\n "issuers":[\n {\n "module":"acme",\n "email":""\n }\n ]\n }\n ]\n }\n }\n }\n}\n')])])]),t("p",[a._v("注意:需要将证书文件上传至证书文件夹:"),t("code",[a._v("/tpdata/cert/")]),a._v(",证书文件名称格式为"),t("code",[a._v("${domian}.crt")]),a._v("和"),t("code",[a._v("${domian}.key")]),a._v("。")]),a._v(" "),t("p",[a._v("参数解释:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("${CADDY_LOG}")]),a._v(":日志文件夹")]),a._v(" "),t("li",[t("code",[a._v("${CERT_PATH}")]),a._v(":证书文件夹")]),a._v(" "),t("li",[t("code",[a._v("${caddy_port}")]),a._v(":Caddy端口")]),a._v(" "),t("li",[t("code",[a._v("${domain}")]),a._v(":你的域名")]),a._v(" "),t("li",[t("code",[a._v("${caddy_remote_port}")]),a._v(":Caddy转发的端口")]),a._v(" "),t("li",[t("code",[a._v("${WEB_PATH}")]),a._v(":伪装网站文件夹")])]),a._v(" "),t("h2",{attrs:{id:"安装mariadb"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#安装mariadb"}},[a._v("#")]),a._v(" 安装MariaDB")]),a._v(" "),t("blockquote",[t("p",[a._v("Docker Hub:https://hub.docker.com/_/mariadb")])]),a._v(" "),t("ol",[t("li",[t("p",[a._v("Pull the image")]),a._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[a._v("docker")]),a._v(" pull mariadb:10.7.3\n")])])])]),a._v(" "),t("li",[t("p",[a._v("Start a container")]),a._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[a._v("docker")]),a._v(" run "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-d")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--name")]),a._v(" trojan-panel-mariadb "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--restart")]),a._v(" always "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--network")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("host "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("MYSQL_DATABASE")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"trojan_panel_db"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("MYSQL_ROOT_PASSWORD")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"'),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${mariadb_pas}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("TZ")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("Asia/Shanghai "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\nmariadb:10.7.3 "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--port")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${mariadb_port}")]),a._v("\n")])])])])]),a._v(" "),t("p",[a._v("参数解释:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("--name trojan-panel-mariadb")]),a._v(":定义容器的名称")]),a._v(" "),t("li",[t("code",[a._v("--restart always")]),a._v(":容器随着Docker启动而启动")]),a._v(" "),t("li",[t("code",[a._v("--network=host")]),a._v(":使用Host网络模式")]),a._v(" "),t("li",[t("code",[a._v('-e MYSQL_DATABASE="trojan_panel_db"')]),a._v(":容器启动时创建一个默认的"),t("code",[a._v("trojan_panel_db")]),a._v("库")]),a._v(" "),t("li",[t("code",[a._v('-e MYSQL_ROOT_PASSWORD="${mariadb_pas}"')]),a._v(":设置MariaDB密码为"),t("code",[a._v("${mariadb_pas}")])]),a._v(" "),t("li",[t("code",[a._v("-e TZ=Asia/Shanghai")]),a._v(":设置时区为上海")]),a._v(" "),t("li",[t("code",[a._v("--port ${mariadb_port}")]),a._v(":自定义数据库端口(默认:9507)")])]),a._v(" "),t("h2",{attrs:{id:"安装redis"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#安装redis"}},[a._v("#")]),a._v(" 安装Redis")]),a._v(" "),t("blockquote",[t("p",[a._v("Docker Hub:https://hub.docker.com/_/redis")])]),a._v(" "),t("ol",[t("li",[t("p",[a._v("Pull the image")]),a._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[a._v("docker")]),a._v(" pull redis:6.2.7\n")])])])]),a._v(" "),t("li",[t("p",[a._v("Start a container")]),a._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[a._v("docker")]),a._v(" run "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-d")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--name")]),a._v(" trojan-panel-redis "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--restart")]),a._v(" always "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--network")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("host "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\nredis:6.2.7 "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\nredis-server "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--requirepass")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"'),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${redis_pass}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--port")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${redis_port}")]),a._v("\n")])])])])]),a._v(" "),t("p",[a._v("参数解释:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("--name trojan-panel-redis")]),a._v(":定义容器的名称")]),a._v(" "),t("li",[t("code",[a._v("--restart always")]),a._v(":容器随着Docker启动而启动")]),a._v(" "),t("li",[t("code",[a._v("--network=host")]),a._v(":使用Host网络模式")]),a._v(" "),t("li",[t("code",[a._v('redis-server --requirepass "${redis_pass}" --port ${redis_port}')]),a._v(":设置Redis密码为"),t("code",[a._v("${redis_pass}")]),a._v("\n设置Redis端口为"),t("code",[a._v("${redis_port}")]),a._v("(默认:6378)")])]),a._v(" "),t("h2",{attrs:{id:"安装trojan-panel-backend"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#安装trojan-panel-backend"}},[a._v("#")]),a._v(" 安装Trojan Panel Backend")]),a._v(" "),t("blockquote",[t("p",[a._v("Docker Hub:https://hub.docker.com/r/jonssonyan/trojan-panel")])]),a._v(" "),t("ol",[t("li",[t("p",[a._v("Pull the image")]),a._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[a._v("docker")]),a._v(" pull jonssonyan/trojan-panel\n")])])])]),a._v(" "),t("li",[t("p",[a._v("Start a container")]),a._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[a._v("docker")]),a._v(" run "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-d")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--name")]),a._v(" trojan-panel "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--restart")]),a._v(" always "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--network")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("host "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${WEB_PATH}")]),a._v(":/tpdata/trojan-panel/webfile/ "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_LOGS}")]),a._v(":/tpdata/trojan-panel/logs/ "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_EXPORT}")]),a._v(":/tpdata/trojan-panel/export/ "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_TEMPLATE}")]),a._v(":/tpdata/trojan-panel/template/ "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" /etc/localtime:/etc/localtime "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("GIN_MODE")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("release "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"mariadb_ip='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${mariadb_ip}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"mariadb_port='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${mariadb_port}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"mariadb_user='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${mariadb_user}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"mariadb_pas='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${mariadb_pas}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"redis_host='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${redis_host}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"redis_port='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${redis_port}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"redis_pass='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${redis_pass}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\njonssonyan/trojan-panel\n")])])])])]),a._v(" "),t("p",[a._v("参数解释:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("--name trojan-panel")]),a._v(":定义容器的名称")]),a._v(" "),t("li",[t("code",[a._v("--restart always")]),a._v(":容器随着Docker启动而启动")]),a._v(" "),t("li",[t("code",[a._v("--network=host")]),a._v(":使用Host网络模式")]),a._v(" "),t("li",[t("code",[a._v("-v ${WEB_PATH}:/tpdata/trojan-panel/webfile/")]),a._v(":映射伪装网站文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v ${TROJAN_PANEL_LOGS}:/tpdata/trojan-panel/logs/")]),a._v(":映射日志文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v ${TROJAN_PANEL_EXPORT}:/tpdata/trojan-panel/export/")]),a._v(":映射导出文件文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v ${TROJAN_PANEL_TEMPLATE}:/tpdata/trojan-panel/template/")]),a._v(":映射模板文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v /etc/localtime:/etc/localtime")]),a._v(":同步宿主机和容器的时区")]),a._v(" "),t("li",[t("code",[a._v("-e GIN_MODE=release")]),a._v(":release模式启动")]),a._v(" "),t("li",[t("code",[a._v('-e "mariadb_ip=${mariadb_ip}"')]),a._v(":"),t("code",[a._v("${mariadb_ip}")]),a._v("为 MariaDB 数据库的 IP 地址(默认:本机数据库)")]),a._v(" "),t("li",[t("code",[a._v('-e "mariadb_port=${mariadb_port}"')]),a._v(":"),t("code",[a._v("${mariadb_port}")]),a._v("为 MariaDB 数据库的端口(默认:本机数据库端口)")]),a._v(" "),t("li",[t("code",[a._v('-e "mariadb_user=${mariadb_user}"')]),a._v(":"),t("code",[a._v("${mariadb_user}")]),a._v("为 MariaDB 数据库的用户名(默认:root)")]),a._v(" "),t("li",[t("code",[a._v('-e "mariadb_pas=${mariadb_pas}"')]),a._v(":"),t("code",[a._v("${mariadb_pas}")]),a._v("为 MariaDB 数据库密码(必填)")]),a._v(" "),t("li",[t("code",[a._v('-e "redis_host=${redis_host}"')]),a._v(":"),t("code",[a._v("${redis_host}")]),a._v("为 Redis 的 IP 地址(默认:本机 Redis)")]),a._v(" "),t("li",[t("code",[a._v('-e "redis_port=${redis_port}"')]),a._v(":"),t("code",[a._v("${redis_port}")]),a._v("为 Redis 的端口(默认:本机 Redis 端口)")]),a._v(" "),t("li",[t("code",[a._v('-e "redis_pass=${redis_pass}"')]),a._v(":"),t("code",[a._v("${redis_pass}")]),a._v("为 Redis 的密码(必填)")])]),a._v(" "),t("h2",{attrs:{id:"安装trojan-panel-frontend"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#安装trojan-panel-frontend"}},[a._v("#")]),a._v(" 安装Trojan Panel Frontend")]),a._v(" "),t("blockquote",[t("p",[a._v("Docker Hub:https://hub.docker.com/r/jonssonyan/trojan-panel-ui")])]),a._v(" "),t("ol",[t("li",[t("p",[a._v("Pull the image")]),a._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[a._v("docker")]),a._v(" pull jonssonyan/trojan-panel-ui\n")])])])]),a._v(" "),t("li",[t("p",[a._v("Start a container")]),a._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[a._v("docker")]),a._v(" run "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-d")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--name")]),a._v(" trojan-panel-ui "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--restart")]),a._v(" always "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--network")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("host "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"'),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${UI_NGINX_CONFIG}")]),a._v('"')]),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"/etc/nginx/conf.d/default.conf"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${CERT_PATH}")]),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${CERT_PATH}")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\njonssonyan/trojan-panel-ui\n")])])])])]),a._v(" "),t("p",[a._v("参数解释:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("--name trojan-panel-ui")]),a._v(":定义容器名称")]),a._v(" "),t("li",[t("code",[a._v("--restart always")]),a._v(":容器随着Docker启动而启动")]),a._v(" "),t("li",[t("code",[a._v("--network=host")]),a._v(":使用Host网络模式")]),a._v(" "),t("li",[t("code",[a._v('-v "${NGINX_CONFIG}":"/etc/nginx/conf.d/default.conf"')]),a._v(":映射Nginx配置文件")]),a._v(" "),t("li",[t("code",[a._v("-v ${CERT_PATH}:${CERT_PATH}")]),a._v(":映射证书文件夹")])]),a._v(" "),t("p",[a._v("Nginx配置举例")]),a._v(" "),t("ol",[t("li",[a._v("使用 https")])]),a._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[a._v("server {\n listen ${trojan_panel_ui_port} ssl;\n server_name localhost;\n #强制ssl\n ssl on;\n ssl_certificate ${CERT_PATH}${domain}.crt;\n ssl_certificate_key ${CERT_PATH}${domain}.key;\n #缓存有效期\n ssl_session_timeout 5m;\n #安全链接可选的加密协议\n ssl_protocols TLSv1.3;\n #加密算法\n ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;\n #使用服务器端的首选算法\n ssl_prefer_server_ciphers on;\n #access_log /var/log/nginx/host.access.log main;\n location / {\n root ${TROJAN_PANEL_UI_DATA};\n index index.html index.htm;\n }\n location /api {\n proxy_pass http://127.0.0.1:8081;\n }\n #error_page 404 /404.html;\n #497 http->https\n error_page 497 https://\\$host:${trojan_panel_ui_port}\\$request_uri;\n # redirect server error pages to the static page /50x.html\n #\n error_page 500 502 503 504 /50x.html;\n location = /50x.html {\n root /usr/share/nginx/html;\n }\n}\n")])])]),t("p",[a._v("参数解释:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("${trojan_panel_ui_port}")]),a._v(":Trojan Panel 端口")]),a._v(" "),t("li",[t("code",[a._v("${CERT_PATH}")]),a._v(":证书文件夹")]),a._v(" "),t("li",[t("code",[a._v("${domain}")]),a._v(":你的域名")]),a._v(" "),t("li",[t("code",[a._v("${TROJAN_PANEL_UI_DATA}")]),a._v(":前端编译文件所在的文件夹")])]),a._v(" "),t("ol",{attrs:{start:"2"}},[t("li",[a._v("使用 http")])]),a._v(" "),t("div",{staticClass:"language- extra-class"},[t("pre",{pre:!0,attrs:{class:"language-text"}},[t("code",[a._v("server {\n listen ${trojan_panel_ui_port};\n server_name localhost;\n location / {\n root ${TROJAN_PANEL_UI_DATA};\n index index.html index.htm;\n }\n location /api {\n proxy_pass http://127.0.0.1:8081;\n }\n error_page 497 http://\\$host:${trojan_panel_ui_port}\\$request_uri;\n error_page 500 502 503 504 /50x.html;\n location = /50x.html {\n root /usr/share/nginx/html;\n }\n}\n")])])]),t("p",[a._v("参数解释:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("${trojan_panel_ui_port}")]),a._v(":Trojan Panel 前端端口")]),a._v(" "),t("li",[t("code",[a._v("${TROJAN_PANEL_UI_DATA}")]),a._v(":前端编译文件所在的文件夹")])]),a._v(" "),t("h2",{attrs:{id:"安装trojan-panel-core"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#安装trojan-panel-core"}},[a._v("#")]),a._v(" 安装Trojan Panel Core")]),a._v(" "),t("blockquote",[t("p",[a._v("Docker Hub:https://hub.docker.com/r/jonssonyan/trojan-panel-core")])]),a._v(" "),t("ol",[t("li",[t("p",[a._v("Pull the image")]),a._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[a._v("docker")]),a._v(" pull jonssonyan/trojan-panel-core\n")])])])]),a._v(" "),t("li",[t("p",[a._v("Start a container")]),a._v(" "),t("div",{staticClass:"language-shell extra-class"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[t("span",{pre:!0,attrs:{class:"token function"}},[a._v("docker")]),a._v(" run "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-d")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--name")]),a._v(" trojan-panel-core "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--restart")]),a._v(" always "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("--network")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("host "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_CORE_DATA}")]),a._v("bin/xray/config:"),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_CORE_DATA}")]),a._v("bin/xray/config "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_CORE_DATA}")]),a._v("bin/trojango/config:"),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_CORE_DATA}")]),a._v("bin/trojango/config "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_CORE_DATA}")]),a._v("bin/hysteria/config:"),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_CORE_DATA}")]),a._v("bin/hysteria/config "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_CORE_DATA}")]),a._v("bin/naiveproxy/config:"),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_CORE_DATA}")]),a._v("bin/naiveproxy/config "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_CORE_LOGS}")]),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_CORE_LOGS}")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_CORE_SQLITE}")]),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${TROJAN_PANEL_CORE_SQLITE}")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${CERT_PATH}")]),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${CERT_PATH}")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${WEB_PATH}")]),t("span",{pre:!0,attrs:{class:"token builtin class-name"}},[a._v(":")]),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${WEB_PATH}")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-v")]),a._v(" /etc/localtime:/etc/localtime "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("GIN_MODE")]),t("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),a._v("release "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"mariadb_ip='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${mariadb_ip}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"mariadb_port='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${mariadb_port}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"mariadb_user='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${mariadb_user}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"mariadb_pas='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${mariadb_pas}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"database='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${database}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"account-table='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${account_table}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"redis_host='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${redis_host}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"redis_port='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${redis_port}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"redis_pass='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${redis_pass}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"crt_path='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${CERT_PATH}")]),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${domain}")]),a._v('.crt"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"key_path='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${CERT_PATH}")]),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${domain}")]),a._v('.key"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\n"),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[a._v("-e")]),a._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[a._v('"grpc_port='),t("span",{pre:!0,attrs:{class:"token variable"}},[a._v("${grpc_port}")]),a._v('"')]),a._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("\njonssonyan/trojan-panel-core\n")])])])])]),a._v(" "),t("p",[a._v("参数解释:")]),a._v(" "),t("ul",[t("li",[t("code",[a._v("--name trojan-panel-core")]),a._v(":定义容器名称")]),a._v(" "),t("li",[t("code",[a._v("--restart always")]),a._v(":容器随着Docker启动而启动")]),a._v(" "),t("li",[t("code",[a._v("--network=host")]),a._v(":使用Host网络模式")]),a._v(" "),t("li",[t("code",[a._v("-v ${TROJAN_PANEL_CORE_DATA}bin/xray/config:${TROJAN_PANEL_CORE_DATA}bin/xray/config")]),a._v(":映射Xray配置文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v ${TROJAN_PANEL_CORE_DATA}bin/trojango/config:${TROJAN_PANEL_CORE_DATA}bin/trojango/config")]),a._v(":映射TrojanGo配置文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v ${TROJAN_PANEL_CORE_DATA}bin/hysteria/config:${TROJAN_PANEL_CORE_DATA}bin/hysteria/config")]),a._v(":映射Hysteria配置文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v ${TROJAN_PANEL_CORE_DATA}bin/naiveproxy/config:${TROJAN_PANEL_CORE_DATA}bin/naiveproxy/config")]),a._v(":映射NaiveProxy配置文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v ${TROJAN_PANEL_CORE_LOGS}:${TROJAN_PANEL_CORE_LOGS}")]),a._v(":映射日志文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v ${TROJAN_PANEL_CORE_SQLITE}:${TROJAN_PANEL_CORE_SQLITE}")]),a._v(":映射SQLite文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v ${CERT_PATH}:${CERT_PATH}")]),a._v(":映射证书文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v ${WEB_PATH}:${WEB_PATH}")]),a._v(":映射回落资源文件夹")]),a._v(" "),t("li",[t("code",[a._v("-v /etc/localtime:/etc/localtime")]),a._v(":同步宿主机和容器的时区")]),a._v(" "),t("li",[t("code",[a._v("-e GIN_MODE=release")]),a._v(":release模式启动")]),a._v(" "),t("li",[t("code",[a._v('-e "mariadb_ip=${mariadb_ip}"')]),a._v(":"),t("code",[a._v("${mariadb_ip}")]),a._v("为 MariaDB 数据库的 IP 地址(默认:本机数据库)")]),a._v(" "),t("li",[t("code",[a._v('-e "mariadb_port=${mariadb_port}"')]),a._v(":"),t("code",[a._v("${mariadb_port}")]),a._v("为 MariaDB 数据库的端口(默认:本机数据库端口)")]),a._v(" "),t("li",[t("code",[a._v('-e "mariadb_user=${mariadb_user}"')]),a._v(":"),t("code",[a._v("${mariadb_user}")]),a._v("为 MariaDB 数据库的用户名(默认:root)")]),a._v(" "),t("li",[t("code",[a._v('-e "mariadb_pas=${mariadb_pas}"')]),a._v(":"),t("code",[a._v("${mariadb_pas}")]),a._v("为 MariaDB 数据库密码(默认:123456)")]),a._v(" "),t("li",[t("code",[a._v('-e "database=${database}"')]),a._v(":"),t("code",[a._v("${database}")]),a._v("为数据库名称")]),a._v(" "),t("li",[t("code",[a._v('-e "account-table=${account_table}"')]),a._v(":"),t("code",[a._v("${account_table}")]),a._v("为用户表名称")]),a._v(" "),t("li",[t("code",[a._v('-e "redis_host=${redis_host}"')]),a._v(":"),t("code",[a._v("${redis_host}")]),a._v("为 Redis 的 IP 地址(默认:本机 Redis)")]),a._v(" "),t("li",[t("code",[a._v('-e "redis_port=${redis_port}"')]),a._v(":"),t("code",[a._v("${redis_port}")]),a._v("为 Redis 的端口(默认:本机 Redis 端口)")]),a._v(" "),t("li",[t("code",[a._v('-e "redis_pass=${redis_pass}"')]),a._v(":"),t("code",[a._v("${redis_pass}")]),a._v("为 Redis 的密码(默认:123456)")]),a._v(" "),t("li",[t("code",[a._v('-e "crt_path=${CERT_PATH}${domain}.crt"')]),a._v(":自定义证书.crt文件路径")]),a._v(" "),t("li",[t("code",[a._v('-e "key_path=${CERT_PATH}${domain}.key"')]),a._v(":自定义证书.key文件路径")]),a._v(" "),t("li",[t("code",[a._v('-e "grpc_port=${grpc_port}"')]),a._v(":自定义服务器之间的通讯端口")])])])}),[],!1,null,null,null);t.default=r.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/12.5bf16040.js b/docs/assets/js/12.7a7abe12.js similarity index 99% rename from docs/assets/js/12.5bf16040.js rename to docs/assets/js/12.7a7abe12.js index 87ff9d2..47ae26d 100644 --- a/docs/assets/js/12.5bf16040.js +++ b/docs/assets/js/12.7a7abe12.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{288:function(t,n,a){"use strict";a.r(n);var s=a(7),e=Object(s.a)({},(function(){var t=this,n=t._self._c;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"docker-compose方式安装"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#docker-compose方式安装"}},[t._v("#")]),t._v(" Docker Compose方式安装")]),t._v(" "),n("h2",{attrs:{id:"准备"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#准备"}},[t._v("#")]),t._v(" 准备")]),t._v(" "),n("h3",{attrs:{id:"设置伪装网站"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#设置伪装网站"}},[t._v("#")]),t._v(" 设置伪装网站")]),t._v(" "),n("p",[t._v("将静态网站文件上传至伪装网站文件夹:"),n("code",[t._v("/tpdata/web/")])]),t._v(" "),n("h3",{attrs:{id:"新建caddy配置文件"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#新建caddy配置文件"}},[t._v("#")]),t._v(" 新建Caddy配置文件")]),t._v(" "),n("p",[t._v("文件路径:"),n("code",[t._v("/tpdata/caddy/config.json")])]),t._v(" "),n("p",[t._v("Caddy配置举例")]),t._v(" "),n("ol",[n("li",[t._v("acme自动申请和续签")])]),t._v(" "),n("div",{staticClass:"language- extra-class"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v('{\n "admin": {\n "disabled": true\n },\n "logging": {\n "logs": {\n "default": {\n "writer": {\n "output": "file",\n "filename": "/tpdata/caddy/logs/error.log"\n },\n "level": "ERROR"\n }\n }\n },\n "storage": {\n "module": "file_system",\n "root": "/tpdata/cert/"\n },\n "apps": {\n "http": {\n "http_port": 80,\n "servers": {\n "srv0": {\n "listen": [\n ":80"\n ],\n "routes": [\n {\n "match": [\n {\n "host": [\n "${domain}"\n ]\n }\n ],\n "handle": [\n {\n "handler": "static_response",\n "headers": {\n "Location": [\n "https://{http.request.host}:8863{http.request.uri}"\n ]\n },\n "status_code": 301\n }\n ]\n }\n ]\n },\n "srv1": {\n "listen": [\n ":8863"\n ],\n "routes": [\n {\n "handle": [\n {\n "handler": "subroute",\n "routes": [\n {\n "match": [\n {\n "host": [\n "${domain}"\n ]\n }\n ],\n "handle": [\n {\n "handler": "file_server",\n "root": "/tpdata/web/",\n "index_names": [\n "index.html",\n "index.htm"\n ]\n }\n ],\n "terminal": true\n }\n ]\n }\n ]\n }\n ],\n "tls_connection_policies": [\n {\n "match": {\n "sni": [\n "${domain}"\n ]\n }\n }\n ],\n "automatic_https": {\n "disable": true\n }\n }\n }\n },\n "tls": {\n "certificates": {\n "automate": [\n "${domain}"\n ]\n },\n "automation": {\n "policies": [\n {\n "issuers": [\n {\n "module": "acme",\n "email": ""\n }\n ]\n }\n ]\n }\n }\n }\n}\n')])])]),n("p",[t._v("参数解释")]),t._v(" "),n("ul",[n("li",[n("code",[t._v("${domain}")]),t._v(":你的域名")])]),t._v(" "),n("ol",{attrs:{start:"2"}},[n("li",[t._v("手动设置自定义证书")])]),t._v(" "),n("div",{staticClass:"language- extra-class"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v('{\n "admin": {\n "disabled": true\n },\n "logging": {\n "logs": {\n "default": {\n "writer": {\n "output": "file",\n "filename": "/tpdata/caddy/logs/error.log"\n },\n "level": "ERROR"\n }\n }\n },\n "storage": {\n "module": "file_system",\n "root": "/tpdata/cert/"\n },\n "apps": {\n "http": {\n "http_port": 80,\n "servers": {\n "srv0": {\n "listen": [\n ":80"\n ],\n "routes": [\n {\n "match": [\n {\n "host": [\n "${domain}"\n ]\n }\n ],\n "handle": [\n {\n "handler": "static_response",\n "headers": {\n "Location": [\n "https://{http.request.host}:8863{http.request.uri}"\n ]\n },\n "status_code": 301\n }\n ]\n }\n ]\n },\n "srv1": {\n "listen": [\n ":8863"\n ],\n "routes": [\n {\n "handle": [\n {\n "handler": "subroute",\n "routes": [\n {\n "match": [\n {\n "host": [\n "${domain}"\n ]\n }\n ],\n "handle": [\n {\n "handler": "file_server",\n "root": "/tpdata/web/",\n "index_names": [\n "index.html",\n "index.htm"\n ]\n }\n ],\n "terminal": true\n }\n ]\n }\n ]\n }\n ],\n "tls_connection_policies": [\n {\n "match": {\n "sni": [\n "${domain}"\n ]\n }\n }\n ],\n "automatic_https": {\n "disable": true\n }\n }\n }\n },\n "tls": {\n "certificates": {\n "automate": [\n "${domain}"\n ],\n "load_files": [\n {\n "certificate": "/tpdata/cert/certificates/acme-v02.api.letsencrypt.org-directory/${domain}/${domain}.crt",\n "key": "/tpdata/cert/certificates/acme-v02.api.letsencrypt.org-directory/${domain}/${domain}.key"\n }\n ]\n },\n "automation": {\n "policies": [\n {\n "issuers": [\n {\n "module": "acme",\n "email": ""\n }\n ]\n }\n ]\n }\n }\n }\n}\n')])])]),n("p",[t._v("注意:需要将证书文件上传至证书文件夹:"),n("code",[t._v("/tpdata/cert/")]),t._v(",证书文件名称格式为"),n("code",[t._v("${domian}.crt")]),t._v("和"),n("code",[t._v("${domian}.key")]),t._v("。")]),t._v(" "),n("p",[t._v("参数解释")]),t._v(" "),n("ul",[n("li",[n("code",[t._v("${domain}")]),t._v(":你的域名")])]),t._v(" "),n("h3",{attrs:{id:"新建nginx配置文件"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#新建nginx配置文件"}},[t._v("#")]),t._v(" 新建Nginx配置文件")]),t._v(" "),n("p",[t._v("文件路径:"),n("code",[t._v("/tpdata/trojan-panel-ui/nginx/default.conf")])]),t._v(" "),n("ol",[n("li",[t._v("使用 https")])]),t._v(" "),n("div",{staticClass:"language- extra-class"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v("server {\n listen 8888 ssl;\n server_name localhost;\n #强制ssl\n ssl on;\n ssl_certificate /tpdata/cert/${domain}.crt;\n ssl_certificate_key /tpdata/cert/${domain}.key;\n #缓存有效期\n ssl_session_timeout 5m;\n #安全链接可选的加密协议\n ssl_protocols TLSv1.3;\n #加密算法\n ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;\n #使用服务器端的首选算法\n ssl_prefer_server_ciphers on;\n #access_log /var/log/nginx/host.access.log main;\n location / {\n root /tpdata/trojan-panel-ui/;\n index index.html index.htm;\n }\n location /api {\n proxy_pass http://127.0.0.1:8081;\n }\n #error_page 404 /404.html;\n #497 http->https\n error_page 497 https://\\$host:8888\\$request_uri;\n # redirect server error pages to the static page /50x.html\n #\n error_page 500 502 503 504 /50x.html;\n location = /50x.html {\n root /usr/share/nginx/html;\n }\n}\n")])])]),n("p",[t._v("参数解释")]),t._v(" "),n("ul",[n("li",[n("code",[t._v("${domain}")]),t._v(":你的域名")])]),t._v(" "),n("ol",{attrs:{start:"2"}},[n("li",[t._v("使用 http")])]),t._v(" "),n("div",{staticClass:"language- extra-class"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v("server {\n listen 8888;\n server_name localhost;\n location / {\n root /tpdata/trojan-panel-ui/;\n index index.html index.htm;\n }\n error_page 497 http://\\$host:8888\\$request_uri;\n error_page 500 502 503 504 /50x.html;\n location = /50x.html {\n root /usr/share/nginx/html;\n }\n}\n")])])]),n("h2",{attrs:{id:"配置文件"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#配置文件"}},[t._v("#")]),t._v(" 配置文件")]),t._v(" "),n("div",{staticClass:"language-yml extra-class"},[n("pre",{pre:!0,attrs:{class:"language-yml"}},[n("code",[n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("version")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'3'")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("services")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("trojan-panel-caddy")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("image")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" caddy"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("2.6.2\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("container_name")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" trojan"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("panel"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("caddy\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("restart")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" always\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("network_mode")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" host\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("volumes")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/caddy/config.json:/tpdata/caddy/config.json"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/cert/:/tpdata/cert/certificates/acme-v02.api.letsencrypt.org-directory/${domain}/"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/web/:/tpdata/web/"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/caddy/logs/:/tpdata/caddy/logs/"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("command")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" caddy run "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("config /tpdata/caddy/config.json\n\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("trojan-panel-mariadb")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("image")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" mariadb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("10.7.3\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("container_name")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" trojan"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("panel"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("mariadb\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("restart")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" always\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("network_mode")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" host\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("environment")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("MYSQL_DATABASE")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" trojan_panel_db\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("MYSQL_ROOT_PASSWORD")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"${mariadb_pas}"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("TZ")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Asia/Shanghai\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("command")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("port=9507\n\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("trojan-panel-redis")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("image")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" redis"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("6.2.7\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("container_name")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" trojan"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("panel"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("redis\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("restart")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" always\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("network_mode")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" host\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("command")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" redis"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("server "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("requirepass $"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("redis_pass"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("port 6378\n\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("trojan-panel")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("image")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" jonssonyan/trojan"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("panel\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("container_name")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" trojan"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("panel\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("restart")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" always\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("network_mode")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" host\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("volumes")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/web/:/tpdata/trojan-panel/webfile/"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/trojan-panel/logs/:/tpdata/trojan-panel/logs/"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/trojan-panel/export:/tpdata/trojan-panel/export"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/trojan-panel/template:/tpdata/trojan-panel/template"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/etc/localtime:/etc/localtime"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("environment")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"GIN_MODE=release"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mariadb_ip=127.0.0.1"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mariadb_port=9507"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mariadb_user=root"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mariadb_pas=${mariadb_pas}"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"redis_host=127.0.0.1"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"redis_port=6378"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"redis_pass=${redis_pass}"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"server_port=8081"')]),t._v("\n\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("trojan-panel-ui")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("image")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" jonssonyan/trojan"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("panel"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("ui\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("container_name")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" trojan"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("panel"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("ui\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("restart")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" always\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("network_mode")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" host\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("volumes")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/trojan-panel-ui/nginx/default.conf:/etc/nginx/conf.d/default.conf"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/cert/:/tpdata/cert/"')]),t._v("\n\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("trojan-panel-core")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("image")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" jonssonyan/trojan"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("panel"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("core\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("container_name")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" trojan"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("panel"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("core\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("restart")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" always\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("network_mode")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" host\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("volumes")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/trojan-panel-core/bin/xray/config:/tpdata/trojan-panel-core/bin/xray/config"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/trojan-panel-core/bin/trojango/config:/tpdata/trojan-panel-core/bin/trojango/config"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/trojan-panel-core/bin/hysteria/config:/tpdata/trojan-panel-core/bin/hysteria/config"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/trojan-panel-core/bin/naiveproxy/config:/tpdata/trojan-panel-core/bin/naiveproxy/config"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/trojan-panel-core/logs/:/tpdata/trojan-panel-core/logs/"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/trojan-panel-core/config/sqlite/:/tpdata/trojan-panel-core/config/sqlite/"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/cert/:/tpdata/cert/"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/web/:/tpdata/web/"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/etc/localtime:/etc/localtime"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("environment")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"GIN_MODE=release"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mariadb_ip=127.0.0.1"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mariadb_port=9507"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mariadb_user=root"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mariadb_pas=${mariadb_pas}"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"database=trojan_panel_db"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"account-table=account"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"redis_host=127.0.0.1"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"redis_port=6378"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"redis_pass=${redis_pass}"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"crt_path=/tpdata/cert/${domain}.crt"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"key_path=/tpdata/cert/${domain}.key"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"grpc_port=8100"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"server_port=8082"')]),t._v("\n")])])]),n("p",[t._v("参数解释:")]),t._v(" "),n("ul",[n("li",[n("code",[t._v("${mariadb_pas}")]),t._v(":MariaDB 数据库密码")]),t._v(" "),n("li",[n("code",[t._v("${redis_pass}")]),t._v(":Redis 的密码")]),t._v(" "),n("li",[n("code",[t._v("${domain}")]),t._v(":你的域名")])]),t._v(" "),n("h2",{attrs:{id:"部署"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#部署"}},[t._v("#")]),t._v(" 部署")]),t._v(" "),n("p",[t._v("在Docker Compose配置文件同一级目录下执行")]),t._v(" "),n("div",{staticClass:"language-shell extra-class"},[n("pre",{pre:!0,attrs:{class:"language-shell"}},[n("code",[n("span",{pre:!0,attrs:{class:"token function"}},[t._v("docker")]),t._v(" compose up\n")])])])])}),[],!1,null,null,null);n.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{287:function(t,n,a){"use strict";a.r(n);var s=a(7),e=Object(s.a)({},(function(){var t=this,n=t._self._c;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"docker-compose方式安装"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#docker-compose方式安装"}},[t._v("#")]),t._v(" Docker Compose方式安装")]),t._v(" "),n("h2",{attrs:{id:"准备"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#准备"}},[t._v("#")]),t._v(" 准备")]),t._v(" "),n("h3",{attrs:{id:"设置伪装网站"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#设置伪装网站"}},[t._v("#")]),t._v(" 设置伪装网站")]),t._v(" "),n("p",[t._v("将静态网站文件上传至伪装网站文件夹:"),n("code",[t._v("/tpdata/web/")])]),t._v(" "),n("h3",{attrs:{id:"新建caddy配置文件"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#新建caddy配置文件"}},[t._v("#")]),t._v(" 新建Caddy配置文件")]),t._v(" "),n("p",[t._v("文件路径:"),n("code",[t._v("/tpdata/caddy/config.json")])]),t._v(" "),n("p",[t._v("Caddy配置举例")]),t._v(" "),n("ol",[n("li",[t._v("acme自动申请和续签")])]),t._v(" "),n("div",{staticClass:"language- extra-class"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v('{\n "admin": {\n "disabled": true\n },\n "logging": {\n "logs": {\n "default": {\n "writer": {\n "output": "file",\n "filename": "/tpdata/caddy/logs/error.log"\n },\n "level": "ERROR"\n }\n }\n },\n "storage": {\n "module": "file_system",\n "root": "/tpdata/cert/"\n },\n "apps": {\n "http": {\n "http_port": 80,\n "servers": {\n "srv0": {\n "listen": [\n ":80"\n ],\n "routes": [\n {\n "match": [\n {\n "host": [\n "${domain}"\n ]\n }\n ],\n "handle": [\n {\n "handler": "static_response",\n "headers": {\n "Location": [\n "https://{http.request.host}:8863{http.request.uri}"\n ]\n },\n "status_code": 301\n }\n ]\n }\n ]\n },\n "srv1": {\n "listen": [\n ":8863"\n ],\n "routes": [\n {\n "handle": [\n {\n "handler": "subroute",\n "routes": [\n {\n "match": [\n {\n "host": [\n "${domain}"\n ]\n }\n ],\n "handle": [\n {\n "handler": "file_server",\n "root": "/tpdata/web/",\n "index_names": [\n "index.html",\n "index.htm"\n ]\n }\n ],\n "terminal": true\n }\n ]\n }\n ]\n }\n ],\n "tls_connection_policies": [\n {\n "match": {\n "sni": [\n "${domain}"\n ]\n }\n }\n ],\n "automatic_https": {\n "disable": true\n }\n }\n }\n },\n "tls": {\n "certificates": {\n "automate": [\n "${domain}"\n ]\n },\n "automation": {\n "policies": [\n {\n "issuers": [\n {\n "module": "acme",\n "email": ""\n }\n ]\n }\n ]\n }\n }\n }\n}\n')])])]),n("p",[t._v("参数解释")]),t._v(" "),n("ul",[n("li",[n("code",[t._v("${domain}")]),t._v(":你的域名")])]),t._v(" "),n("ol",{attrs:{start:"2"}},[n("li",[t._v("手动设置自定义证书")])]),t._v(" "),n("div",{staticClass:"language- extra-class"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v('{\n "admin": {\n "disabled": true\n },\n "logging": {\n "logs": {\n "default": {\n "writer": {\n "output": "file",\n "filename": "/tpdata/caddy/logs/error.log"\n },\n "level": "ERROR"\n }\n }\n },\n "storage": {\n "module": "file_system",\n "root": "/tpdata/cert/"\n },\n "apps": {\n "http": {\n "http_port": 80,\n "servers": {\n "srv0": {\n "listen": [\n ":80"\n ],\n "routes": [\n {\n "match": [\n {\n "host": [\n "${domain}"\n ]\n }\n ],\n "handle": [\n {\n "handler": "static_response",\n "headers": {\n "Location": [\n "https://{http.request.host}:8863{http.request.uri}"\n ]\n },\n "status_code": 301\n }\n ]\n }\n ]\n },\n "srv1": {\n "listen": [\n ":8863"\n ],\n "routes": [\n {\n "handle": [\n {\n "handler": "subroute",\n "routes": [\n {\n "match": [\n {\n "host": [\n "${domain}"\n ]\n }\n ],\n "handle": [\n {\n "handler": "file_server",\n "root": "/tpdata/web/",\n "index_names": [\n "index.html",\n "index.htm"\n ]\n }\n ],\n "terminal": true\n }\n ]\n }\n ]\n }\n ],\n "tls_connection_policies": [\n {\n "match": {\n "sni": [\n "${domain}"\n ]\n }\n }\n ],\n "automatic_https": {\n "disable": true\n }\n }\n }\n },\n "tls": {\n "certificates": {\n "automate": [\n "${domain}"\n ],\n "load_files": [\n {\n "certificate": "/tpdata/cert/certificates/acme-v02.api.letsencrypt.org-directory/${domain}/${domain}.crt",\n "key": "/tpdata/cert/certificates/acme-v02.api.letsencrypt.org-directory/${domain}/${domain}.key"\n }\n ]\n },\n "automation": {\n "policies": [\n {\n "issuers": [\n {\n "module": "acme",\n "email": ""\n }\n ]\n }\n ]\n }\n }\n }\n}\n')])])]),n("p",[t._v("注意:需要将证书文件上传至证书文件夹:"),n("code",[t._v("/tpdata/cert/")]),t._v(",证书文件名称格式为"),n("code",[t._v("${domian}.crt")]),t._v("和"),n("code",[t._v("${domian}.key")]),t._v("。")]),t._v(" "),n("p",[t._v("参数解释")]),t._v(" "),n("ul",[n("li",[n("code",[t._v("${domain}")]),t._v(":你的域名")])]),t._v(" "),n("h3",{attrs:{id:"新建nginx配置文件"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#新建nginx配置文件"}},[t._v("#")]),t._v(" 新建Nginx配置文件")]),t._v(" "),n("p",[t._v("文件路径:"),n("code",[t._v("/tpdata/trojan-panel-ui/nginx/default.conf")])]),t._v(" "),n("ol",[n("li",[t._v("使用 https")])]),t._v(" "),n("div",{staticClass:"language- extra-class"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v("server {\n listen 8888 ssl;\n server_name localhost;\n #强制ssl\n ssl on;\n ssl_certificate /tpdata/cert/${domain}.crt;\n ssl_certificate_key /tpdata/cert/${domain}.key;\n #缓存有效期\n ssl_session_timeout 5m;\n #安全链接可选的加密协议\n ssl_protocols TLSv1.3;\n #加密算法\n ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;\n #使用服务器端的首选算法\n ssl_prefer_server_ciphers on;\n #access_log /var/log/nginx/host.access.log main;\n location / {\n root /tpdata/trojan-panel-ui/;\n index index.html index.htm;\n }\n location /api {\n proxy_pass http://127.0.0.1:8081;\n }\n #error_page 404 /404.html;\n #497 http->https\n error_page 497 https://\\$host:8888\\$request_uri;\n # redirect server error pages to the static page /50x.html\n #\n error_page 500 502 503 504 /50x.html;\n location = /50x.html {\n root /usr/share/nginx/html;\n }\n}\n")])])]),n("p",[t._v("参数解释")]),t._v(" "),n("ul",[n("li",[n("code",[t._v("${domain}")]),t._v(":你的域名")])]),t._v(" "),n("ol",{attrs:{start:"2"}},[n("li",[t._v("使用 http")])]),t._v(" "),n("div",{staticClass:"language- extra-class"},[n("pre",{pre:!0,attrs:{class:"language-text"}},[n("code",[t._v("server {\n listen 8888;\n server_name localhost;\n location / {\n root /tpdata/trojan-panel-ui/;\n index index.html index.htm;\n }\n error_page 497 http://\\$host:8888\\$request_uri;\n error_page 500 502 503 504 /50x.html;\n location = /50x.html {\n root /usr/share/nginx/html;\n }\n}\n")])])]),n("h2",{attrs:{id:"配置文件"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#配置文件"}},[t._v("#")]),t._v(" 配置文件")]),t._v(" "),n("div",{staticClass:"language-yml extra-class"},[n("pre",{pre:!0,attrs:{class:"language-yml"}},[n("code",[n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("version")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v("'3'")]),t._v("\n\n"),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("services")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("trojan-panel-caddy")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("image")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" caddy"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("2.6.2\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("container_name")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" trojan"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("panel"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("caddy\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("restart")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" always\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("network_mode")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" host\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("volumes")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/caddy/config.json:/tpdata/caddy/config.json"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/cert/:/tpdata/cert/certificates/acme-v02.api.letsencrypt.org-directory/${domain}/"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/web/:/tpdata/web/"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/caddy/logs/:/tpdata/caddy/logs/"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("command")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" caddy run "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("config /tpdata/caddy/config.json\n\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("trojan-panel-mariadb")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("image")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" mariadb"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("10.7.3\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("container_name")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" trojan"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("panel"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("mariadb\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("restart")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" always\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("network_mode")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" host\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("environment")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("MYSQL_DATABASE")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" trojan_panel_db\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("MYSQL_ROOT_PASSWORD")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"${mariadb_pas}"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("TZ")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" Asia/Shanghai\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("command")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("port=9507\n\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("trojan-panel-redis")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("image")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" redis"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("6.2.7\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("container_name")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" trojan"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("panel"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("redis\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("restart")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" always\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("network_mode")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" host\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("command")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" redis"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("server "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("requirepass $"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("redis_pass"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("port 6378\n\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("trojan-panel")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("image")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" jonssonyan/trojan"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("panel\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("container_name")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" trojan"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("panel\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("restart")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" always\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("network_mode")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" host\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("volumes")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/web/:/tpdata/trojan-panel/webfile/"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/trojan-panel/logs/:/tpdata/trojan-panel/logs/"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/trojan-panel/export:/tpdata/trojan-panel/export"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/trojan-panel/template:/tpdata/trojan-panel/template"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/etc/localtime:/etc/localtime"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("environment")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"GIN_MODE=release"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mariadb_ip=127.0.0.1"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mariadb_port=9507"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mariadb_user=root"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mariadb_pas=${mariadb_pas}"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"redis_host=127.0.0.1"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"redis_port=6378"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"redis_pass=${redis_pass}"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"server_port=8081"')]),t._v("\n\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("trojan-panel-ui")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("image")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" jonssonyan/trojan"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("panel"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("ui\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("container_name")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" trojan"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("panel"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("ui\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("restart")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" always\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("network_mode")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" host\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("volumes")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/trojan-panel-ui/nginx/default.conf:/etc/nginx/conf.d/default.conf"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/cert/:/tpdata/cert/"')]),t._v("\n\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("trojan-panel-core")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("image")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" jonssonyan/trojan"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("panel"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("core\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("container_name")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" trojan"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("panel"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v("core\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("restart")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" always\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("network_mode")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" host\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("volumes")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/trojan-panel-core/bin/xray/config:/tpdata/trojan-panel-core/bin/xray/config"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/trojan-panel-core/bin/trojango/config:/tpdata/trojan-panel-core/bin/trojango/config"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/trojan-panel-core/bin/hysteria/config:/tpdata/trojan-panel-core/bin/hysteria/config"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/trojan-panel-core/bin/naiveproxy/config:/tpdata/trojan-panel-core/bin/naiveproxy/config"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/trojan-panel-core/logs/:/tpdata/trojan-panel-core/logs/"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/trojan-panel-core/config/sqlite/:/tpdata/trojan-panel-core/config/sqlite/"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/cert/:/tpdata/cert/"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/tpdata/web/:/tpdata/web/"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/etc/localtime:/etc/localtime"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token key atrule"}},[t._v("environment")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"GIN_MODE=release"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mariadb_ip=127.0.0.1"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mariadb_port=9507"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mariadb_user=root"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"mariadb_pas=${mariadb_pas}"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"database=trojan_panel_db"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"account-table=account"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"redis_host=127.0.0.1"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"redis_port=6378"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"redis_pass=${redis_pass}"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"crt_path=/tpdata/cert/${domain}.crt"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"key_path=/tpdata/cert/${domain}.key"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"grpc_port=8100"')]),t._v("\n "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("-")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token string"}},[t._v('"server_port=8082"')]),t._v("\n")])])]),n("p",[t._v("参数解释:")]),t._v(" "),n("ul",[n("li",[n("code",[t._v("${mariadb_pas}")]),t._v(":MariaDB 数据库密码")]),t._v(" "),n("li",[n("code",[t._v("${redis_pass}")]),t._v(":Redis 的密码")]),t._v(" "),n("li",[n("code",[t._v("${domain}")]),t._v(":你的域名")])]),t._v(" "),n("h2",{attrs:{id:"部署"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#部署"}},[t._v("#")]),t._v(" 部署")]),t._v(" "),n("p",[t._v("在Docker Compose配置文件同一级目录下执行")]),t._v(" "),n("div",{staticClass:"language-shell extra-class"},[n("pre",{pre:!0,attrs:{class:"language-shell"}},[n("code",[n("span",{pre:!0,attrs:{class:"token function"}},[t._v("docker")]),t._v(" compose up\n")])])])])}),[],!1,null,null,null);n.default=e.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/13.217d4dad.js b/docs/assets/js/13.217d4dad.js deleted file mode 100644 index 508b458..0000000 --- a/docs/assets/js/13.217d4dad.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{287:function(t,v,_){"use strict";_.r(v);var a=_(7),s=Object(a.a)({},(function(){var t=this,v=t._self._c;return v("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[v("h1",{attrs:{id:"自动安装教程"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#自动安装教程"}},[t._v("#")]),t._v(" 自动安装教程")]),t._v(" "),v("h2",{attrs:{id:"准备"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#准备"}},[t._v("#")]),t._v(" 准备")]),t._v(" "),v("h4",{attrs:{id:"系统要求"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#系统要求"}},[t._v("#")]),t._v(" 系统要求")]),t._v(" "),v("p",[t._v("系统支持: CentOS 7+/Ubuntu 18+/Debian 10+")]),t._v(" "),v("p",[t._v("处理器架构: "),v("code",[t._v("linux/386")]),t._v(" "),v("code",[t._v("linux/amd64")]),t._v(" "),v("code",[t._v("liunx/v6")]),t._v(" "),v("code",[t._v("linux/v7")]),t._v(" "),v("code",[t._v("linux/arm64")]),t._v(" "),v("code",[t._v("linux/ppc64le")]),t._v(" "),v("code",[t._v("linux/s390x")])]),t._v(" "),v("p",[t._v("内存要求: ≥1G")]),t._v(" "),v("h4",{attrs:{id:"相关端口"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#相关端口"}},[t._v("#")]),t._v(" 相关端口")]),t._v(" "),v("table",[v("thead",[v("tr",[v("th",[t._v("端口")]),t._v(" "),v("th",[t._v("描述")])])]),t._v(" "),v("tbody",[v("tr",[v("td",[t._v("80")]),t._v(" "),v("td",[t._v("伪装Web")])]),t._v(" "),v("tr",[v("td",[t._v("8863")]),t._v(" "),v("td",[t._v("Caddy/Nginx转发")])]),t._v(" "),v("tr",[v("td",[t._v("8888")]),t._v(" "),v("td",[t._v("Trojan Panel前端")])]),t._v(" "),v("tr",[v("td",[t._v("8081")]),t._v(" "),v("td",[t._v("Trojan Panel后端")])]),t._v(" "),v("tr",[v("td",[t._v("8082")]),t._v(" "),v("td",[t._v("Trojan Panel Core")])]),t._v(" "),v("tr",[v("td",[t._v("9507")]),t._v(" "),v("td",[t._v("MariaDB")])]),t._v(" "),v("tr",[v("td",[t._v("6378")]),t._v(" "),v("td",[t._v("Redis")])]),t._v(" "),v("tr",[v("td",[t._v("8100")]),t._v(" "),v("td",[t._v("Trojan Panel Core API端口")])])])]),t._v(" "),v("p",[t._v("Trojan Panel服务器需开放以下端口: "),v("code",[t._v("80")]),t._v(" "),v("code",[t._v("8863")]),t._v(" "),v("code",[t._v("8888")]),t._v(",Trojan Panel Core服务器需要开放:"),v("code",[t._v("8100")]),t._v("。")]),t._v(" "),v("p",[t._v("如果使用的服务器控制面板有防火墙设置需要自己在控制面板自行开放以上端口。")]),t._v(" "),v("p",[t._v("如果没有没有远程节点,尽量不要开放"),v("code",[t._v("9507")]),t._v("和"),v("code",[t._v("6378")]),t._v("端口。")]),t._v(" "),v("h4",{attrs:{id:"注意"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#注意"}},[t._v("#")]),t._v(" 注意")]),t._v(" "),v("ol",[v("li",[v("p",[t._v("控制面板和节点都推荐部署在"),v("strong",[t._v("国外服务器")]),t._v("上,否则会由于网络问题使用一键安装脚本会因为远程下载文件超时报错。")])]),t._v(" "),v("li",[v("p",[t._v("提前准备一个解析到服务的"),v("strong",[t._v("二级域名")]),t._v("。")])]),t._v(" "),v("li",[v("p",[v("strong",[t._v("数据库和Redis的密码尽量设置复杂")]),t._v("(数字+大小写字母+特殊字符),否则假如开放了对应端口,则存在被撞库的安全风险。")])]),t._v(" "),v("li",[v("p",[t._v("建议的安装顺序: "),v("RouterLink",{attrs:{to:"/tutorial/performance-tuning.html#网络加速"}},[t._v("安装网络加速")]),t._v(" > 安装Trojan Panel > 安装Trojan Panel Core")],1),t._v(" "),v("p",[t._v("建议在脚本运行中需要手动输入的部分,如果没有特殊需求或者不知道这个选项是干什么的,**除数据库密码和Redis密码自定义以外,其他默认即可\n**。")])]),t._v(" "),v("li",[v("p",[t._v("如果是远程多节点的情况,"),v("strong",[t._v("节点服务器只需要安装一次Trojan Panel Core")]),t._v(",在面板界面才可以操作远程服务器从而远程自动化管理节点。")])]),t._v(" "),v("li",[v("p",[t._v("如果使用Caddy自动申请/续签证书,"),v("strong",[t._v("需要开放Caddy端口(默认80)并且保证Caddy端口没有被其他进程占用")]),t._v("。")])])]),t._v(" "),v("h2",{attrs:{id:"一键安装脚本"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#一键安装脚本"}},[t._v("#")]),t._v(" 一键安装脚本")]),t._v(" "),v("ol",[v("li",[t._v("联机版(推荐)")])]),t._v(" "),v("div",{staticClass:"language-shell extra-class"},[v("pre",{pre:!0,attrs:{class:"language-shell"}},[v("code",[v("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("source")]),t._v(" "),v("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),v("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),v("span",{pre:!0,attrs:{class:"token function"}},[t._v("curl")]),t._v(" "),v("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-L")]),t._v(" https://github.com/trojanpanel/install-script/raw/main/install_script.sh"),v("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),v("ol",{attrs:{start:"2"}},[v("li",[t._v("单机版")])]),t._v(" "),v("div",{staticClass:"language-shell extra-class"},[v("pre",{pre:!0,attrs:{class:"language-shell"}},[v("code",[v("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("source")]),t._v(" "),v("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),v("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),v("span",{pre:!0,attrs:{class:"token function"}},[t._v("curl")]),t._v(" "),v("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-L")]),t._v(" https://github.com/trojanpanel/install-script/raw/main/install_script_standalone.sh"),v("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])]),v("ol",{attrs:{start:"3"}},[v("li",[v("a",{attrs:{href:"https://github.com/trojanpanel/install-script/tree/main/archive",target:"_blank",rel:"noopener noreferrer"}},[t._v("安装旧版"),v("OutboundLink")],1)])]),t._v(" "),v("h2",{attrs:{id:"安装trojan-panel"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#安装trojan-panel"}},[t._v("#")]),t._v(" 安装Trojan Panel")]),t._v(" "),v("ol",[v("li",[t._v("设置伪装Web")])]),t._v(" "),v("p",[t._v("推荐使用Caddy 2,可以作为伪装Web也可以自动申请/续签证书。")]),t._v(" "),v("ol",{attrs:{start:"2"}},[v("li",[t._v("请输入Caddy的端口(默认:80)")])]),t._v(" "),v("p",[t._v("默认即可,除非80端口被墙或者被其他进程占用。")]),t._v(" "),v("ol",{attrs:{start:"3"}},[v("li",[t._v("请输入Caddy的转发端口(用于申请证书,默认:8863)")])]),t._v(" "),v("p",[t._v("默认即可,除非8863端口被墙。")]),t._v(" "),v("ol",{attrs:{start:"4"}},[v("li",[t._v("请输入你的域名(必填)")])]),t._v(" "),v("p",[t._v("输入你提前解析到本机的域名。")]),t._v(" "),v("ol",{attrs:{start:"5"}},[v("li",[t._v("请输入你的邮箱(可选)")])]),t._v(" "),v("p",[t._v("默认即可,或输入一个合法的邮箱地址。")]),t._v(" "),v("ol",{attrs:{start:"6"}},[v("li",[t._v("请选择设置证书的方式?(1/自动申请和续签证书 2/手动设置证书路径 默认:1/自动申请和续签证书)")])]),t._v(" "),v("p",[t._v("推荐自动申请和续签证书,如果自己有证书或者自动申请和续签证书失败可以选择手动设置证书路径(24小时内申请2次以上可能会导致自动申请证书失败,如果搭建频繁,建议选择手动设置证书路径)。")]),t._v(" "),v("ol",{attrs:{start:"6"}},[v("li",[t._v("请选择申请证书的方式(1/acme 2/zerossl 默认:1/acme)")])]),t._v(" "),v("p",[t._v("默认即可,选择自动申请证书的方式。")]),t._v(" "),v("ol",{attrs:{start:"7"}},[v("li",[t._v("请输入证书的.crt文件路径(必填)")])]),t._v(" "),v("p",[t._v("使用.crt文件的绝对路径,例如:"),v("code",[t._v("/root/www.google.com.crt")])]),t._v(" "),v("ol",{attrs:{start:"8"}},[v("li",[t._v("请输入证书的.key文件路径(必填)")])]),t._v(" "),v("p",[t._v("使用.key文件的绝对路径,例如:"),v("code",[t._v("/root/www.google.com.key")])]),t._v(" "),v("ol",{attrs:{start:"9"}},[v("li",[t._v("请输入数据库的用户名(默认:root)")])]),t._v(" "),v("p",[t._v("默认即可,除非有自定义数据库用户的需求。")]),t._v(" "),v("ol",{attrs:{start:"10"}},[v("li",[t._v("请输入数据库的密码(必填)")])]),t._v(" "),v("p",[t._v("输入一个较为复杂且你能记得住的密码。")]),t._v(" "),v("ol",{attrs:{start:"11"}},[v("li",[t._v("请输入Redis的密码(必填)")])]),t._v(" "),v("p",[t._v("输入一个较为复杂且你能记得住的密码。")]),t._v(" "),v("ol",{attrs:{start:"12"}},[v("li",[t._v("请输入数据库的IP地址(默认:本地数据库)")])]),t._v(" "),v("p",[t._v("如果数据库安装在本机则默认即可,如果数据库安装在其他服务器这里填远程服务器的IP地址。")]),t._v(" "),v("ol",{attrs:{start:"13"}},[v("li",[t._v("请输入数据库的端口(默认:本地数据库端口)")])]),t._v(" "),v("p",[t._v("如果数据库安装在本机则默认即可,如果数据库安装在其他服务器这里填远程服务器的数据库端口。")]),t._v(" "),v("ol",{attrs:{start:"14"}},[v("li",[t._v("请输入数据库的用户名(默认:root)")])]),t._v(" "),v("p",[t._v("默认即可,除非有自定义数据库用户的需求。")]),t._v(" "),v("ol",{attrs:{start:"15"}},[v("li",[t._v("请输入数据库的密码(必填)")])]),t._v(" "),v("p",[t._v("如果数据库安装在本机则填写本机数据库密码,如果数据库安装在其他服务器这里填远程服务器的数据库密码。")]),t._v(" "),v("ol",{attrs:{start:"16"}},[v("li",[t._v("请输入Redis的IP地址(默认:本机Redis)")])]),t._v(" "),v("p",[t._v("如果Redis安装在本机则默认即可,如果Redis安装在其他服务器这里填远程服务器的IP地址。")]),t._v(" "),v("ol",{attrs:{start:"17"}},[v("li",[t._v("请输入Redis的端口(默认:本机Redis端口)")])]),t._v(" "),v("p",[t._v("如果Redis安装在本机则默认即可,如果Redis安装在其他服务器这里填远程服务器的Redis端口。")]),t._v(" "),v("ol",{attrs:{start:"18"}},[v("li",[t._v("请输入Redis的密码(必填)")])]),t._v(" "),v("p",[t._v("如果Redis安装在本机则填写本机Redis密码,如果Redis安装在其他服务器这里填远程服务器的Redis密码。")]),t._v(" "),v("ol",{attrs:{start:"19"}},[v("li",[t._v("请输入Trojan Panel前端端口(默认:8888)")])]),t._v(" "),v("p",[t._v("默认即可,除非有自定义Trojan Panel前端端口的需求。")]),t._v(" "),v("ol",{attrs:{start:"20"}},[v("li",[t._v("请选择Trojan Panel前端是否开启https?(0/关闭 1/开启 默认:1/开启)")])]),t._v(" "),v("p",[t._v("默认即可,除非有自定义择Trojan Panel前端是否开启https的需求。如果开启https,则管理面板地址为"),v("code",[t._v("https://你的域名:端口")]),t._v("\n,如果未开启https,则管理面板地址为"),v("code",[t._v("http://你的域名:端口")]),t._v("。")]),t._v(" "),v("p",[v("strong",[t._v("提示")])]),t._v(" "),v("ol",[v("li",[v("p",[t._v("安装结束后,访问"),v("strong",[t._v("你的域名")]),t._v("如果是一个静态网页,说明已经安装成功。")])]),t._v(" "),v("li",[v("p",[t._v("安装成功后,Trojan Panel管理面板地址: "),v("code",[t._v("你的域名:8888")]),t._v("\n系统管理员 默认用户名: "),v("code",[t._v("sysadmin")]),t._v(" 默认密码: "),v("code",[t._v("123456")]),t._v(" 请及时登陆管理面板修改密码。")])])]),t._v(" "),v("h2",{attrs:{id:"安装trojan-panel-core"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#安装trojan-panel-core"}},[t._v("#")]),t._v(" 安装Trojan Panel Core")]),t._v(" "),v("ol",[v("li",[t._v("请输入数据库的IP地址(默认:本地数据库)")])]),t._v(" "),v("p",[t._v("如果数据库安装在本机则默认即可,如果数据库安装在其他服务器这里填远程服务器的IP地址。")]),t._v(" "),v("ol",{attrs:{start:"2"}},[v("li",[t._v("请输入数据库的端口(默认:本地数据库端口)")])]),t._v(" "),v("p",[t._v("如果数据库安装在本机则默认即可,如果数据库安装在其他服务器这里填远程服务器的数据库端口。")]),t._v(" "),v("ol",{attrs:{start:"3"}},[v("li",[t._v("请输入数据库的用户名(默认:root)")])]),t._v(" "),v("p",[t._v("默认即可,除非有自定义数据库用户的需求。")]),t._v(" "),v("ol",{attrs:{start:"4"}},[v("li",[t._v("请输入数据库的密码(必填)")])]),t._v(" "),v("p",[t._v("如果数据库安装在本机则填写本机数据库密码,如果数据库安装在其他服务器这里填远程服务器的数据库密码。")]),t._v(" "),v("ol",{attrs:{start:"5"}},[v("li",[t._v("请输入数据库名称(默认:trojan_panel_db)")])]),t._v(" "),v("p",[t._v("默认即可,除非有自定义数据库名称的需求。")]),t._v(" "),v("ol",{attrs:{start:"6"}},[v("li",[t._v("请输入数据库的用户表名称(默认:account)")])]),t._v(" "),v("p",[t._v("默认即可,除非有自定义数据库的用户表的需求。")]),t._v(" "),v("ol",{attrs:{start:"7"}},[v("li",[t._v("请输入Redis的IP地址(默认:本机Redis)")])]),t._v(" "),v("p",[t._v("如果Redis安装在本机则默认即可,如果Redis安装在其他服务器这里填远程服务器的IP地址。")]),t._v(" "),v("ol",{attrs:{start:"8"}},[v("li",[t._v("请输入Redis的端口(默认:本机Redis端口)")])]),t._v(" "),v("p",[t._v("如果Redis安装在本机则默认即可,如果Redis安装在其他服务器这里填远程服务器的Redis端口。")]),t._v(" "),v("ol",{attrs:{start:"9"}},[v("li",[t._v("请输入Redis的密码(必填)")])]),t._v(" "),v("p",[t._v("如果Redis安装在本机则填写本机Redis密码,如果Redis安装在其他服务器这里填远程服务器的Redis密码。")]),t._v(" "),v("ol",{attrs:{start:"10"}},[v("li",[t._v("请输入API的端口(默认:8100)")])]),t._v(" "),v("p",[t._v("默认即可,除非8100端口被墙。")])])}),[],!1,null,null,null);v.default=s.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/13.8fc7d6ee.js b/docs/assets/js/13.8fc7d6ee.js new file mode 100644 index 0000000..e9556cb --- /dev/null +++ b/docs/assets/js/13.8fc7d6ee.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[13],{285:function(t,_,v){"use strict";v.r(_);var a=v(7),s=Object(a.a)({},(function(){var t=this,_=t._self._c;return _("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[_("h1",{attrs:{id:"自动安装教程"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#自动安装教程"}},[t._v("#")]),t._v(" 自动安装教程")]),t._v(" "),_("h2",{attrs:{id:"准备"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#准备"}},[t._v("#")]),t._v(" 准备")]),t._v(" "),_("h4",{attrs:{id:"系统要求"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#系统要求"}},[t._v("#")]),t._v(" 系统要求")]),t._v(" "),_("p",[t._v("系统:: CentOS 7+ / Ubuntu 18+ / Debian 10+")]),t._v(" "),_("p",[t._v("CPU: linux/amd64 / linux/arm/v6 / linux/arm/v7 / linux/arm64 / linux/s390x / linux/ppc64le / linux/386")]),t._v(" "),_("p",[t._v("内存: ≥ 1G")]),t._v(" "),_("h4",{attrs:{id:"相关端口"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#相关端口"}},[t._v("#")]),t._v(" 相关端口")]),t._v(" "),_("table",[_("thead",[_("tr",[_("th",[t._v("端口")]),t._v(" "),_("th",[t._v("描述")])])]),t._v(" "),_("tbody",[_("tr",[_("td",[t._v("80")]),t._v(" "),_("td",[t._v("伪装Web")])]),t._v(" "),_("tr",[_("td",[t._v("8863")]),t._v(" "),_("td",[t._v("Caddy/Nginx转发")])]),t._v(" "),_("tr",[_("td",[t._v("8888")]),t._v(" "),_("td",[t._v("Trojan Panel前端")])]),t._v(" "),_("tr",[_("td",[t._v("8081")]),t._v(" "),_("td",[t._v("Trojan Panel后端")])]),t._v(" "),_("tr",[_("td",[t._v("8082")]),t._v(" "),_("td",[t._v("Trojan Panel Core")])]),t._v(" "),_("tr",[_("td",[t._v("8100")]),t._v(" "),_("td",[t._v("Trojan Panel Core API端口")])]),t._v(" "),_("tr",[_("td",[t._v("9507")]),t._v(" "),_("td",[t._v("MariaDB")])]),t._v(" "),_("tr",[_("td",[t._v("6378")]),t._v(" "),_("td",[t._v("Redis")])])])]),t._v(" "),_("p",[t._v("提示:")]),t._v(" "),_("ol",[_("li",[_("p",[t._v("如果使用的服务器控制面板有防火墙设置需要自己在控制面板自行开放以上端口。")])]),t._v(" "),_("li",[_("p",[t._v("如果没有没有远程节点,尽量关闭"),_("code",[t._v("9507")]),t._v("和"),_("code",[t._v("6378")]),t._v("端口。")])])]),t._v(" "),_("h4",{attrs:{id:"注意"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#注意"}},[t._v("#")]),t._v(" 注意")]),t._v(" "),_("ol",[_("li",[_("p",[t._v("控制面板和节点都推荐部署在"),_("strong",[t._v("国外服务器")]),t._v("上,否则会由于网络问题使用一键安装脚本会因为远程下载文件超时报错。")])]),t._v(" "),_("li",[_("p",[t._v("提前准备一个解析到服务的"),_("strong",[t._v("二级域名")]),t._v("。")])]),t._v(" "),_("li",[_("p",[t._v("数据库和Redis的密码"),_("strong",[t._v("尽量设置复杂")]),t._v("(数据库密码不支持部分特殊字符),否则存在被撞库的安全风险。")])]),t._v(" "),_("li",[_("p",[t._v("建议的安装顺序: "),_("RouterLink",{attrs:{to:"/tutorial/performance-tuning.html#网络加速"}},[t._v("网络加速")]),t._v(" > Trojan Panel Backend > Trojan Panel\nFrontend -> Trojan Panel Core")],1),t._v(" "),_("p",[t._v("建议在脚本运行中需要手动输入的部分,如果没有特殊需求或者不知道这个选项是干什么的,\n"),_("strong",[t._v("除数据库密码和Redis密码自定义以外,其他默认即可")]),t._v("。")])]),t._v(" "),_("li",[_("p",[t._v("如果是远程多节点的情况,节点服务器"),_("strong",[t._v("只需要安装一次")]),t._v("Trojan Panel Core,在面板界面才可以操作远程服务器从而远程自动化管理节点。")])]),t._v(" "),_("li",[_("p",[t._v("如果使用Caddy2自动申请/续签证书,需要开放Caddy端口(默认80)并且"),_("strong",[t._v("保证Caddy端口没有被其他进程占用")]),t._v("。")])])]),t._v(" "),_("h2",{attrs:{id:"一键安装脚本"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#一键安装脚本"}},[t._v("#")]),t._v(" 一键安装脚本")]),t._v(" "),_("ol",[_("li",[_("p",[t._v("联机版(推荐)")]),t._v(" "),_("div",{staticClass:"language-shell extra-class"},[_("pre",{pre:!0,attrs:{class:"language-shell"}},[_("code",[_("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("source")]),t._v(" "),_("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),_("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),_("span",{pre:!0,attrs:{class:"token function"}},[t._v("curl")]),t._v(" "),_("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-L")]),t._v(" https://github.com/trojanpanel/install-script/raw/main/install_script.sh"),_("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),_("li",[_("p",[t._v("单机版")]),t._v(" "),_("div",{staticClass:"language-shell extra-class"},[_("pre",{pre:!0,attrs:{class:"language-shell"}},[_("code",[_("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("source")]),t._v(" "),_("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),_("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),_("span",{pre:!0,attrs:{class:"token function"}},[t._v("curl")]),t._v(" "),_("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-L")]),t._v(" https://github.com/trojanpanel/install-script/raw/main/install_script_standalone.sh"),_("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),_("li",[_("p",[_("a",{attrs:{href:"https://github.com/trojanpanel/install-script/blob/main/README_ARCHIVE.md",target:"_blank",rel:"noopener noreferrer"}},[t._v("安装旧版"),_("OutboundLink")],1)])])]),t._v(" "),_("h2",{attrs:{id:"安装trojan-panel"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#安装trojan-panel"}},[t._v("#")]),t._v(" 安装Trojan Panel")]),t._v(" "),_("ol",[_("li",[t._v("设置伪装Web")])]),t._v(" "),_("p",[t._v("推荐使用Caddy 2,可以作为伪装Web也可以自动申请/续签证书。")]),t._v(" "),_("ol",{attrs:{start:"2"}},[_("li",[t._v("请输入Caddy的端口(默认:80)")])]),t._v(" "),_("p",[t._v("默认即可,除非80端口被墙或者被其他进程占用。")]),t._v(" "),_("ol",{attrs:{start:"3"}},[_("li",[t._v("请输入Caddy的转发端口(用于申请证书,默认:8863)")])]),t._v(" "),_("p",[t._v("默认即可,除非8863端口被墙。")]),t._v(" "),_("ol",{attrs:{start:"4"}},[_("li",[t._v("请输入你的域名(必填)")])]),t._v(" "),_("p",[t._v("输入你提前解析到本机的域名。")]),t._v(" "),_("ol",{attrs:{start:"5"}},[_("li",[t._v("请输入你的邮箱(可选)")])]),t._v(" "),_("p",[t._v("默认即可,或输入一个合法的邮箱地址。")]),t._v(" "),_("ol",{attrs:{start:"6"}},[_("li",[t._v("请选择设置证书的方式?(1/自动申请和续签证书 2/手动设置证书路径 默认:1/自动申请和续签证书)")])]),t._v(" "),_("p",[t._v("推荐自动申请和续签证书,如果自己有证书或者自动申请和续签证书失败可以选择手动设置证书路径(24小时内申请2次以上可能会导致自动申请证书失败,如果搭建频繁,建议选择手动设置证书路径)。")]),t._v(" "),_("ol",{attrs:{start:"6"}},[_("li",[t._v("请选择申请证书的方式(1/acme 2/zerossl 默认:1/acme)")])]),t._v(" "),_("p",[t._v("默认即可,选择自动申请证书的方式。")]),t._v(" "),_("ol",{attrs:{start:"7"}},[_("li",[t._v("请输入证书的.crt文件路径(必填)")])]),t._v(" "),_("p",[t._v("使用.crt文件的绝对路径,例如:"),_("code",[t._v("/root/www.google.com.crt")])]),t._v(" "),_("ol",{attrs:{start:"8"}},[_("li",[t._v("请输入证书的.key文件路径(必填)")])]),t._v(" "),_("p",[t._v("使用.key文件的绝对路径,例如:"),_("code",[t._v("/root/www.google.com.key")])]),t._v(" "),_("ol",{attrs:{start:"9"}},[_("li",[t._v("请输入数据库的用户名(默认:root)")])]),t._v(" "),_("p",[t._v("默认即可,除非有自定义数据库用户的需求。")]),t._v(" "),_("ol",{attrs:{start:"10"}},[_("li",[t._v("请输入数据库的密码(必填)")])]),t._v(" "),_("p",[t._v("输入一个较为复杂且你能记得住的密码。")]),t._v(" "),_("ol",{attrs:{start:"11"}},[_("li",[t._v("请输入Redis的密码(必填)")])]),t._v(" "),_("p",[t._v("输入一个较为复杂且你能记得住的密码。")]),t._v(" "),_("ol",{attrs:{start:"12"}},[_("li",[t._v("请输入数据库的IP地址(默认:本地数据库)")])]),t._v(" "),_("p",[t._v("如果数据库安装在本机则默认即可,如果数据库安装在其他服务器这里填远程服务器的IP地址。")]),t._v(" "),_("ol",{attrs:{start:"13"}},[_("li",[t._v("请输入数据库的端口(默认:本地数据库端口)")])]),t._v(" "),_("p",[t._v("如果数据库安装在本机则默认即可,如果数据库安装在其他服务器这里填远程服务器的数据库端口。")]),t._v(" "),_("ol",{attrs:{start:"14"}},[_("li",[t._v("请输入数据库的用户名(默认:root)")])]),t._v(" "),_("p",[t._v("默认即可,除非有自定义数据库用户的需求。")]),t._v(" "),_("ol",{attrs:{start:"15"}},[_("li",[t._v("请输入数据库的密码(必填)")])]),t._v(" "),_("p",[t._v("如果数据库安装在本机则填写本机数据库密码,如果数据库安装在其他服务器这里填远程服务器的数据库密码。")]),t._v(" "),_("ol",{attrs:{start:"16"}},[_("li",[t._v("请输入Redis的IP地址(默认:本机Redis)")])]),t._v(" "),_("p",[t._v("如果Redis安装在本机则默认即可,如果Redis安装在其他服务器这里填远程服务器的IP地址。")]),t._v(" "),_("ol",{attrs:{start:"17"}},[_("li",[t._v("请输入Redis的端口(默认:本机Redis端口)")])]),t._v(" "),_("p",[t._v("如果Redis安装在本机则默认即可,如果Redis安装在其他服务器这里填远程服务器的Redis端口。")]),t._v(" "),_("ol",{attrs:{start:"18"}},[_("li",[t._v("请输入Redis的密码(必填)")])]),t._v(" "),_("p",[t._v("如果Redis安装在本机则填写本机Redis密码,如果Redis安装在其他服务器这里填远程服务器的Redis密码。")]),t._v(" "),_("ol",{attrs:{start:"19"}},[_("li",[t._v("请输入Trojan Panel前端端口(默认:8888)")])]),t._v(" "),_("p",[t._v("默认即可,除非有自定义Trojan Panel前端端口的需求。")]),t._v(" "),_("ol",{attrs:{start:"20"}},[_("li",[t._v("请选择Trojan Panel前端是否开启https?(0/关闭 1/开启 默认:1/开启)")])]),t._v(" "),_("p",[t._v("默认即可,除非有自定义择Trojan Panel前端是否开启https的需求。如果开启https,则管理面板地址为"),_("code",[t._v("https://你的域名:端口")]),t._v("\n,如果未开启https,则管理面板地址为"),_("code",[t._v("http://你的域名:端口")]),t._v("。")]),t._v(" "),_("p",[_("strong",[t._v("提示")])]),t._v(" "),_("ol",[_("li",[_("p",[t._v("安装结束后,访问"),_("strong",[t._v("你的域名")]),t._v("如果是一个静态网页,说明已经安装成功。")])]),t._v(" "),_("li",[_("p",[t._v("安装成功后,Trojan Panel管理面板地址: "),_("code",[t._v("你的域名:8888")]),t._v("\n系统管理员 默认用户名: "),_("code",[t._v("sysadmin")]),t._v(" 默认密码: "),_("code",[t._v("123456")]),t._v(" 请及时登陆管理面板修改密码。")])])]),t._v(" "),_("h2",{attrs:{id:"安装trojan-panel-core"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#安装trojan-panel-core"}},[t._v("#")]),t._v(" 安装Trojan Panel Core")]),t._v(" "),_("ol",[_("li",[t._v("请输入数据库的IP地址(默认:本地数据库)")])]),t._v(" "),_("p",[t._v("如果数据库安装在本机则默认即可,如果数据库安装在其他服务器这里填远程服务器的IP地址。")]),t._v(" "),_("ol",{attrs:{start:"2"}},[_("li",[t._v("请输入数据库的端口(默认:本地数据库端口)")])]),t._v(" "),_("p",[t._v("如果数据库安装在本机则默认即可,如果数据库安装在其他服务器这里填远程服务器的数据库端口。")]),t._v(" "),_("ol",{attrs:{start:"3"}},[_("li",[t._v("请输入数据库的用户名(默认:root)")])]),t._v(" "),_("p",[t._v("默认即可,除非有自定义数据库用户的需求。")]),t._v(" "),_("ol",{attrs:{start:"4"}},[_("li",[t._v("请输入数据库的密码(必填)")])]),t._v(" "),_("p",[t._v("如果数据库安装在本机则填写本机数据库密码,如果数据库安装在其他服务器这里填远程服务器的数据库密码。")]),t._v(" "),_("ol",{attrs:{start:"5"}},[_("li",[t._v("请输入数据库名称(默认:trojan_panel_db)")])]),t._v(" "),_("p",[t._v("默认即可,除非有自定义数据库名称的需求。")]),t._v(" "),_("ol",{attrs:{start:"6"}},[_("li",[t._v("请输入数据库的用户表名称(默认:account)")])]),t._v(" "),_("p",[t._v("默认即可,除非有自定义数据库的用户表的需求。")]),t._v(" "),_("ol",{attrs:{start:"7"}},[_("li",[t._v("请输入Redis的IP地址(默认:本机Redis)")])]),t._v(" "),_("p",[t._v("如果Redis安装在本机则默认即可,如果Redis安装在其他服务器这里填远程服务器的IP地址。")]),t._v(" "),_("ol",{attrs:{start:"8"}},[_("li",[t._v("请输入Redis的端口(默认:本机Redis端口)")])]),t._v(" "),_("p",[t._v("如果Redis安装在本机则默认即可,如果Redis安装在其他服务器这里填远程服务器的Redis端口。")]),t._v(" "),_("ol",{attrs:{start:"9"}},[_("li",[t._v("请输入Redis的密码(必填)")])]),t._v(" "),_("p",[t._v("如果Redis安装在本机则填写本机Redis密码,如果Redis安装在其他服务器这里填远程服务器的Redis密码。")]),t._v(" "),_("ol",{attrs:{start:"10"}},[_("li",[t._v("请输入API的端口(默认:8100)")])]),t._v(" "),_("p",[t._v("默认即可,除非8100端口被墙。")])])}),[],!1,null,null,null);_.default=s.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/14.17b544b6.js b/docs/assets/js/14.3217504e.js similarity index 89% rename from docs/assets/js/14.17b544b6.js rename to docs/assets/js/14.3217504e.js index 75ebb3c..169d31d 100644 --- a/docs/assets/js/14.17b544b6.js +++ b/docs/assets/js/14.3217504e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{290:function(t,s,e){"use strict";e.r(s);var o=e(7),r=Object(o.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"core-sdk"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#core-sdk"}},[this._v("#")]),this._v(" Core SDK")]),this._v(" "),t("p",[this._v("项目地址:https://github.com/trojanpanel/core-sdk")]),this._v(" "),t("p",[this._v("Demo地址:https://github.com/trojanpanel/core-sdk-example")])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{288:function(t,s,e){"use strict";e.r(s);var o=e(7),r=Object(o.a)({},(function(){var t=this._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[t("h1",{attrs:{id:"core-sdk"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#core-sdk"}},[this._v("#")]),this._v(" Core SDK")]),this._v(" "),t("p",[this._v("项目地址:https://github.com/trojanpanel/core-sdk")]),this._v(" "),t("p",[this._v("Demo地址:https://github.com/trojanpanel/core-sdk-example")])])}),[],!1,null,null,null);s.default=r.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/16.78336478.js b/docs/assets/js/16.71eea079.js similarity index 93% rename from docs/assets/js/16.78336478.js rename to docs/assets/js/16.71eea079.js index 36ba90d..34bd892 100644 --- a/docs/assets/js/16.78336478.js +++ b/docs/assets/js/16.71eea079.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{291:function(t,s,r){"use strict";r.r(s);var e=r(7),l=Object(e.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"架构设计"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#架构设计"}},[t._v("#")]),t._v(" 架构设计")]),t._v(" "),s("ul",[s("li",[t._v("所有服务基于Docker,通过容器技术承载各类服务,屏蔽平台差异")]),t._v(" "),s("li",[t._v("前后端分离,并行开发,性能提升,提升用户体验")]),t._v(" "),s("li",[t._v("一键安装脚本,系统一键部署,降低部署门槛")])]),t._v(" "),s("p",[t._v("这是占内存最小而且不需要自己手动申请/续签证书的轻量级方案。实测,把所有服务器都部署完,1H1G的服务器足够用。")])])}),[],!1,null,null,null);s.default=l.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{290:function(t,s,r){"use strict";r.r(s);var e=r(7),l=Object(e.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"架构设计"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#架构设计"}},[t._v("#")]),t._v(" 架构设计")]),t._v(" "),s("ul",[s("li",[t._v("所有服务基于Docker,通过容器技术承载各类服务,屏蔽平台差异")]),t._v(" "),s("li",[t._v("前后端分离,并行开发,性能提升,提升用户体验")]),t._v(" "),s("li",[t._v("一键安装脚本,系统一键部署,降低部署门槛")])]),t._v(" "),s("p",[t._v("这是占内存最小而且不需要自己手动申请/续签证书的轻量级方案。实测,把所有服务器都部署完,1H1G的服务器足够用。")])])}),[],!1,null,null,null);s.default=l.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/17.e9eb4f43.js b/docs/assets/js/17.d1604185.js similarity index 99% rename from docs/assets/js/17.e9eb4f43.js rename to docs/assets/js/17.d1604185.js index 8fb575b..684c5d4 100644 --- a/docs/assets/js/17.e9eb4f43.js +++ b/docs/assets/js/17.d1604185.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{293:function(r,t,a){"use strict";a.r(t);var s=a(7),e=Object(s.a)({},(function(){var r=this,t=r._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":r.$parent.slotKey}},[t("h1",{attrs:{id:"客户端配置"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#客户端配置"}},[r._v("#")]),r._v(" 客户端配置")]),r._v(" "),t("h2",{attrs:{id:"v2rayn"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#v2rayn"}},[r._v("#")]),r._v(" v2rayN")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/2dust/v2rayN/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("下载v2rayN-Core"),t("OutboundLink")],1)]),r._v(" "),t("h3",{attrs:{id:"配置hysteria-windows"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#配置hysteria-windows"}},[r._v("#")]),r._v(" 配置Hysteria(Windows)")]),r._v(" "),t("ol",[t("li",[t("p",[t("a",{attrs:{href:"https://github.com/apernet/hysteria/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("下载Hysteria"),t("OutboundLink")],1)])]),r._v(" "),t("li",[t("p",[r._v("将Hysteria执行文件复制到v2rayN-Core目录下")])])]),r._v(" "),t("p",[t("img",{attrs:{src:"/client-config/hysteria/v2rayn-hysteria-win-1.png",alt:""}})]),r._v(" "),t("ol",{attrs:{start:"3"}},[t("li",[r._v("编辑Hysteria配置文件")])]),r._v(" "),t("div",{staticClass:"language-json extra-class"},[t("pre",{pre:!0,attrs:{class:"language-json"}},[t("code",[t("span",{pre:!0,attrs:{class:"token punctuation"}},[r._v("{")]),r._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[r._v('"server"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[r._v(":")]),r._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[r._v('"域名:端口"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[r._v(",")]),r._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[r._v('"protocol"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[r._v(":")]),r._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[r._v('"udp"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[r._v(",")]),r._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[r._v('"up_mbps"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[r._v(":")]),r._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[r._v("100")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[r._v(",")]),r._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[r._v('"down_mbps"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[r._v(":")]),r._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[r._v("100")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[r._v(",")]),r._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[r._v('"auth_str"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[r._v(":")]),r._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[r._v('"密码"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[r._v(",")]),r._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[r._v('"socks5"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[r._v(":")]),r._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[r._v("{")]),r._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[r._v('"listen"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[r._v(":")]),r._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[r._v('"127.0.0.1:1080"')]),r._v("\n "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[r._v("}")]),r._v("\n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[r._v("}")]),r._v("\n")])])]),t("p",[r._v("备注:auth_str不需要base64编码")]),r._v(" "),t("ol",{attrs:{start:"4"}},[t("li",[t("p",[r._v("开启对应的udp端口或者关闭防火墙")])]),r._v(" "),t("li",[t("p",[r._v("打开v2rayN,添加自定义服务器")])])]),r._v(" "),t("p",[t("img",{attrs:{src:"/client-config/hysteria/v2rayn-hysteria-win-2.png",alt:""}})]),r._v(" "),t("p",[t("img",{attrs:{src:"/client-config/hysteria/v2rayn-hysteria-win-3.png",alt:""}})]),r._v(" "),t("ol",{attrs:{start:"6"}},[t("li",[t("p",[r._v("将v2rayN的系统代理设置为自动配置系统代理")])]),r._v(" "),t("li",[t("p",[r._v("选中节点,点击Enter即可连接节点")])])]),r._v(" "),t("h3",{attrs:{id:"配置naiveproxy-windows"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#配置naiveproxy-windows"}},[r._v("#")]),r._v(" 配置NaiveProxy(Windows)")]),r._v(" "),t("ol",[t("li",[t("p",[t("a",{attrs:{href:"https://github.com/klzgrad/naiveproxy/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("下载NaiveProxy"),t("OutboundLink")],1)])]),r._v(" "),t("li",[t("p",[r._v("将NaiveProxy执行文件复制到v2rayN-Core目录下")])])]),r._v(" "),t("p",[t("img",{attrs:{src:"/client-config/naiveproxy/v2rayn-naiveproxy-win-1.png",alt:""}})]),r._v(" "),t("ol",{attrs:{start:"3"}},[t("li",[r._v("编辑NaiveProxy配置文件")])]),r._v(" "),t("div",{staticClass:"language-json extra-class"},[t("pre",{pre:!0,attrs:{class:"language-json"}},[t("code",[t("span",{pre:!0,attrs:{class:"token punctuation"}},[r._v("{")]),r._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[r._v('"listen"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[r._v(":")]),r._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[r._v('"socks://127.0.0.1:1080"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[r._v(",")]),r._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[r._v('"proxy"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[r._v(":")]),r._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[r._v('"https://user:pass@example.com:port"')]),r._v("\n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[r._v("}")]),r._v("\n")])])]),t("ol",{attrs:{start:"4"}},[t("li",[t("p",[r._v("开启对应的tcp端口或者关闭防火墙")])]),r._v(" "),t("li",[t("p",[r._v("开v2rayN,添加自定义服务器")])])]),r._v(" "),t("p",[t("img",{attrs:{src:"/client-config/naiveproxy/v2rayn-naiveproxy-win-2.png",alt:""}})]),r._v(" "),t("ol",{attrs:{start:"6"}},[t("li",[t("p",[r._v("将v2rayN的系统代理设置为自动配置系统代理")])]),r._v(" "),t("li",[t("p",[r._v("选中节点,点击Enter即可连接节点")])])]),r._v(" "),t("h2",{attrs:{id:"qv2ray"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#qv2ray"}},[r._v("#")]),r._v(" Qv2ray")]),r._v(" "),t("ol",[t("li",[t("p",[t("a",{attrs:{href:"https://github.com/Qv2ray/Qv2ray/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("下载Qv2ray"),t("OutboundLink")],1)])]),r._v(" "),t("li",[t("p",[t("a",{attrs:{href:"https://github.com/XTLS/Xray-core/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("下载Xray-core"),t("OutboundLink")],1)])]),r._v(" "),t("li",[t("p",[r._v("在Qv2ray配置v2ray-core/Xray-core")])])]),r._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://github.com/v2fly/v2ray-core/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("下载v2ray-core"),t("OutboundLink")],1)]),r._v(" "),t("li",[t("a",{attrs:{href:"https://github.com/XTLS/Xray-core/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("下载Xray-core(推荐)"),t("OutboundLink")],1)])]),r._v(" "),t("p",[t("img",{attrs:{src:"/client-config/qv2ray/qv2ray-win-1.png",alt:""}})]),r._v(" "),t("h3",{attrs:{id:"配置trojan-go-windows"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#配置trojan-go-windows"}},[r._v("#")]),r._v(" 配置Trojan-Go(Windows)")]),r._v(" "),t("ol",[t("li",[t("p",[t("a",{attrs:{href:"https://github.com/p4gefau1t/trojan-go/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("下载Trojan-Go"),t("OutboundLink")],1)])]),r._v(" "),t("li",[t("p",[r._v("添加"),t("a",{attrs:{href:"https://github.com/Qv2ray/QvPlugin-Trojan-Go/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("Trojan-Go插件"),t("OutboundLink")],1),r._v(" 并设定Trojan-Go Kernel Path")])])]),r._v(" "),t("p",[t("img",{attrs:{src:"/client-config/trojango/qv2ray-trojan-go-win-1.png",alt:""}})]),r._v(" "),t("ol",{attrs:{start:"3"}},[t("li",[r._v("重启Qv2ray后即可添加Trojan-Go节点")])]),r._v(" "),t("h3",{attrs:{id:"配置trojan-windows"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#配置trojan-windows"}},[r._v("#")]),r._v(" 配置Trojan(Windows)")]),r._v(" "),t("ol",[t("li",[t("p",[r._v("添加"),t("a",{attrs:{href:"https://github.com/Qv2ray/QvPlugin-Trojan/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("Trojan插件"),t("OutboundLink")],1)])]),r._v(" "),t("li",[t("p",[r._v("重启Qv2ray后即可添加Trojan节点")])])]),r._v(" "),t("h3",{attrs:{id:"配置naiveproxy-windows-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#配置naiveproxy-windows-2"}},[r._v("#")]),r._v(" 配置NaiveProxy(Windows)")]),r._v(" "),t("ol",[t("li",[t("p",[t("a",{attrs:{href:"https://github.com/klzgrad/naiveproxy/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("下载NaiveProxy"),t("OutboundLink")],1)])]),r._v(" "),t("li",[t("p",[r._v("添加"),t("a",{attrs:{href:"https://github.com/Qv2ray/QvPlugin-NaiveProxy/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("NaiveProxy插件"),t("OutboundLink")],1),r._v(" 并设定NaiveProxy Kernel Path")])])]),r._v(" "),t("p",[t("img",{attrs:{src:"/client-config/naiveproxy/qv2ray-naiveproxy-win-1.png",alt:""}})]),r._v(" "),t("ol",{attrs:{start:"3"}},[t("li",[r._v("重启Qv2ray后即可添加NaiveProxy节点")])]),r._v(" "),t("h3",{attrs:{id:"配置ss-ssr-windows"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#配置ss-ssr-windows"}},[r._v("#")]),r._v(" 配置SS/SSR(Windows)")]),r._v(" "),t("ol",[t("li",[t("p",[r._v("添加"),t("a",{attrs:{href:"https://github.com/Qv2ray/QvPlugin-SS/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("SS插件"),t("OutboundLink")],1),r._v(" / "),t("a",{attrs:{href:"https://github.com/Qv2ray/QvPlugin-SSR/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("SSR插件"),t("OutboundLink")],1)])]),r._v(" "),t("li",[t("p",[r._v("重启Qv2ray后即可添加SS/SSR节点")])])])])}),[],!1,null,null,null);t.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{289:function(r,t,a){"use strict";a.r(t);var s=a(7),e=Object(s.a)({},(function(){var r=this,t=r._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":r.$parent.slotKey}},[t("h1",{attrs:{id:"客户端配置"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#客户端配置"}},[r._v("#")]),r._v(" 客户端配置")]),r._v(" "),t("h2",{attrs:{id:"v2rayn"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#v2rayn"}},[r._v("#")]),r._v(" v2rayN")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/2dust/v2rayN/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("下载v2rayN-Core"),t("OutboundLink")],1)]),r._v(" "),t("h3",{attrs:{id:"配置hysteria-windows"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#配置hysteria-windows"}},[r._v("#")]),r._v(" 配置Hysteria(Windows)")]),r._v(" "),t("ol",[t("li",[t("p",[t("a",{attrs:{href:"https://github.com/apernet/hysteria/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("下载Hysteria"),t("OutboundLink")],1)])]),r._v(" "),t("li",[t("p",[r._v("将Hysteria执行文件复制到v2rayN-Core目录下")])])]),r._v(" "),t("p",[t("img",{attrs:{src:"/client-config/hysteria/v2rayn-hysteria-win-1.png",alt:""}})]),r._v(" "),t("ol",{attrs:{start:"3"}},[t("li",[r._v("编辑Hysteria配置文件")])]),r._v(" "),t("div",{staticClass:"language-json extra-class"},[t("pre",{pre:!0,attrs:{class:"language-json"}},[t("code",[t("span",{pre:!0,attrs:{class:"token punctuation"}},[r._v("{")]),r._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[r._v('"server"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[r._v(":")]),r._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[r._v('"域名:端口"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[r._v(",")]),r._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[r._v('"protocol"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[r._v(":")]),r._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[r._v('"udp"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[r._v(",")]),r._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[r._v('"up_mbps"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[r._v(":")]),r._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[r._v("100")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[r._v(",")]),r._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[r._v('"down_mbps"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[r._v(":")]),r._v(" "),t("span",{pre:!0,attrs:{class:"token number"}},[r._v("100")]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[r._v(",")]),r._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[r._v('"auth_str"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[r._v(":")]),r._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[r._v('"密码"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[r._v(",")]),r._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[r._v('"socks5"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[r._v(":")]),r._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[r._v("{")]),r._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[r._v('"listen"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[r._v(":")]),r._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[r._v('"127.0.0.1:1080"')]),r._v("\n "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[r._v("}")]),r._v("\n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[r._v("}")]),r._v("\n")])])]),t("p",[r._v("备注:auth_str不需要base64编码")]),r._v(" "),t("ol",{attrs:{start:"4"}},[t("li",[t("p",[r._v("开启对应的udp端口或者关闭防火墙")])]),r._v(" "),t("li",[t("p",[r._v("打开v2rayN,添加自定义服务器")])])]),r._v(" "),t("p",[t("img",{attrs:{src:"/client-config/hysteria/v2rayn-hysteria-win-2.png",alt:""}})]),r._v(" "),t("p",[t("img",{attrs:{src:"/client-config/hysteria/v2rayn-hysteria-win-3.png",alt:""}})]),r._v(" "),t("ol",{attrs:{start:"6"}},[t("li",[t("p",[r._v("将v2rayN的系统代理设置为自动配置系统代理")])]),r._v(" "),t("li",[t("p",[r._v("选中节点,点击Enter即可连接节点")])])]),r._v(" "),t("h3",{attrs:{id:"配置naiveproxy-windows"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#配置naiveproxy-windows"}},[r._v("#")]),r._v(" 配置NaiveProxy(Windows)")]),r._v(" "),t("ol",[t("li",[t("p",[t("a",{attrs:{href:"https://github.com/klzgrad/naiveproxy/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("下载NaiveProxy"),t("OutboundLink")],1)])]),r._v(" "),t("li",[t("p",[r._v("将NaiveProxy执行文件复制到v2rayN-Core目录下")])])]),r._v(" "),t("p",[t("img",{attrs:{src:"/client-config/naiveproxy/v2rayn-naiveproxy-win-1.png",alt:""}})]),r._v(" "),t("ol",{attrs:{start:"3"}},[t("li",[r._v("编辑NaiveProxy配置文件")])]),r._v(" "),t("div",{staticClass:"language-json extra-class"},[t("pre",{pre:!0,attrs:{class:"language-json"}},[t("code",[t("span",{pre:!0,attrs:{class:"token punctuation"}},[r._v("{")]),r._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[r._v('"listen"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[r._v(":")]),r._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[r._v('"socks://127.0.0.1:1080"')]),t("span",{pre:!0,attrs:{class:"token punctuation"}},[r._v(",")]),r._v("\n "),t("span",{pre:!0,attrs:{class:"token property"}},[r._v('"proxy"')]),t("span",{pre:!0,attrs:{class:"token operator"}},[r._v(":")]),r._v(" "),t("span",{pre:!0,attrs:{class:"token string"}},[r._v('"https://user:pass@example.com:port"')]),r._v("\n"),t("span",{pre:!0,attrs:{class:"token punctuation"}},[r._v("}")]),r._v("\n")])])]),t("ol",{attrs:{start:"4"}},[t("li",[t("p",[r._v("开启对应的tcp端口或者关闭防火墙")])]),r._v(" "),t("li",[t("p",[r._v("开v2rayN,添加自定义服务器")])])]),r._v(" "),t("p",[t("img",{attrs:{src:"/client-config/naiveproxy/v2rayn-naiveproxy-win-2.png",alt:""}})]),r._v(" "),t("ol",{attrs:{start:"6"}},[t("li",[t("p",[r._v("将v2rayN的系统代理设置为自动配置系统代理")])]),r._v(" "),t("li",[t("p",[r._v("选中节点,点击Enter即可连接节点")])])]),r._v(" "),t("h2",{attrs:{id:"qv2ray"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#qv2ray"}},[r._v("#")]),r._v(" Qv2ray")]),r._v(" "),t("ol",[t("li",[t("p",[t("a",{attrs:{href:"https://github.com/Qv2ray/Qv2ray/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("下载Qv2ray"),t("OutboundLink")],1)])]),r._v(" "),t("li",[t("p",[t("a",{attrs:{href:"https://github.com/XTLS/Xray-core/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("下载Xray-core"),t("OutboundLink")],1)])]),r._v(" "),t("li",[t("p",[r._v("在Qv2ray配置v2ray-core/Xray-core")])])]),r._v(" "),t("ul",[t("li",[t("a",{attrs:{href:"https://github.com/v2fly/v2ray-core/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("下载v2ray-core"),t("OutboundLink")],1)]),r._v(" "),t("li",[t("a",{attrs:{href:"https://github.com/XTLS/Xray-core/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("下载Xray-core(推荐)"),t("OutboundLink")],1)])]),r._v(" "),t("p",[t("img",{attrs:{src:"/client-config/qv2ray/qv2ray-win-1.png",alt:""}})]),r._v(" "),t("h3",{attrs:{id:"配置trojan-go-windows"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#配置trojan-go-windows"}},[r._v("#")]),r._v(" 配置Trojan-Go(Windows)")]),r._v(" "),t("ol",[t("li",[t("p",[t("a",{attrs:{href:"https://github.com/p4gefau1t/trojan-go/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("下载Trojan-Go"),t("OutboundLink")],1)])]),r._v(" "),t("li",[t("p",[r._v("添加"),t("a",{attrs:{href:"https://github.com/Qv2ray/QvPlugin-Trojan-Go/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("Trojan-Go插件"),t("OutboundLink")],1),r._v(" 并设定Trojan-Go Kernel Path")])])]),r._v(" "),t("p",[t("img",{attrs:{src:"/client-config/trojango/qv2ray-trojan-go-win-1.png",alt:""}})]),r._v(" "),t("ol",{attrs:{start:"3"}},[t("li",[r._v("重启Qv2ray后即可添加Trojan-Go节点")])]),r._v(" "),t("h3",{attrs:{id:"配置trojan-windows"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#配置trojan-windows"}},[r._v("#")]),r._v(" 配置Trojan(Windows)")]),r._v(" "),t("ol",[t("li",[t("p",[r._v("添加"),t("a",{attrs:{href:"https://github.com/Qv2ray/QvPlugin-Trojan/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("Trojan插件"),t("OutboundLink")],1)])]),r._v(" "),t("li",[t("p",[r._v("重启Qv2ray后即可添加Trojan节点")])])]),r._v(" "),t("h3",{attrs:{id:"配置naiveproxy-windows-2"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#配置naiveproxy-windows-2"}},[r._v("#")]),r._v(" 配置NaiveProxy(Windows)")]),r._v(" "),t("ol",[t("li",[t("p",[t("a",{attrs:{href:"https://github.com/klzgrad/naiveproxy/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("下载NaiveProxy"),t("OutboundLink")],1)])]),r._v(" "),t("li",[t("p",[r._v("添加"),t("a",{attrs:{href:"https://github.com/Qv2ray/QvPlugin-NaiveProxy/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("NaiveProxy插件"),t("OutboundLink")],1),r._v(" 并设定NaiveProxy Kernel Path")])])]),r._v(" "),t("p",[t("img",{attrs:{src:"/client-config/naiveproxy/qv2ray-naiveproxy-win-1.png",alt:""}})]),r._v(" "),t("ol",{attrs:{start:"3"}},[t("li",[r._v("重启Qv2ray后即可添加NaiveProxy节点")])]),r._v(" "),t("h3",{attrs:{id:"配置ss-ssr-windows"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#配置ss-ssr-windows"}},[r._v("#")]),r._v(" 配置SS/SSR(Windows)")]),r._v(" "),t("ol",[t("li",[t("p",[r._v("添加"),t("a",{attrs:{href:"https://github.com/Qv2ray/QvPlugin-SS/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("SS插件"),t("OutboundLink")],1),r._v(" / "),t("a",{attrs:{href:"https://github.com/Qv2ray/QvPlugin-SSR/releases",target:"_blank",rel:"noopener noreferrer"}},[r._v("SSR插件"),t("OutboundLink")],1)])]),r._v(" "),t("li",[t("p",[r._v("重启Qv2ray后即可添加SS/SSR节点")])])])])}),[],!1,null,null,null);t.default=e.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/18.48f2b6f0.js b/docs/assets/js/18.d19c2757.js similarity index 97% rename from docs/assets/js/18.48f2b6f0.js rename to docs/assets/js/18.d19c2757.js index ca9f7d8..17a338c 100644 --- a/docs/assets/js/18.48f2b6f0.js +++ b/docs/assets/js/18.d19c2757.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{294:function(t,a,e){"use strict";e.r(a);var r=e(7),s=Object(r.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"常见问题"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#常见问题"}},[t._v("#")]),t._v(" 常见问题")]),t._v(" "),a("h2",{attrs:{id:"搭建失败或系统报错的常见解决方案"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#搭建失败或系统报错的常见解决方案"}},[t._v("#")]),t._v(" 搭建失败或系统报错的常见解决方案")]),t._v(" "),a("p",[t._v("有以下几个方案,可以按照顺序依次尝试,修复力度逐层递增。")]),t._v(" "),a("ol",[a("li",[a("p",[t._v("关闭防火墙:如果开放了对应的端口,但是访问不了域名或者控制面板,以下为常用关闭防火墙的命令,仅供参考。")]),t._v(" "),a("ul",[a("li",[t._v("CentOS:"),a("code",[t._v("systemctl disable firewalld")])]),t._v(" "),a("li",[t._v("Debian/Ubuntu:"),a("code",[t._v("sudo ufw disable")])])])]),t._v(" "),a("li",[a("p",[t._v("故障监测:运行一键安装脚本选择故障检测的选项,对出现运行异常的应用进行单独地卸载重装。")])]),t._v(" "),a("li",[a("p",[t._v("查询系统报错日志:运行一键安装脚本选择日志查询选项,查询对应应用的日志信息,从而进行针对性修复。")])]),t._v(" "),a("li",[a("p",[t._v("重启服务器。")])]),t._v(" "),a("li",[a("p",[t._v("重装系统:有时候搭建失败可能是服务器系统不纯净导致,可以尝试DD系统。")])])]),t._v(" "),a("h2",{attrs:{id:"证书申请失败"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#证书申请失败"}},[t._v("#")]),t._v(" 证书申请失败")]),t._v(" "),a("p",[t._v("Caddy内置"),a("a",{attrs:{href:"https://acme.sh",target:"_blank",rel:"noopener noreferrer"}},[t._v("acme"),a("OutboundLink")],1),t._v("进行证书申请,使用Caddy自动申请/续签证书时,需要临时听在80端口,所以你的服务器需要开放80端口并且保证80端口没有被其他进程占用,\n并且每天申请次数有限制,通常每天超过2次就有很大概率会申请失败,如果申请失败,可以尝试重启Caddy容器或者重启服务器,Caddy就会重新申请,但是不保证100%申请成功。\n如果一直申请失败,可以等第二天重试或者在搭建之前提前准备好证书并上传至服务器,在安装的时候选择手动设置证书路径选项指定证书的绝对路径。")])])}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{299:function(t,a,e){"use strict";e.r(a);var r=e(7),s=Object(r.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"常见问题"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#常见问题"}},[t._v("#")]),t._v(" 常见问题")]),t._v(" "),a("h2",{attrs:{id:"搭建失败或系统报错的常见解决方案"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#搭建失败或系统报错的常见解决方案"}},[t._v("#")]),t._v(" 搭建失败或系统报错的常见解决方案")]),t._v(" "),a("p",[t._v("有以下几个方案,可以按照顺序依次尝试,修复力度逐层递增。")]),t._v(" "),a("ol",[a("li",[a("p",[t._v("关闭防火墙:如果开放了对应的端口,但是访问不了域名或者控制面板,以下为常用关闭防火墙的命令,仅供参考。")]),t._v(" "),a("ul",[a("li",[t._v("CentOS:"),a("code",[t._v("systemctl disable firewalld")])]),t._v(" "),a("li",[t._v("Debian/Ubuntu:"),a("code",[t._v("sudo ufw disable")])])])]),t._v(" "),a("li",[a("p",[t._v("故障监测:运行一键安装脚本选择故障检测的选项,对出现运行异常的应用进行单独地卸载重装。")])]),t._v(" "),a("li",[a("p",[t._v("查询系统报错日志:运行一键安装脚本选择日志查询选项,查询对应应用的日志信息,从而进行针对性修复。")])]),t._v(" "),a("li",[a("p",[t._v("重启服务器。")])]),t._v(" "),a("li",[a("p",[t._v("重装系统:有时候搭建失败可能是服务器系统不纯净导致,可以尝试DD系统。")])])]),t._v(" "),a("h2",{attrs:{id:"证书申请失败"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#证书申请失败"}},[t._v("#")]),t._v(" 证书申请失败")]),t._v(" "),a("p",[t._v("Caddy内置"),a("a",{attrs:{href:"https://acme.sh",target:"_blank",rel:"noopener noreferrer"}},[t._v("acme"),a("OutboundLink")],1),t._v("进行证书申请,使用Caddy自动申请/续签证书时,需要临时听在80端口,所以你的服务器需要开放80端口并且保证80端口没有被其他进程占用,\n并且每天申请次数有限制,通常每天超过2次就有很大概率会申请失败,如果申请失败,可以尝试重启Caddy容器或者重启服务器,Caddy就会重新申请,但是不保证100%申请成功。\n如果一直申请失败,可以等第二天重试或者在搭建之前提前准备好证书并上传至服务器,在安装的时候选择手动设置证书路径选项指定证书的绝对路径。")])])}),[],!1,null,null,null);a.default=s.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/19.fb78a976.js b/docs/assets/js/19.e169923f.js similarity index 98% rename from docs/assets/js/19.fb78a976.js rename to docs/assets/js/19.e169923f.js index 654a4d9..b09b6a3 100644 --- a/docs/assets/js/19.fb78a976.js +++ b/docs/assets/js/19.e169923f.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{297:function(a,t,r){"use strict";r.r(t);var e=r(7),n=Object(e.a)({},(function(){var a=this,t=a._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[t("h1",{attrs:{id:"相关说明"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#相关说明"}},[a._v("#")]),a._v(" 相关说明")]),a._v(" "),t("h2",{attrs:{id:"文件路径"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#文件路径"}},[a._v("#")]),a._v(" 文件路径")]),a._v(" "),t("p",[a._v("证书文件位置如下")]),a._v(" "),t("p",[t("code",[a._v("/tpdata/cert/")])]),a._v(" "),t("p",[a._v("伪装网站文件位置如下")]),a._v(" "),t("p",[t("code",[a._v("/tpdata/web/")])]),a._v(" "),t("p",[a._v("Nginx配置文件位置如下")]),a._v(" "),t("p",[t("code",[a._v("/tpdata/nginx/default.conf")])]),a._v(" "),t("p",[a._v("Caddy配置文件位置如下")]),a._v(" "),t("p",[t("code",[a._v("/tpdata/caddy/config.json")])]),a._v(" "),t("p",[a._v("Trojan Panel UI Nginx配置文件位置如下")]),a._v(" "),t("p",[t("code",[a._v("/tpdata/trojan-panel-ui/nginx/default.conf")])]),a._v(" "),t("p",[a._v("Trojan Panel日志文件位置如下")]),a._v(" "),t("p",[t("code",[a._v("/tpdata/trojan-panel/logs/")])]),a._v(" "),t("p",[a._v("Trojan Panel导出文件位置如下")]),a._v(" "),t("p",[t("code",[a._v("/tpdata/trojan-panel/config/export/")])]),a._v(" "),t("p",[a._v("Trojan Panel模板文件位置如下")]),a._v(" "),t("p",[t("code",[a._v("/tpdata/trojan-panel/config/template/")])]),a._v(" "),t("p",[a._v("Trojan Panel Core日志文件位置如下")]),a._v(" "),t("p",[t("code",[a._v("/tpdata/trojan-panel-core/logs/")])]),a._v(" "),t("p",[a._v("Xray/Trojan-Go/Hysteria/NaiveProxy配置文件位置如下")]),a._v(" "),t("ul",[t("li",[a._v("Xray:"),t("code",[a._v("/tpdata/trojan-panel-core/bin/xray/config/")])]),a._v(" "),t("li",[a._v("Trojan-Go:"),t("code",[a._v("/tpdata/trojan-panel-core/bin/trojango/config/")])]),a._v(" "),t("li",[a._v("Hysteria:"),t("code",[a._v("/tpdata/trojan-panel-core/bin/hysteria/config/")])]),a._v(" "),t("li",[a._v("NaiveProxy:"),t("code",[a._v("/tpdata/trojan-panel-core/bin/naiveproxy/config/")])])]),a._v(" "),t("h2",{attrs:{id:"xray"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#xray"}},[a._v("#")]),a._v(" Xray")]),a._v(" "),t("ol",[t("li",[t("a",{attrs:{href:"https://github.com/XTLS/Xray-core/issues/1562",target:"_blank",rel:"noopener noreferrer"}},[a._v("xtls-rprx-vision仅支持TLS"),t("OutboundLink")],1)]),a._v(" "),t("li",[t("a",{attrs:{href:"https://xtls.github.io/config/features/fallback.html#fallbacks-%E9%85%8D%E7%BD%AE",target:"_blank",rel:"noopener noreferrer"}},[a._v("fallbacks仅支持TCP+TLS"),t("OutboundLink")],1)]),a._v(" "),t("li",[t("a",{attrs:{href:"https://xtls.github.io/config/#%E6%A6%82%E8%BF%B0",target:"_blank",rel:"noopener noreferrer"}},[a._v("Xray配置"),t("OutboundLink")],1)]),a._v(" "),t("li",[t("a",{attrs:{href:"https://github.com/XTLS/Xray-examples",target:"_blank",rel:"noopener noreferrer"}},[a._v("Xray配置举例"),t("OutboundLink")],1)])]),a._v(" "),t("h2",{attrs:{id:"clash"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#clash"}},[a._v("#")]),a._v(" Clash")]),a._v(" "),t("ol",[t("li",[t("a",{attrs:{href:"https://github.com/Loyalsoldier/clash-rules",target:"_blank",rel:"noopener noreferrer"}},[a._v("Clash规则"),t("OutboundLink")],1)])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[19],{296:function(a,t,r){"use strict";r.r(t);var e=r(7),n=Object(e.a)({},(function(){var a=this,t=a._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[t("h1",{attrs:{id:"相关说明"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#相关说明"}},[a._v("#")]),a._v(" 相关说明")]),a._v(" "),t("h2",{attrs:{id:"文件路径"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#文件路径"}},[a._v("#")]),a._v(" 文件路径")]),a._v(" "),t("p",[a._v("证书文件位置如下")]),a._v(" "),t("p",[t("code",[a._v("/tpdata/cert/")])]),a._v(" "),t("p",[a._v("伪装网站文件位置如下")]),a._v(" "),t("p",[t("code",[a._v("/tpdata/web/")])]),a._v(" "),t("p",[a._v("Nginx配置文件位置如下")]),a._v(" "),t("p",[t("code",[a._v("/tpdata/nginx/default.conf")])]),a._v(" "),t("p",[a._v("Caddy配置文件位置如下")]),a._v(" "),t("p",[t("code",[a._v("/tpdata/caddy/config.json")])]),a._v(" "),t("p",[a._v("Trojan Panel UI Nginx配置文件位置如下")]),a._v(" "),t("p",[t("code",[a._v("/tpdata/trojan-panel-ui/nginx/default.conf")])]),a._v(" "),t("p",[a._v("Trojan Panel日志文件位置如下")]),a._v(" "),t("p",[t("code",[a._v("/tpdata/trojan-panel/logs/")])]),a._v(" "),t("p",[a._v("Trojan Panel导出文件位置如下")]),a._v(" "),t("p",[t("code",[a._v("/tpdata/trojan-panel/config/export/")])]),a._v(" "),t("p",[a._v("Trojan Panel模板文件位置如下")]),a._v(" "),t("p",[t("code",[a._v("/tpdata/trojan-panel/config/template/")])]),a._v(" "),t("p",[a._v("Trojan Panel Core日志文件位置如下")]),a._v(" "),t("p",[t("code",[a._v("/tpdata/trojan-panel-core/logs/")])]),a._v(" "),t("p",[a._v("Xray/Trojan-Go/Hysteria/NaiveProxy配置文件位置如下")]),a._v(" "),t("ul",[t("li",[a._v("Xray:"),t("code",[a._v("/tpdata/trojan-panel-core/bin/xray/config/")])]),a._v(" "),t("li",[a._v("Trojan-Go:"),t("code",[a._v("/tpdata/trojan-panel-core/bin/trojango/config/")])]),a._v(" "),t("li",[a._v("Hysteria:"),t("code",[a._v("/tpdata/trojan-panel-core/bin/hysteria/config/")])]),a._v(" "),t("li",[a._v("NaiveProxy:"),t("code",[a._v("/tpdata/trojan-panel-core/bin/naiveproxy/config/")])])]),a._v(" "),t("h2",{attrs:{id:"xray"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#xray"}},[a._v("#")]),a._v(" Xray")]),a._v(" "),t("ol",[t("li",[t("a",{attrs:{href:"https://github.com/XTLS/Xray-core/issues/1562",target:"_blank",rel:"noopener noreferrer"}},[a._v("xtls-rprx-vision仅支持TLS"),t("OutboundLink")],1)]),a._v(" "),t("li",[t("a",{attrs:{href:"https://xtls.github.io/config/features/fallback.html#fallbacks-%E9%85%8D%E7%BD%AE",target:"_blank",rel:"noopener noreferrer"}},[a._v("fallbacks仅支持TCP+TLS"),t("OutboundLink")],1)]),a._v(" "),t("li",[t("a",{attrs:{href:"https://xtls.github.io/config/#%E6%A6%82%E8%BF%B0",target:"_blank",rel:"noopener noreferrer"}},[a._v("Xray配置"),t("OutboundLink")],1)]),a._v(" "),t("li",[t("a",{attrs:{href:"https://github.com/XTLS/Xray-examples",target:"_blank",rel:"noopener noreferrer"}},[a._v("Xray配置举例"),t("OutboundLink")],1)])]),a._v(" "),t("h2",{attrs:{id:"clash"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#clash"}},[a._v("#")]),a._v(" Clash")]),a._v(" "),t("ol",[t("li",[t("a",{attrs:{href:"https://github.com/Loyalsoldier/clash-rules",target:"_blank",rel:"noopener noreferrer"}},[a._v("Clash规则"),t("OutboundLink")],1)])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/20.74b5774d.js b/docs/assets/js/20.981df060.js similarity index 98% rename from docs/assets/js/20.74b5774d.js rename to docs/assets/js/20.981df060.js index 0272c4b..539a753 100644 --- a/docs/assets/js/20.74b5774d.js +++ b/docs/assets/js/20.981df060.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{295:function(t,n,s){"use strict";s.r(n);var a=s(7),e=Object(a.a)({},(function(){var t=this,n=t._self._c;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"性能测试"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#性能测试"}},[t._v("#")]),t._v(" 性能测试")]),t._v(" "),n("p",[t._v("测试服务器配置:"),n("code",[t._v("CentOS 7 x86_64 1H1G")])]),t._v(" "),n("div",{staticClass:"language-bash extra-class"},[n("pre",{pre:!0,attrs:{class:"language-bash"}},[n("code",[t._v("Architecture: x86_64\nCPU op-mode"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(": "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("32")]),t._v("-bit, "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("64")]),t._v("-bit\nByte Order: Little Endian\nCPU"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(": "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\nOn-line CPU"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" list: "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\nThread"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" per core: "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\nCore"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" per socket: "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\nSocket"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(": "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\nNUMA node"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(": "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\nVendor ID: GenuineIntel\nCPU family: "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),t._v("\nModel: "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("61")]),t._v("\nModel name: Intel Core Processor "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Broadwell, no TSX, IBRS"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nStepping: "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v("\nCPU MHz: "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2394.454")]),t._v("\nBogoMIPS: "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("4788.90")]),t._v("\nHypervisor vendor: Microsoft\nVirtualization type: full\nL1d cache: 32K\nL1i cache: 32K\nL2 cache: 4096K\nL3 cache: 16384K\nNUMA node0 CPU"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(": "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n")])])]),n("p",[t._v("一共安装6个服务,运行一个星期,实际使用内存不到400M")]),t._v(" "),n("p",[n("img",{attrs:{src:"/linux-memory.png",alt:"linux-memory"}})]),t._v(" "),n("p",[t._v("以下时所有服务的性能监控,内存消耗(MEM USAGE)\n从小到大依次为:"),n("code",[t._v("trojan-panel-redis > trojan-panel-ui < trojan-panel-caddy < trojan-panel < trojan-panel-mariadb < trojan-panel-core")])]),t._v(" "),n("p",[n("img",{attrs:{src:"/docker-memory.png",alt:"docker-memory"}})])])}),[],!1,null,null,null);n.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{297:function(t,n,s){"use strict";s.r(n);var a=s(7),e=Object(a.a)({},(function(){var t=this,n=t._self._c;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"性能测试"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#性能测试"}},[t._v("#")]),t._v(" 性能测试")]),t._v(" "),n("p",[t._v("测试服务器配置:"),n("code",[t._v("CentOS 7 x86_64 1H1G")])]),t._v(" "),n("div",{staticClass:"language-bash extra-class"},[n("pre",{pre:!0,attrs:{class:"language-bash"}},[n("code",[t._v("Architecture: x86_64\nCPU op-mode"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(": "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("32")]),t._v("-bit, "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("64")]),t._v("-bit\nByte Order: Little Endian\nCPU"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(": "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\nOn-line CPU"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" list: "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\nThread"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" per core: "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\nCore"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" per socket: "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\nSocket"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(": "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\nNUMA node"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(": "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\nVendor ID: GenuineIntel\nCPU family: "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("6")]),t._v("\nModel: "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("61")]),t._v("\nModel name: Intel Core Processor "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Broadwell, no TSX, IBRS"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\nStepping: "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v("\nCPU MHz: "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("2394.454")]),t._v("\nBogoMIPS: "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("4788.90")]),t._v("\nHypervisor vendor: Microsoft\nVirtualization type: full\nL1d cache: 32K\nL1i cache: 32K\nL2 cache: 4096K\nL3 cache: 16384K\nNUMA node0 CPU"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("s"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(": "),n("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n")])])]),n("p",[t._v("一共安装6个服务,运行一个星期,实际使用内存不到400M")]),t._v(" "),n("p",[n("img",{attrs:{src:"/linux-memory.png",alt:"linux-memory"}})]),t._v(" "),n("p",[t._v("以下时所有服务的性能监控,内存消耗(MEM USAGE)\n从小到大依次为:"),n("code",[t._v("trojan-panel-redis > trojan-panel-ui < trojan-panel-caddy < trojan-panel < trojan-panel-mariadb < trojan-panel-core")])]),t._v(" "),n("p",[n("img",{attrs:{src:"/docker-memory.png",alt:"docker-memory"}})])])}),[],!1,null,null,null);n.default=e.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/21.92ace509.js b/docs/assets/js/21.052e1b41.js similarity index 96% rename from docs/assets/js/21.92ace509.js rename to docs/assets/js/21.052e1b41.js index 81a24da..16c670c 100644 --- a/docs/assets/js/21.92ace509.js +++ b/docs/assets/js/21.052e1b41.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{296:function(t,e,r){"use strict";r.r(e);var a=r(7),s=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"性能调优"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#性能调优"}},[t._v("#")]),t._v(" 性能调优")]),t._v(" "),e("h2",{attrs:{id:"定时重启"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#定时重启"}},[t._v("#")]),t._v(" 定时重启")]),t._v(" "),e("p",[t._v("每天凌晨4点重启服务的crontab定时任务")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),t._v(" * * * /sbin/reboot\n")])])]),e("h2",{attrs:{id:"网络加速"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#网络加速"}},[t._v("#")]),t._v(" 网络加速")]),t._v(" "),e("ol",[e("li",[e("a",{attrs:{href:"https://github.com/Chikage0o0/Linux-NetSpeed",target:"_blank",rel:"noopener noreferrer"}},[t._v("Chikage0o0/Linux-NetSpeed"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/ylx2016/Linux-NetSpeed",target:"_blank",rel:"noopener noreferrer"}},[t._v("ylx2016/Linux-NetSpeed"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/teddysun/across#bbrsh",target:"_blank",rel:"noopener noreferrer"}},[t._v("teddysun/across#bbrsh"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/cx9208/bbrplus",target:"_blank",rel:"noopener noreferrer"}},[t._v("cx9208/bbrplus(archive)"),e("OutboundLink")],1)])])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{293:function(t,e,r){"use strict";r.r(e);var a=r(7),s=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"性能调优"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#性能调优"}},[t._v("#")]),t._v(" 性能调优")]),t._v(" "),e("h2",{attrs:{id:"定时重启"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#定时重启"}},[t._v("#")]),t._v(" 定时重启")]),t._v(" "),e("p",[t._v("每天凌晨4点重启服务的crontab定时任务")]),t._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[e("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(" "),e("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),t._v(" * * * /sbin/reboot\n")])])]),e("h2",{attrs:{id:"网络加速"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#网络加速"}},[t._v("#")]),t._v(" 网络加速")]),t._v(" "),e("ol",[e("li",[e("a",{attrs:{href:"https://github.com/Chikage0o0/Linux-NetSpeed",target:"_blank",rel:"noopener noreferrer"}},[t._v("Chikage0o0/Linux-NetSpeed"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/ylx2016/Linux-NetSpeed",target:"_blank",rel:"noopener noreferrer"}},[t._v("ylx2016/Linux-NetSpeed"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/teddysun/across#bbrsh",target:"_blank",rel:"noopener noreferrer"}},[t._v("teddysun/across#bbrsh"),e("OutboundLink")],1)]),t._v(" "),e("li",[e("a",{attrs:{href:"https://github.com/cx9208/bbrplus",target:"_blank",rel:"noopener noreferrer"}},[t._v("cx9208/bbrplus(archive)"),e("OutboundLink")],1)])])])}),[],!1,null,null,null);e.default=s.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/22.b693e33d.js b/docs/assets/js/22.b693e33d.js new file mode 100644 index 0000000..e58d2fb --- /dev/null +++ b/docs/assets/js/22.b693e33d.js @@ -0,0 +1 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{294:function(r,t,a){"use strict";a.r(t);var e=a(7),n=Object(e.a)({},(function(){var r=this,t=r._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":r.$parent.slotKey}},[t("h1",{attrs:{id:"工具推荐"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#工具推荐"}},[r._v("#")]),r._v(" 工具推荐")]),r._v(" "),t("h2",{attrs:{id:"客户端"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#客户端"}},[r._v("#")]),r._v(" 客户端")]),r._v(" "),t("h3",{attrs:{id:"xray"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#xray"}},[r._v("#")]),r._v(" Xray")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/XTLS/Xray-core#gui-clients",target:"_blank",rel:"noopener noreferrer"}},[r._v("Xray客户端"),t("OutboundLink")],1)]),r._v(" "),t("h3",{attrs:{id:"trojan-gfw-trojan-go"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#trojan-gfw-trojan-go"}},[r._v("#")]),r._v(" Trojan-gfw & Trojan-go")]),r._v(" "),t("ul",[t("li",[r._v("Android: "),t("a",{attrs:{href:"https://github.com/trojan-gfw/igniter",target:"_blank",rel:"noopener noreferrer"}},[r._v("igniter"),t("OutboundLink")],1),r._v(" / "),t("a",{attrs:{href:"https://github.com/p4gefau1t/trojan-go-android",target:"_blank",rel:"noopener noreferrer"}},[r._v("trojan-go-android"),t("OutboundLink")],1)]),r._v(" "),t("li",[r._v("IOS: "),t("a",{attrs:{href:"https://apps.apple.com/us/app/shadowrocket/id932747118",target:"_blank",rel:"noopener noreferrer"}},[r._v("Shadowrocket"),t("OutboundLink")],1)]),r._v(" "),t("li",[r._v("Windows/Mac/Linux: "),t("a",{attrs:{href:"https://github.com/2dust/v2rayN",target:"_blank",rel:"noopener noreferrer"}},[r._v("v2rayN"),t("OutboundLink")],1),r._v(" / "),t("a",{attrs:{href:"https://github.com/Fndroid/clash_for_windows_pkg",target:"_blank",rel:"noopener noreferrer"}},[r._v("Clash for Windows"),t("OutboundLink")],1),r._v(" / "),t("a",{attrs:{href:"https://github.com/Qv2ray/Qv2ray",target:"_blank",rel:"noopener noreferrer"}},[r._v("Qv2ray(archive)"),t("OutboundLink")],1)])]),r._v(" "),t("h3",{attrs:{id:"hysteria"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hysteria"}},[r._v("#")]),r._v(" Hysteria")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://hysteria.network/zh/docs/installation/",target:"_blank",rel:"noopener noreferrer"}},[r._v("Hysteria客户端"),t("OutboundLink")],1)]),r._v(" "),t("h2",{attrs:{id:"申请免费证书"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#申请免费证书"}},[r._v("#")]),r._v(" 申请免费证书")]),r._v(" "),t("ol",[t("li",[t("a",{attrs:{href:"https://github.com/acmesh-official/acme.sh",target:"_blank",rel:"noopener noreferrer"}},[r._v("ACME"),t("OutboundLink")],1),r._v("(推荐)")]),r._v(" "),t("li",[t("a",{attrs:{href:"https://freessl.cn/",target:"_blank",rel:"noopener noreferrer"}},[r._v("FreeSSL"),t("OutboundLink")],1),r._v("(注册需要并绑定手机)")])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/22.fa004d0a.js b/docs/assets/js/22.fa004d0a.js deleted file mode 100644 index 742d0d0..0000000 --- a/docs/assets/js/22.fa004d0a.js +++ /dev/null @@ -1 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{299:function(r,t,a){"use strict";a.r(t);var e=a(7),n=Object(e.a)({},(function(){var r=this,t=r._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":r.$parent.slotKey}},[t("h1",{attrs:{id:"工具推荐"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#工具推荐"}},[r._v("#")]),r._v(" 工具推荐")]),r._v(" "),t("h2",{attrs:{id:"客户端"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#客户端"}},[r._v("#")]),r._v(" 客户端")]),r._v(" "),t("h3",{attrs:{id:"xray"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#xray"}},[r._v("#")]),r._v(" Xray")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://xtls.github.io/links.html#%E5%9B%BE%E5%BD%A2%E5%8C%96%E5%AE%A2%E6%88%B7%E7%AB%AF",target:"_blank",rel:"noopener noreferrer"}},[r._v("Xray客户端"),t("OutboundLink")],1)]),r._v(" "),t("h3",{attrs:{id:"trojan-gfw-trojan-go"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#trojan-gfw-trojan-go"}},[r._v("#")]),r._v(" Trojan-gfw & Trojan-go")]),r._v(" "),t("ul",[t("li",[r._v("Android: "),t("a",{attrs:{href:"https://github.com/trojan-gfw/igniter",target:"_blank",rel:"noopener noreferrer"}},[r._v("igniter"),t("OutboundLink")],1),r._v(" / "),t("a",{attrs:{href:"https://github.com/p4gefau1t/trojan-go-android",target:"_blank",rel:"noopener noreferrer"}},[r._v("trojan-go-android"),t("OutboundLink")],1)]),r._v(" "),t("li",[r._v("IOS: "),t("a",{attrs:{href:"https://apps.apple.com/us/app/shadowrocket/id932747118",target:"_blank",rel:"noopener noreferrer"}},[r._v("Shadowrocket"),t("OutboundLink")],1)]),r._v(" "),t("li",[r._v("Windows/Mac/Linux: "),t("a",{attrs:{href:"https://github.com/2dust/v2rayN",target:"_blank",rel:"noopener noreferrer"}},[r._v("v2rayN"),t("OutboundLink")],1),r._v(" / "),t("a",{attrs:{href:"https://github.com/Fndroid/clash_for_windows_pkg",target:"_blank",rel:"noopener noreferrer"}},[r._v("Clash for Windows"),t("OutboundLink")],1),r._v(" / "),t("a",{attrs:{href:"https://github.com/Qv2ray/Qv2ray",target:"_blank",rel:"noopener noreferrer"}},[r._v("Qv2ray(archive)"),t("OutboundLink")],1)])]),r._v(" "),t("h3",{attrs:{id:"hysteria"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#hysteria"}},[r._v("#")]),r._v(" Hysteria")]),r._v(" "),t("p",[t("a",{attrs:{href:"https://hysteria.network/zh/docs/installation/",target:"_blank",rel:"noopener noreferrer"}},[r._v("Hysteria客户端"),t("OutboundLink")],1)]),r._v(" "),t("h2",{attrs:{id:"申请免费证书"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#申请免费证书"}},[r._v("#")]),r._v(" 申请免费证书")]),r._v(" "),t("ol",[t("li",[t("a",{attrs:{href:"https://github.com/acmesh-official/acme.sh",target:"_blank",rel:"noopener noreferrer"}},[r._v("ACME"),t("OutboundLink")],1),r._v("(推荐)")]),r._v(" "),t("li",[t("a",{attrs:{href:"https://freessl.cn/",target:"_blank",rel:"noopener noreferrer"}},[r._v("FreeSSL"),t("OutboundLink")],1),r._v("(需要注册并绑定手机)")])])])}),[],!1,null,null,null);t.default=n.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/23.7f6b08f0.js b/docs/assets/js/23.aa93a8a9.js similarity index 96% rename from docs/assets/js/23.7f6b08f0.js rename to docs/assets/js/23.aa93a8a9.js index 2bcb53b..88e8612 100644 --- a/docs/assets/js/23.7f6b08f0.js +++ b/docs/assets/js/23.aa93a8a9.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{298:function(t,r,e){"use strict";e.r(r);var a=e(7),n=Object(a.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"使用cdn"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#使用cdn"}},[t._v("#")]),t._v(" 使用CDN")]),t._v(" "),r("h2",{attrs:{id:"cloudflare"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#cloudflare"}},[t._v("#")]),t._v(" Cloudflare")]),t._v(" "),r("blockquote",[r("p",[t._v("Cloudflare: https://www.cloudflare.com/zh-cn/")])]),t._v(" "),r("p",[t._v("注意:")]),t._v(" "),r("ol",[r("li",[r("p",[t._v("节点端口必须使用"),r("a",{attrs:{href:"https://developers.cloudflare.com/fundamentals/get-started/reference/network-ports/",target:"_blank",rel:"noopener noreferrer"}},[t._v("CF指定的端口"),r("OutboundLink")],1)])]),t._v(" "),r("li",[r("p",[t._v("Cloudflare 代理状态必须设置为"),r("strong",[t._v("已代理")]),t._v(",SSL/TLS加密模式必须设置为"),r("strong",[t._v("完全")]),t._v("或者"),r("strong",[t._v("完全(严格)")])])])]),t._v(" "),r("p",[r("img",{attrs:{src:"/tuorial/cdn-1.png",alt:"cdn-1"}})]),t._v(" "),r("p",[r("img",{attrs:{src:"/tuorial/cdn-2.png",alt:"cdn-2"}})]),t._v(" "),r("ol",{attrs:{start:"3"}},[r("li",[t._v("如果前端开启了https,则必须使用"),r("a",{attrs:{href:"https://developers.cloudflare.com/fundamentals/get-started/reference/network-ports/",target:"_blank",rel:"noopener noreferrer"}},[t._v("CF指定的https端口"),r("OutboundLink")],1),t._v(" ,http同理,否则无法通过域名访问面板")])])])}),[],!1,null,null,null);r.default=n.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{295:function(t,r,e){"use strict";e.r(r);var a=e(7),n=Object(a.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"使用cdn"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#使用cdn"}},[t._v("#")]),t._v(" 使用CDN")]),t._v(" "),r("h2",{attrs:{id:"cloudflare"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#cloudflare"}},[t._v("#")]),t._v(" Cloudflare")]),t._v(" "),r("blockquote",[r("p",[t._v("Cloudflare: https://www.cloudflare.com/zh-cn/")])]),t._v(" "),r("p",[t._v("注意:")]),t._v(" "),r("ol",[r("li",[r("p",[t._v("节点端口必须使用"),r("a",{attrs:{href:"https://developers.cloudflare.com/fundamentals/get-started/reference/network-ports/",target:"_blank",rel:"noopener noreferrer"}},[t._v("CF指定的端口"),r("OutboundLink")],1)])]),t._v(" "),r("li",[r("p",[t._v("Cloudflare 代理状态必须设置为"),r("strong",[t._v("已代理")]),t._v(",SSL/TLS加密模式必须设置为"),r("strong",[t._v("完全")]),t._v("或者"),r("strong",[t._v("完全(严格)")])])])]),t._v(" "),r("p",[r("img",{attrs:{src:"/tuorial/cdn-1.png",alt:"cdn-1"}})]),t._v(" "),r("p",[r("img",{attrs:{src:"/tuorial/cdn-2.png",alt:"cdn-2"}})]),t._v(" "),r("ol",{attrs:{start:"3"}},[r("li",[t._v("如果前端开启了https,则必须使用"),r("a",{attrs:{href:"https://developers.cloudflare.com/fundamentals/get-started/reference/network-ports/",target:"_blank",rel:"noopener noreferrer"}},[t._v("CF指定的https端口"),r("OutboundLink")],1),t._v(" ,http同理,否则无法通过域名访问面板")])])])}),[],!1,null,null,null);r.default=n.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/7.d93bbcbb.js b/docs/assets/js/7.6af79d70.js similarity index 98% rename from docs/assets/js/7.d93bbcbb.js rename to docs/assets/js/7.6af79d70.js index d273e92..5f26b13 100644 --- a/docs/assets/js/7.d93bbcbb.js +++ b/docs/assets/js/7.6af79d70.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{289:function(t,r,a){"use strict";a.r(r);var e=a(7),s=Object(e.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h2",{attrs:{id:"🚀-安装"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#🚀-安装"}},[t._v("#")]),t._v(" 🚀 安装")]),t._v(" "),r("ol",[r("li",[r("p",[t._v("联机(推荐)")]),t._v(" "),r("div",{staticClass:"language-shell extra-class"},[r("pre",{pre:!0,attrs:{class:"language-shell"}},[r("code",[r("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("source")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),r("span",{pre:!0,attrs:{class:"token function"}},[t._v("curl")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-L")]),t._v(" https://github.com/trojanpanel/install-script/raw/main/install_script.sh"),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),r("li",[r("p",[t._v("单机")]),t._v(" "),r("div",{staticClass:"language-shell extra-class"},[r("pre",{pre:!0,attrs:{class:"language-shell"}},[r("code",[r("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("source")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),r("span",{pre:!0,attrs:{class:"token function"}},[t._v("curl")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-L")]),t._v(" https://github.com/trojanpanel/install-script/raw/main/install_script_standalone.sh"),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),r("li",[r("p",[r("a",{attrs:{href:"https://github.com/trojanpanel/install-script/tree/main/README_ZH.md",target:"_blank",rel:"noopener noreferrer"}},[t._v("安装旧版本"),r("OutboundLink")],1)])])]),t._v(" "),r("h2",{attrs:{id:"✨-community"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#✨-community"}},[t._v("#")]),t._v(" ✨ Community")]),t._v(" "),r("p",[t._v("Telegram 频道: "),r("a",{attrs:{href:"https://t.me/TrojanPanel",target:"_blank",rel:"noopener noreferrer"}},[t._v("Trojan Panel"),r("OutboundLink")],1)]),t._v(" "),r("h2",{attrs:{id:"🔍-报告缺陷与问题"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#🔍-报告缺陷与问题"}},[t._v("#")]),t._v(" 🔍 报告缺陷与问题")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/trojanpanel/install-script/issues",target:"_blank",rel:"noopener noreferrer"}},[t._v("Issues"),r("OutboundLink")],1)]),t._v(" "),r("h2",{attrs:{id:"💞-支持"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#💞-支持"}},[t._v("#")]),t._v(" 💞 支持")]),t._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/trojan-gfw/trojan",target:"_blank",rel:"noopener noreferrer"}},[t._v("trojan"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/p4gefau1t/trojan-go",target:"_blank",rel:"noopener noreferrer"}},[t._v("trojan-go"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/XTLS/Xray-core",target:"_blank",rel:"noopener noreferrer"}},[t._v("Xray-core"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/HyNetwork/hysteria",target:"_blank",rel:"noopener noreferrer"}},[t._v("hysteria"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/klzgrad/naiveproxy",target:"_blank",rel:"noopener noreferrer"}},[t._v("naiveproxy"),r("OutboundLink")],1)])]),t._v(" "),r("h2",{attrs:{id:"🌟-star随时间变化"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#🌟-star随时间变化"}},[t._v("#")]),t._v(" 🌟 Star随时间变化")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/trojanpanel/install-script",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"https://starchart.cc/trojanpanel/install-script.svg",alt:"Stargazers over time"}}),r("OutboundLink")],1)])])}),[],!1,null,null,null);r.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{286:function(t,r,a){"use strict";a.r(r);var e=a(7),s=Object(e.a)({},(function(){var t=this,r=t._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h2",{attrs:{id:"🚀-安装"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#🚀-安装"}},[t._v("#")]),t._v(" 🚀 安装")]),t._v(" "),r("ol",[r("li",[r("p",[t._v("联机(推荐)")]),t._v(" "),r("div",{staticClass:"language-shell extra-class"},[r("pre",{pre:!0,attrs:{class:"language-shell"}},[r("code",[r("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("source")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),r("span",{pre:!0,attrs:{class:"token function"}},[t._v("curl")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-L")]),t._v(" https://github.com/trojanpanel/install-script/raw/main/install_script.sh"),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),r("li",[r("p",[t._v("单机")]),t._v(" "),r("div",{staticClass:"language-shell extra-class"},[r("pre",{pre:!0,attrs:{class:"language-shell"}},[r("code",[r("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v("source")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),r("span",{pre:!0,attrs:{class:"token function"}},[t._v("curl")]),t._v(" "),r("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-L")]),t._v(" https://github.com/trojanpanel/install-script/raw/main/install_script_standalone.sh"),r("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n")])])])]),t._v(" "),r("li",[r("p",[r("a",{attrs:{href:"https://github.com/trojanpanel/install-script/tree/main/README_ZH.md",target:"_blank",rel:"noopener noreferrer"}},[t._v("安装旧版本"),r("OutboundLink")],1)])])]),t._v(" "),r("h2",{attrs:{id:"✨-community"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#✨-community"}},[t._v("#")]),t._v(" ✨ Community")]),t._v(" "),r("p",[t._v("Telegram 频道: "),r("a",{attrs:{href:"https://t.me/TrojanPanel",target:"_blank",rel:"noopener noreferrer"}},[t._v("Trojan Panel"),r("OutboundLink")],1)]),t._v(" "),r("h2",{attrs:{id:"🔍-报告缺陷与问题"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#🔍-报告缺陷与问题"}},[t._v("#")]),t._v(" 🔍 报告缺陷与问题")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/trojanpanel/install-script/issues",target:"_blank",rel:"noopener noreferrer"}},[t._v("Issues"),r("OutboundLink")],1)]),t._v(" "),r("h2",{attrs:{id:"💞-支持"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#💞-支持"}},[t._v("#")]),t._v(" 💞 支持")]),t._v(" "),r("ul",[r("li",[r("a",{attrs:{href:"https://github.com/trojan-gfw/trojan",target:"_blank",rel:"noopener noreferrer"}},[t._v("trojan"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/p4gefau1t/trojan-go",target:"_blank",rel:"noopener noreferrer"}},[t._v("trojan-go"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/XTLS/Xray-core",target:"_blank",rel:"noopener noreferrer"}},[t._v("Xray-core"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/HyNetwork/hysteria",target:"_blank",rel:"noopener noreferrer"}},[t._v("hysteria"),r("OutboundLink")],1)]),t._v(" "),r("li",[r("a",{attrs:{href:"https://github.com/klzgrad/naiveproxy",target:"_blank",rel:"noopener noreferrer"}},[t._v("naiveproxy"),r("OutboundLink")],1)])]),t._v(" "),r("h2",{attrs:{id:"🌟-star随时间变化"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#🌟-star随时间变化"}},[t._v("#")]),t._v(" 🌟 Star随时间变化")]),t._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/trojanpanel/install-script",target:"_blank",rel:"noopener noreferrer"}},[r("img",{attrs:{src:"https://starchart.cc/trojanpanel/install-script.svg",alt:"Stargazers over time"}}),r("OutboundLink")],1)])])}),[],!1,null,null,null);r.default=s.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/8.63d12875.js b/docs/assets/js/8.a4bae3c5.js similarity index 99% rename from docs/assets/js/8.63d12875.js rename to docs/assets/js/8.a4bae3c5.js index fca3a78..1da2ae1 100644 --- a/docs/assets/js/8.63d12875.js +++ b/docs/assets/js/8.a4bae3c5.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{285:function(t,s,a){"use strict";a.r(s);var r=a(7),e=Object(r.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"api文档"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#api文档"}},[t._v("#")]),t._v(" API文档")]),t._v(" "),s("h2",{attrs:{id:"开发前必读"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#开发前必读"}},[t._v("#")]),t._v(" 开发前必读")]),t._v(" "),s("ol",[s("li",[s("p",[t._v("接口认证和鉴权")]),t._v(" "),s("p",[t._v("除了开放接口,其余接口必须设置请求头"),s("code",[t._v("Authorization")]),t._v("用于认证和鉴权")]),t._v(" "),s("p",[s("code",[t._v("Authorization")]),t._v("值格式为"),s("code",[t._v("Bearer ${Token}")])]),t._v(" "),s("p",[s("code",[t._v("${Token}")]),t._v("可通过登录接口("),s("code",[t._v("/api/auth/login")]),t._v(")获得")])]),t._v(" "),s("li",[s("p",[t._v("通用返回对象")]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")])])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("code")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("状态码 20000/成功 50000/系统错误 50014/登录过期 50008/认证失败 50401/未认证 50403/暂无权限")])]),t._v(" "),s("tr",[s("td",[t._v("type")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("类型 success/成功 error/错误 warning/警告")])]),t._v(" "),s("tr",[s("td",[t._v("data")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("返回值")])])])]),t._v(" "),s("h2",{attrs:{id:"开放接口"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#开放接口"}},[t._v("#")]),t._v(" 开放接口")]),t._v(" "),s("h3",{attrs:{id:"验证码"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#验证码"}},[t._v("#")]),t._v(" 验证码")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/auth/generateCaptcha")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"captchaId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"VeC7Raoxo33hQTrnJT8s"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"captchaImg"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPAAAABQCAIAAACoK28rAAAXWUlEQVR4nOx9CZAkR7ne/2dmHX3OubPn7M5qd/Wk1a6u1c3TQ9J7SICQJWwMFuAIjpAMgQOjMIccwmGwjWwwFg4UYLBlwNxWcAhxSAKFOAxISFq0uhG7Wu2hPeae7unu6qrKzP9FVfW0enqu7pmene7Z/mJitzorMyur6+s/v/zzzyzxfO65DrYFADL6MDQrOBICSWIAYDEJgBy1p3mUcjoDAUxJwX8EhCAZalzpNjUITKI5Bn4HoASZoMpTZgaZC15XcKyNaadE+SiidXMyO6Jv0Fymg3sA4FP8Pp0hNAhNrsDyIzUVEYDPVwWpo7vC8K8KYQoSoIaUtaWSsWJmPc3MbIEagBiBJL7SbVlhCA2MqCimPW2PY7qo1eqw09EtaIi4K/KoBSg7oDnKIDFO3URUVWgWQpfRPMwu/VYROGgFTDDtKGNlm7SyYAA8tM2MwJakERRDP+yxfI4JV0/aLd99aUGAyLygOzYyKBPAJMQzMR5P+XI4YEXA5hKhETHJEwkem4/QZaw4s6PfqsV8RAICTahpFZigxcOQAZsRIOVqDYAMhCJpMQJQDJAw7lPBaPmvSMWB54MDkeqMWWmwwHNO+OPDKARJWc4mkK8xew0U0U89oGmNTO1gW6K/ZbyJORDjvkCtA91Mpzmby7BC26wZGipQzzzsnbkGBLL91SA64sl+ZtqBtXYd0Eq7DimJwhDp7sgqAxEi9Jo9EZsdXXzNQpc5XQtfT7HN9olz1L4O/uUARaqpY1n1EIoUQ6HI4+hz1KHK4JoIQQVPG6oFZougkoFGd58qTGon742cAEQeS4pUB0k/OMc4KOXDcBq7ACCrJif87CzMaEJmE0FRG/FAT4EkptoWOgQnYCogrWOiqcgHMALzDJIh16RXunn1Yi6+8XiKCTMwyIwTae15oAO9kWdDjLCbd4dDR52RkwsMChfH7GUiNxHkldnwalsakkEwKPTJ98nngUmOe1qyYKChp8aEHMlkJbcHAWhirubNo9lqlK9oWuR72ncLMKINEjnkDDQPFLPJAlYUtRt5PGrqu+tidjMMIlc9EAIqF0xmSfIEuqHjOeGRCv4nFoyckSElhWcxXwd2nBEBQ2Iok0AFZQTWYbkVScA4NeuZGokks2ORXA6IxAFCVy0CcBeUFdRNAaeD366a6pDqE6NtZjcJKCS0RCj7oREAKZDUjIhp8CzoMh1NOOHH/HBOimFpMG1xlRJFjpT1reVqnm+BEsB98E0gRNuJ9Hy97gRVyPkq53dMnwvMI2hQMWAeKovCGVIs9ziLHF21mb2CMMOxoGSBhhYqGAJ6vDRZKDRJhtKEhOVIzbLSJgoYnOAuRx2R21VcUazLcGzOi6rxw2vyYoAK7XzpsxJ8YiDZXYekj0iCABYgc8GYQL8z0BOBbS4gL4CKgxbEXCQGkpSBwmSleYml3s+imd0m9+LAwmkzyQNax3zyOIrQYecY6Bos7SgQIG3FkCb8gM0G02nheFpwJIvLyFpLzQrKjHOv4YQmz0amgEu7OEAa7SQBI0fA5ChLdhPifCpnLj4wD6wRDOywDgy9ioGfJFFAFaNQPRcNnjTRtJlV1G7D7qeyNW2zvXwwwymVaOrbDwUGhTbbMQKb7RooFJjcd5ShQ/JYTHpaZHzb5jIhvNxUPUUl4oHZpka6jDRPwDrDhEImsJ3IwS+CYQMXpBUWJjDRVU3oeR49Acjka65HJCAG2gxss3CQBESxPJMyl+QJBFxj9mTkbG67paMtSJYVBCWxIRkSIteBnS4FCBBIAaaHLhPlzJFdNJiq5O5UNEEoQZeM6Am6DjMS2i0wZEAEygXG0Qj6CWAcpOtNHHkuP/Ls5OALhexR5eaUG8gSbiVELG1398fWnZns320ke8rVahN4MZAaBCF9CZgPzEdtkp6K5ZGkRvyxXqMbATtFBz6fe27p91PjDdeFNrlnhS2pKNCWZEryOZqKsjazwkQeuvAYVzbKYWZH+QXTXYYjiYlAQ9v+FBEsLlPCHfUSM8J7akXVM9UKtQRh0eQIM2KgJTAGTBBjavClx7Ov/ip77A9auQtUipjacn7veW+Ord1RV2MEE2metJl9ighdxuKmzdvkLiPmB+rCloQUDAF9jq7ASIfYkoQmxrWFaphb5c5aMB0JD3/KO40IXUbB0yIn63Ptz/P4vAKacfIc9IvIDfBdiCUnTj5338ln7/OL4/XeZs/ua/sufTuyuhXEqSZ0JdrkXgQiC53wAu4CQd5inCjyciQ9DQSaY4K7ytI+calZdVgigkCdEi4CjfvxWsxzjY/Jc9CMkTPJpAemDQ47+cpPP1EcO7ToO42v27Hl+o8HP456MAuh9219I8nZ/eFlGL1du566t/5Gzo5FRzudhuSOLLTQkC4qriFvMtdAhcG4UGhQYdidIZQRc0N9yce9WLksQ+oyHQZaAxv3YvPMF9b7REij8gO9MT45zuJ5wIA/4y88cuL331zKzabPuHjTP3yoriLVJl1NTC7I5oaj3kFkGVX5Twd+RySUDCZinFFwMLV0pTQTLpBMy8tK29NCTzfABOgoQ2CgQFLCjbzUEZYYQZnxBtFwQWuWAPJs8hMA0Hnm3w498cNo5BeBCSux4az4hrNifWcIO83tBDKhijln9PDkoaeyL/+J9DTuZQ8+MXlob2pgT+0tqSa0HMss5caWiEX4/ipxOji5PY5WqJg1QhQhGg0QJcdwxhsMphwQszqYiaAgjVBVGx1GsdswpNyw6JZM+4Z1IvQSgy6kwDcBSbsxEc917bx65KmfAUBi/a7Os69ID+xBUT09ycy4ke5Lb714zZ6bXn34S8WRaQ9u8E/3prZcAFjreoUZhB7Plo+3/s9Pip7OWYuhuewLRhpI7pkVti6iAOiUq70wGsmUFBpsRCIGaCiCtPIrdDMipIRrMonAtO6Sam2pHlUQ/BBiH9UTizv/d0ieDYoD0yQFoibP7tl1rXKcru03mskBlh6bv3Iz3Tfwlk8c/PGnvcxgOdHLDOZPvJTYcPY8BQ0mGDBJiiHOZ6E73nA5Wk0R4LZEcs9asEZ+j+vCp0bu/3Pxtcw3ps7/aNd1i2tDQ+AxDkIkXS/QruEceOj2DdRzzmJdqMNV4KX75XyYs5ymTq0TnB9nlNQ60ANax4FzxAJRev7L1fRFheaZinFSHEK3N+sYA815LL3u0lvJtWHeOcIymBlf97p3H/nFf69MzB15en5CW8zqFiXLOyeheSrRJGyuQkPIPVfZqof3vHf8kyP3jYSBtssBAnpxeN9jxx45Nnk4UxxDxE67Z1vX2Vf0/8Pm9LZZi2gwC7Apx5ljFTrkoKk8UwPnKS1i2k4kA4t8IIE9NuuI8rOAsjGl1hMwDicBZMXVDcTZx0t192ahtCdpoFUkJ4HxSeQyojD5JrA6AjmSm3abHWsrjXTh5F/nL6ID6a15MIKY0d2oKUIba7pqb8RKoep7X/rasMoavjf52/829gNJyzVEnvQmvrbvrpfHXqxMHMwdG8wd++PRh1/X/4a37Xwfx+p9JkZJUMgeh8eZGOgKF0BX8kWTjSwPumMqgREYRIzzaGFpqpwTQcPUVhBL1mOhnGdhsAVTLJYnz0KrGFzRjQEhi+dqryux4exKQktngXFdQTkF5UTHMy10SUOLvu7aW9AkaJTxdsj7j6Pf/Xnu8VnPmpBa3MRnZamcn/nCox8ecU7Mlf8PR3+VLeb+7cX/Ayu2pfCAORW+Nh7OnRSAxSsorXVa8GOI6ygkq6YYZyOGKCK6Um0mKs+tEIA7qcd8PVHvvcwFZMGvC4UfCIxgVErkxtAskjJA+LXXI+LTRm6ykK2jbNVn+ZqFbj1CV2KmyamRhUfk8EeGvnrAO97Y9lRd/X89/akym8/u2XPD9vduTp2pSb2SeeG+/fe8kgnM9rPDj/5k/z037bhlqhBmpu+tE+0w4xKLYwWhKU0wzNmgVOtDfncyLGiKZXymaARgJMoWFz4PBlIN2u0g/Jmh7ejJTtCMnDgGJhnJt1BIIIaGt+i6sZ5gk7kJ3dcCkqMu1KJPHik8fcfI/83rYjmFIUuindWFBrbkxdEnnx76Q3R80bprPnThndGyCwA4v+/Kc3ovueuJ214YfRIAfvryN67a/NZOqzeQKMDckDcJpHx4IAKxgQXCrsoVsQRKbRD8FU/nS9OEKrTjFZY+LvwE9yr90EsEmi55NppF3j0Ujv+CenU+DZqBCK+BdcjoStd18AiMWO1lq3+gZbedaHELvSCizRvKf+P60GfHvvmRoa9WshkRP93z7n5jTWMv/eAr340OYiLxnl23s+lPwWDW+8/99wa3wsBl/4GD3w4OALOhNY0hle0xAwpFK0zoV6fdixzKSjspvJTh8gr3AiLYXHaZTjxks6sat/sU98mzAkUexSwD6FxHME4TQTrWozeCPmd8WvdopHprLzunhZ746W/H7/+Nd2xQ5wK5zdMJ64xNqSvO73nnm81Na+tqX/Njpm8uXF7K7ui5/qr4+q9nG2meizL/zPCj0fFlG65LmbN4+ntj6/esff1jx38JAI8ef+jms28bI04ECMTpSD4Yym8MhLg+FrJngIBVdcuu4hMUSwq328xL4pqQIQnUBFBURkbZDV8ni4YvR9YzuwBMhUrDAy5DJQ0Yy9dej/YKhZMvVabY3f21F5+T0IXnD0xLH8/KvS/k974w+KXvr3nvjRvuuBWNVbI5xqy+OZsZ/6n3psvsM8KIiGndpQeTi/AJdLDSnoLPj+7VU56TnWvPmauq3evOjwidcUefyeztTl0a2CrIhgwuG11NMKeV9TUb92IG0wZTCESEec388IexHECrgEacfANNCkxy5MhTgiWydemNsRd+TUpWpiQ3n1d78WrJEds5u/uzDNJ66P/8+MA7P0Feff3I4vDXkcfLf7Q8y5Tvmfj/VWzu4ckv9t0csTkcdTXgTsvEPTj+l3Li5o7tc+WvPPXi6EuhT8OzYFRCgqbMUEDTkNA49zfja1aQRl6aBWl4ernYHIF3jqLl6kKCPDPQG77JUxNoLBQDXdna7NDIvp9Nq9NOJvt3115DtZXdce/nx+59iLS2d2wxN/SJrjRJKcezhX1/Gf1/D2V/+2SULffYM69+6sv9d/6b2q+0OOwLrVSE7T0XzpzaXDo+2fuW9534+pgqdYs7zLWfW/O2Xp4sZ/Aa6ooeKpyMDjrtnpiIz5Wtw+pKmumcFwxphvOHGfgxOA6gDchoeG3CS4PJodg0eyQRS2RYYpHhQNorHP3V3dpzKhN7dl1bVwTpLF6b7rdf1/Mv3pTYs9NY34u2yZJxs39d5w1Xbfv2fxm4+98hKxUZ/fbPi395ZXFNbyr0sMR/7n0rD8Nfrozv+PLad1WyOdyITDbwcmPOUHTQYS8w7O6wSo6m0cLRGAwGHTjECAw2NdsXTv45cTjuQcu7pLRXOPLAXcXRo5WJZkdfz3lvqque+gxe103XeEcHj3/ua9FmpmM/fHjDHbfUVUNzYre18UOdV4+q/Ac6Xz/zbGMtdKZYitFJmx3z50zbXccmA6Ey4RwvwEaa8rsxKEmgPGwOh4MqAUcb2MJTDz83euSBu9zxY5WJyPjGq/9VvQH+dffgfbf8s5N3f0c7gTDK/m7v6iA0APzz1EVznZLQSEJ7qjTFYHJ7/pzlDJ5yqMKLrKH0jCnsYCnc425Bn8W3rn9b7Y38lz//Qe2Zl4jiyKEjD35BFqqFyvq/e0+sb4ER3UzUPVGEtpm44Kzo2D85Um/xVkRj9anUJULzhRbMGVObp/jKicGQDUMWjJiQjUFJhdswzME1IcOgkaLoVGLy8FOH7r9zJpvXXn5z55lXLqLCxYyxjLUlR7fKNdJB27SY+d6DpUDqEvn4QkHrYorxnnJDD50BgAZk9ZSrTkCOQ9GBdQjKhAWijc++8fpGNL+RyBx49Piv/zfN2Cd13RXv6t71hsXVuRhCa6c0lyY6U4u76ukMwUTEabXQhrdl6hvM9CGtwSDgHIoKSr6RyIWHQCYsvKz6olvf24jmNwy5I0/PwmbEDVe+p/OsWUYyNWIxhPaOlcbprR7AtCIwuVUitF5AJ/janypihj67EvTUU2PgeZAI2dwkbrta4edGjz3ylSo2I7INV9/asf2ypdRcN6HlyLjzXGkSMXHJrqVc+/SEJWIFPx/OTjvz5/RkKYPJp63DC+cLEUFGAppD6wm/wUe/q6b7mwPbfPUtS2TzYgaFJ+76ZllTdvz9pUu8/GmILru01dWkt0CYb9YtRSp3zvBYG5ARkAegVmSzN3Ei+8reqsS1l769Y/vlS698moU+8vG71n34XfPEHg3f86ORb5VmJuPnnpl6/ZyurhpxcGzfk6/+rMbMP3j2v85z9sKNb9zes9T2nAL0JTYcHH8JACaKo/PnzLglZdwTb0A0WPO47TIv/6kqJdl/bs+59U2gzIVphB793gNj338wcenu9N9dFD//b6ytG0V3Wru+HBkv7Htp9HsP5J4o7UrDbHPzZ29rSAtON6xNbIoOMsWxgp+LG8lZs2Xc8dyUCe+NrTuFDVx2OIP7q1LWXX5zoyqv1tBElHvsmdxjz8xThsXsgbtvj+2aM7CmjXmwvXtn+fhQZv/O3gtmzXY489pT39Y935rnGtE8bjs3c7LyY6zvDLNzfaMqn0bo9FUXZ3/zxPwFUq87v/8zH7a21RGi2kYlNndsS5jJfLhT8zODj89F6KdOlGKmBRPbOv9m6ddtHredcqbFNsb6zmhg5dMIve1bd7ovH8388o/5P79YfPlVf3BE5xwWs0R3h9m/NnHx7o7rrojvrm+f0/mxtfu8ga75XCWVuvmtuz7Gcc7wX5z7VFMBAfesv/J3hx8AgL0nfn/9jnfMjPEfdQafHiwJzfN6Loo5DFARQy1QiWZ5gdWioeW09YUitkBMS12olhzWtv6+D76jgReYHwhYe0QoR86WIXz01OPvt97w+yMPadKuLH7/ua++/4KPsYpZQ19733n2y3LKCX3N9pv8BEcN3NPc1Uxh9ArkVQPkjXymq4EfLYcue801W//JwwfvA4Bnh5784uP/4doz/umm9IAidSRz4MGXf3gsW9qFds/6v+3v2BbtX082E0WNkjhoabXwu+l33vqN5au8TeiVwVt23Hx4Yv/+seejNSxf2XvnzDzrkptu3vWB8kcCkBYzHMUkMeO1V2u2UYn2t7IyYMg+eNEdl2ycM2jhnDUX3nbZZ6rmCAmBwkBRJleT6Ggk2hZ6xSCY8e7d//rKzW/846sPH57YP+aMsHBvu03prZdtvHp79zmzliKGqChcvt3yo8PlQJvQK4wtHdu3zL1UdjZE+7YsW4NaHG1CtxiiHQH0witUmhSF4y8OPfkjZ/gQAMV6B9bsuSmxqZEhbm0N3UpAAlQECLo1vdHO0MHDv/h84eR+Uj4pWRg8cOSBuwonXmrgJdqEbiVEey5rgzV626NThJGn7q96iwqRHv7zTxp4iWaXHJf031A+bpW5wGUCAjBfA0NltCadAQqDB2ZJPFkdq7QUNDuhB7rq2AZqdYN7BATSqu3lDk0J7c4SvR3ID+mhaMzrItqSozXAdGCetcE0b1XzHL3We2YiE2aj2NwmdGsAAbiriaM0W5jNABBfP0vYYHz9WQ28RJvQLQDuaQSQdss/rDV7bqzaCQkZX7PnpgZeouW/o1UPpohJ8O3VEGFndfcP3HB7sn8XN2PMsBIbdw7ccPsyxkO30WxgGoRL0m5VP91MxPq2bX7TR5ev/raFbl4ggHC1tHBmYB1SjW+yPO3QJnSTImBzUSsDZ7o1UAenVqhdzY625GhScFejDtRzdaQoAWoijqtGhDQWbUI3I8KBYMBjVLMLi9adLFxutAndjNAcvcRpPc+/aODzuedWug1ttNEwtAeFbawqtAndxqpCm9BtrCq0Cd3GqkKb0G2sKrQJ3caqQpvQbawqtAndxqpCm9BtrCq0Cd3GqkKb0G2sKvxjAAAA//8cxJWcgoqUiQAAAABJRU5ErkJggg=="')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("captchaId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("验证码id")])]),t._v(" "),s("tr",[s("td",[t._v("captchaImg")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("验证码图片")])])])]),t._v(" "),s("h3",{attrs:{id:"登录"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#登录"}},[t._v("#")]),t._v(" 登录")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/auth/login")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"username"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"sysadmin"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pass"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123456"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"captchaId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"y1mAtmYe4fErHN6vcYvo"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"captchaCode"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"25"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("username")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录用户名")])]),t._v(" "),s("tr",[s("td",[t._v("pass")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录密码")])]),t._v(" "),s("tr",[s("td",[t._v("captchaId")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("验证码id")])]),t._v(" "),s("tr",[s("td",[t._v("captchaCode")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("验证码值")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"token"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2NvdW50Vm8iOnsiaWQiOjEsInF1b3RhIjowLCJkb3dubG9hZCI6MCwidXBsb2FkIjowLCJ1c2VybmFtZSI6InN5c2FkbWluIiwiZW1haWwiOiIiLCJyb2xlSWQiOjEsImRlbGV0ZWQiOjAsInByZXNldEV4cGlyZSI6MCwicHJlc2V0UXVvdGEiOjAsImxhc3RMb2dpblRpbWUiOjAsImV4cGlyZVRpbWUiOjAsImNyZWF0ZVRpbWUiOiIwMDAxLTAxLTAxVDAwOjAwOjAwWiIsInJvbGVzIjpbInN5c2FkbWluIiwiYWRtaW4iLCJ1c2VyIl19LCJleHAiOjE2OTIzODM4MzQsImlzcyI6InRyb2phbi1wYW5lbCJ9.ymvQ_VPsCvxjNpQUPTZ3fjWTZJk-URujCt3vSI-bnw8"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("token")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("授权Token")])])])]),t._v(" "),s("h3",{attrs:{id:"注册"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#注册"}},[t._v("#")]),t._v(" 注册")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/auth/register")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"username"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123456"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pass"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123456"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"captchaId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"BqEEo9jEdZrmfzz8K7R9"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"captchaCode"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"9"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("username")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录用户名")])]),t._v(" "),s("tr",[s("td",[t._v("pass")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录密码")])]),t._v(" "),s("tr",[s("td",[t._v("captchaId")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("验证码id")])]),t._v(" "),s("tr",[s("td",[t._v("captchaCode")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("验证码值")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"系统默认设置"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#系统默认设置"}},[t._v("#")]),t._v(" 系统默认设置")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/auth/setting")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"registerEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"registerQuota"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"registerExpireDays"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trafficRankEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"captchaEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"emailEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"systemName"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Trojan Panel"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("registerEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开放注册")])]),t._v(" "),s("tr",[s("td",[t._v("registerQuota")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("注册用户默认配额 单位/MB")])]),t._v(" "),s("tr",[s("td",[t._v("registerExpireDays")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("注册用户过期天数 单位/天")])]),t._v(" "),s("tr",[s("td",[t._v("captchaEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开启验证码登录")])]),t._v(" "),s("tr",[s("td",[t._v("emailEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开启邮箱功能 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("systemName")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("系统名称")])])])]),t._v(" "),s("h3",{attrs:{id:"订阅"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#订阅"}},[t._v("#")]),t._v(" 订阅")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/subscribe/:token")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("/api/auth/subscribe/NUNjOWtCZHhwWGpUYXZKSjRvNF9JTFBMU3VZWmphOTB4MEpmZWVicGt1UFBHZmRT\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("token")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Token")])])])]),t._v(" "),s("h3",{attrs:{id:"logo"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#logo"}},[t._v("#")]),t._v(" logo")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/image/logo")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("p",[t._v("Content-Type: application/octet-stream")]),t._v(" "),s("h2",{attrs:{id:"首页"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#首页"}},[t._v("#")]),t._v(" 首页")]),t._v(" "),s("h3",{attrs:{id:"仪表板"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#仪表板"}},[t._v("#")]),t._v(" 仪表板")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/dashboard/panelGroup")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"quota"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("-1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"residualFlow"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("-1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeCount"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"expireTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("4078656000000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"accountCount"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"cpuUsed"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"memUsed"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("32.9")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"diskUsed"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("32.3")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("quota")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("配额")])]),t._v(" "),s("tr",[s("td",[t._v("residualFlow")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("剩余流量")])]),t._v(" "),s("tr",[s("td",[t._v("nodeCount")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("节点总数")])]),t._v(" "),s("tr",[s("td",[t._v("expireTime")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("到期时间")])]),t._v(" "),s("tr",[s("td",[t._v("accountCount")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("用户总数")])]),t._v(" "),s("tr",[s("td",[t._v("cpuUsed")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("CPU使用率")])]),t._v(" "),s("tr",[s("td",[t._v("memUsed")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("内存使用率")])]),t._v(" "),s("tr",[s("td",[t._v("diskUsed")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("磁盘使用率")])])])]),t._v(" "),s("h3",{attrs:{id:"流量排行榜"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#流量排行榜"}},[t._v("#")]),t._v(" 流量排行榜")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/dashboard/trafficRank")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"username"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"23****34"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trafficUsed"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"0"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"username"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"12****23"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trafficUsed"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"0"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("username")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录用户名")])]),t._v(" "),s("tr",[s("td",[t._v("trafficUsed")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("已用流量")])])])]),t._v(" "),s("h2",{attrs:{id:"账户"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#账户"}},[t._v("#")]),t._v(" 账户")]),t._v(" "),s("h3",{attrs:{id:"注销"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#注销"}},[t._v("#")]),t._v(" 注销")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/logout")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"查询单个账户"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#查询单个账户"}},[t._v("#")]),t._v(" 查询单个账户")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/selectAccountById")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"username"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"sysadmin"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"roleId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"email"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123@gmail.com"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"presetExpire"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("7")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"presetQuota"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1073741824")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"expireTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1692519522967")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"deleted"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"quota"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("-1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"download"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"upload"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("username")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录用户名")])]),t._v(" "),s("tr",[s("td",[t._v("roleId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("角色id 1/系统管理员 3/普通用户")])]),t._v(" "),s("tr",[s("td",[t._v("email")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("邮箱")])]),t._v(" "),s("tr",[s("td",[t._v("presetExpire")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("预设过期时长 单位/天")])]),t._v(" "),s("tr",[s("td",[t._v("presetQuota")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("预设配额 单位/byte")])]),t._v(" "),s("tr",[s("td",[t._v("expireTime")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("过期时间")])]),t._v(" "),s("tr",[s("td",[t._v("deleted")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否禁用 0/正常 1/禁用")])]),t._v(" "),s("tr",[s("td",[t._v("quota")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("配额 单位/byte")])]),t._v(" "),s("tr",[s("td",[t._v("download")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("下载 单位/byte")])]),t._v(" "),s("tr",[s("td",[t._v("upload")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("上传 单位/byte")])])])]),t._v(" "),s("h3",{attrs:{id:"创建账户"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#创建账户"}},[t._v("#")]),t._v(" 创建账户")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/createAccount")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"quota"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1024")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"username"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123456"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pass"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123456"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"email"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123@gmail.com"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"roleId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"deleted"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"expireTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1693061885000")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("quota")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("配额 单位/MB")])]),t._v(" "),s("tr",[s("td",[t._v("username")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录用户名")])]),t._v(" "),s("tr",[s("td",[t._v("pass")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录密码")])]),t._v(" "),s("tr",[s("td",[t._v("email")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("邮箱")])]),t._v(" "),s("tr",[s("td",[t._v("roleId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("角色id 1/系统管理员 3/普通用户")])]),t._v(" "),s("tr",[s("td",[t._v("deleted")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否禁用 0/正常 1/禁用")])]),t._v(" "),s("tr",[s("td",[t._v("expireTime")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("过期时间")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"获取当前账户信息"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#获取当前账户信息"}},[t._v("#")]),t._v(" 获取当前账户信息")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/getAccountInfo")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"username"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"sysadmin"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"roles"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"sysadmin"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"admin"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"user"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("username")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录用户名")])]),t._v(" "),s("tr",[s("td",[t._v("roles")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("角色")])])])]),t._v(" "),s("h3",{attrs:{id:"分页查询账户"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#分页查询账户"}},[t._v("#")]),t._v(" 分页查询账户")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/selectAccountPage")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("/api/account/selectAccountPage?pageNum=1&pageSize=20&username=admin&deleted=0&orderFields=role_id,create_time&orderBy=desc&lastLoginTime=1\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("pageNum")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页号")])]),t._v(" "),s("tr",[s("td",[t._v("pageSize")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页大小")])]),t._v(" "),s("tr",[s("td",[t._v("username")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("登录用户名")])]),t._v(" "),s("tr",[s("td",[t._v("deleted")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("是否禁用 0/正常 1/禁用")])]),t._v(" "),s("tr",[s("td",[t._v("orderFields")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("排序字段 quota/总流量 role_id/角色 last_login_time/最后一次登录时间 expire_time/到期时间 deleted/是否禁用 create_time/创建时间")])]),t._v(" "),s("tr",[s("td",[t._v("orderBy")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("排序方式 asc/正序 desc/倒序")])]),t._v(" "),s("tr",[s("td",[t._v("lastLoginTime")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("是否使用过 0/未使用过 1/使用过")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pageNum"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pageSize"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"total"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"accounts"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"quota"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("-1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"download"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"upload"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"username"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"sysadmin"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"email"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"roleId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"deleted"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"presetExpire"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"presetQuota"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"lastLoginTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1692430857369")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"expireTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("4078656000000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"createTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"2022-04-01T00:00:00+08:00"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("pageNum")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页号")])]),t._v(" "),s("tr",[s("td",[t._v("pageSize")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页大小")])]),t._v(" "),s("tr",[s("td",[t._v("total")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("总数")])]),t._v(" "),s("tr",[s("td",[t._v("accounts")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("账户")])]),t._v(" "),s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("quota")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("配额 单位/byte")])]),t._v(" "),s("tr",[s("td",[t._v("download")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("下载 单位/byte")])]),t._v(" "),s("tr",[s("td",[t._v("upload")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("上传 单位/byte")])]),t._v(" "),s("tr",[s("td",[t._v("username")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("登录用户名")])]),t._v(" "),s("tr",[s("td",[t._v("email")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("邮箱")])]),t._v(" "),s("tr",[s("td",[t._v("roleId")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("角色id 1/系统管理员 3/普通用户")])]),t._v(" "),s("tr",[s("td",[t._v("deleted")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("是否禁用 0/正常 1/禁用")])]),t._v(" "),s("tr",[s("td",[t._v("presetExpire")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("预设过期时长 单位/天")])]),t._v(" "),s("tr",[s("td",[t._v("presetQuota")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("预设配额 单位/byte")])]),t._v(" "),s("tr",[s("td",[t._v("lastLoginTime")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("最后一次登录时间")])]),t._v(" "),s("tr",[s("td",[t._v("expireTime")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("过期时间")])]),t._v(" "),s("tr",[s("td",[t._v("createTime")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("创建时间")])])])]),t._v(" "),s("h3",{attrs:{id:"通过id删除账户"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#通过id删除账户"}},[t._v("#")]),t._v(" 通过id删除账户")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/deleteAccountById")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"修改密码"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#修改密码"}},[t._v("#")]),t._v(" 修改密码")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/updateAccountPass")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"oldPass"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123456"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"newPass"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123123"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("oldPass")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("原密码")])]),t._v(" "),s("tr",[s("td",[t._v("newPass")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("新密码")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"修改用户名或者邮箱"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#修改用户名或者邮箱"}},[t._v("#")]),t._v(" 修改用户名或者邮箱")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/updateAccountProperty")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"email"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123456@gmail.com"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"username"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"sysadmin"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pass"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123456"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("email")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("邮箱")])]),t._v(" "),s("tr",[s("td",[t._v("username")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("登录用户名")])]),t._v(" "),s("tr",[s("td",[t._v("pass")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录密码")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"修改账户"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#修改账户"}},[t._v("#")]),t._v(" 修改账户")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/updateAccountById")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"quota"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1024")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"username"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123456"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pass"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123123"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"roleId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"deleted"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"expireTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1692378469728")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"email"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("quota")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("配额 单位/MB")])]),t._v(" "),s("tr",[s("td",[t._v("username")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录用户名")])]),t._v(" "),s("tr",[s("td",[t._v("pass")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("登录密码")])]),t._v(" "),s("tr",[s("td",[t._v("roleId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("角色id")])]),t._v(" "),s("tr",[s("td",[t._v("deleted")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否禁用 0/正常 1/禁用")])]),t._v(" "),s("tr",[s("td",[t._v("expireTime")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("过期时间")])]),t._v(" "),s("tr",[s("td",[t._v("email")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("邮箱")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"获取clash订阅地址"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#获取clash订阅地址"}},[t._v("#")]),t._v(" 获取Clash订阅地址")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/clashSubscribe")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/api/auth/subscribe/b0dBQVh1b1FlOEtLdUZPeWRZMGZYdGJuMC1UNWppSktOdm1aTEhlcU5ocVRuOG55"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("data")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("订阅地址")])])])]),t._v(" "),s("h3",{attrs:{id:"获取指定账户的clash订阅地址"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#获取指定账户的clash订阅地址"}},[t._v("#")]),t._v(" 获取指定账户的Clash订阅地址")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/clashSubscribeForSb")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("/api/account/clashSubscribeForSb?id=1\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/api/auth/subscribe/SkxhejNnQkQtbWZDb2owbUNDVjFsQWwzUzNsOWVxeGprME9qWHNfOGc4R0dMdUZP"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("data")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("订阅地址")])])])]),t._v(" "),s("h3",{attrs:{id:"重设下载和上传流量"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#重设下载和上传流量"}},[t._v("#")]),t._v(" 重设下载和上传流量")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/resetAccountDownloadAndUpload")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"导出账户"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#导出账户"}},[t._v("#")]),t._v(" 导出账户")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/exportAccount")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"导入账户"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#导入账户"}},[t._v("#")]),t._v(" 导入账户")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/importAccount")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("p",[t._v("Form Data")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("file: (binary)\ncover: 1\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("file")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("文件二进制")])]),t._v(" "),s("tr",[s("td",[t._v("cover")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否根据用户名覆盖 0/否 1/是")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"批量创建账户"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#批量创建账户"}},[t._v("#")]),t._v(" 批量创建账户")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/createAccountBatch")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"num"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"presetQuota"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1024")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"presetExpire"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("7")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("num")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("数量")])]),t._v(" "),s("tr",[s("td",[t._v("presetQuota")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("预设配额 单位/MB")])]),t._v(" "),s("tr",[s("td",[t._v("presetExpire")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("预设过期时长 单位/天")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"导出未使用的账户"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#导出未使用的账户"}},[t._v("#")]),t._v(" 导出未使用的账户")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/exportAccountUnused")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h2",{attrs:{id:"角色"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#角色"}},[t._v("#")]),t._v(" 角色")]),t._v(" "),s("h3",{attrs:{id:"查询角色列表"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#查询角色列表"}},[t._v("#")]),t._v(" 查询角色列表")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/role/selectRoleList")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"sysadmin"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"desc"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"System Admin"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"admin"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"desc"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Admin"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"user"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"desc"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"User"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("名称")])]),t._v(" "),s("tr",[s("td",[t._v("desc")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("描述")])])])]),t._v(" "),s("h2",{attrs:{id:"服务器"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#服务器"}},[t._v("#")]),t._v(" 服务器")]),t._v(" "),s("h3",{attrs:{id:"根据id查询服务器"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#根据id查询服务器"}},[t._v("#")]),t._v(" 根据id查询服务器")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/nodeServer/selectNodeServerById")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"测试服务器"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"grpcPort"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("8100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"createTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"2023-08-19T01:24:22+08:00"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("服务器名称")])]),t._v(" "),s("tr",[s("td",[t._v("grpcPort")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("API端口")])]),t._v(" "),s("tr",[s("td",[t._v("createTime")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("创建时间")])])])]),t._v(" "),s("h3",{attrs:{id:"创建服务器"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#创建服务器"}},[t._v("#")]),t._v(" 创建服务器")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/nodeServer/createNodeServer")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"ip"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"trojanpanel.github.io"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"测试服务器"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"grpcPort"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("8100")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("ip")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("服务器IP")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("服务器名称")])]),t._v(" "),s("tr",[s("td",[t._v("grpcPort")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("API端口")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"分页查询服务器"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#分页查询服务器"}},[t._v("#")]),t._v(" 分页查询服务器")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/nodeServer/selectNodeServerPage")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("/api/nodeServer/selectNodeServerPage?pageNum=1&pageSize=20&ip=trojanpanel.github.io&name=测试服务器\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("pageNum")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页号")])]),t._v(" "),s("tr",[s("td",[t._v("pageSize")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页大小")])]),t._v(" "),s("tr",[s("td",[t._v("ip")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("服务器IP")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("服务器名称")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeServers"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"测试服务器"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"ip"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"trojanpanel.github.io"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"grpcPort"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("8100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"createTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"2023-08-19T01:24:22+08:00"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"status"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanPanelCoreVersion"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"v2.1.2"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pageNum"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pageSize"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"total"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("nodeServers")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("服务器对象")])]),t._v(" "),s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("服务器名称")])]),t._v(" "),s("tr",[s("td",[t._v("ip")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("服务器名称")])]),t._v(" "),s("tr",[s("td",[t._v("grpcPort")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("API端口")])]),t._v(" "),s("tr",[s("td",[t._v("createTime")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("创建时间")])]),t._v(" "),s("tr",[s("td",[t._v("status")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("状态 0/异常 1/正常")])]),t._v(" "),s("tr",[s("td",[t._v("trojanPanelCoreVersion")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Trojan Panel Core 版本")])]),t._v(" "),s("tr",[s("td",[t._v("pageNum")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页号")])]),t._v(" "),s("tr",[s("td",[t._v("pageSize")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页大小")])]),t._v(" "),s("tr",[s("td",[t._v("total")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("总数")])])])]),t._v(" "),s("h3",{attrs:{id:"删除服务器"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#删除服务器"}},[t._v("#")]),t._v(" 删除服务器")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/nodeServer/deleteNodeServerById")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"更新服务器"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#更新服务器"}},[t._v("#")]),t._v(" 更新服务器")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/nodeServer/updateNodeServerById")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"ip"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"143.201.86.91"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"测试服务器"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"grpcPort"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("8100")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("ip")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("服务器IP")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("服务器名称")])]),t._v(" "),s("tr",[s("td",[t._v("grpcPort")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("API端口")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("h3",{attrs:{id:"查询服务器列表"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#查询服务器列表"}},[t._v("#")]),t._v(" 查询服务器列表")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/nodeServer/selectNodeServerList")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"测试服务器"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("名称")])])])]),t._v(" "),s("h3",{attrs:{id:"查询服务器状态"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#查询服务器状态"}},[t._v("#")]),t._v(" 查询服务器状态")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/nodeServer/nodeServerState")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("/api/nodeServer/nodeServerState?id=1\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"cpuUsed"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"memUsed"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("32.8")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"diskUsed"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("32.3")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("cpuUsed")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("CPU使用率")])]),t._v(" "),s("tr",[s("td",[t._v("memUsed")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("内存使用率")])]),t._v(" "),s("tr",[s("td",[t._v("diskUsed")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("磁盘使用率")])])])]),t._v(" "),s("h3",{attrs:{id:"导出服务器"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#导出服务器"}},[t._v("#")]),t._v(" 导出服务器")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/nodeServer/exportNodeServer")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"导入服务器"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#导入服务器"}},[t._v("#")]),t._v(" 导入服务器")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/nodeServer/importNodeServer")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求参数:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("file: (binary)\ncover: 1\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("file")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("文件二进制")])]),t._v(" "),s("tr",[s("td",[t._v("cover")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否根据用户名覆盖 0/否 1/是")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h2",{attrs:{id:"节点"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#节点"}},[t._v("#")]),t._v(" 节点")]),t._v(" "),s("h3",{attrs:{id:"根据id查询节点"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#根据id查询节点"}},[t._v("#")]),t._v(" 根据id查询节点")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/node/selectNodeById")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("/api/node/selectNodeById?id=1\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeServerId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeSubId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeTypeId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vless-reality"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"domain"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"trojanpanel.github.io"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"port"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("443")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"priority"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"createTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"2023-08-19T23:20:27+08:00"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"uuid"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"alterId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayProtocol"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vless"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayFlow"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"xtls-rprx-vision"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySSMethod"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"aes-256-gcm"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"realityPbk"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"JraCqHw8lrQ-YdgrBSpBVTA4fhqHLfTUpZiP45x5gRI"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySettings"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySettingsEntity"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"fallbacks"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"alpn"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"path"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"dest"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"80"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xver"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"network"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"tcp"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayStreamSettingsEntity"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"network"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"tcp"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"security"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"reality"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"tlsSettings"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"serverName"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"alpn"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"h2"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http/1.1"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"allowInsecure"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"fingerprint"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"chrome"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"realitySettings"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"dest"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"trojanpanel.github.io:8863"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xver"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"serverNames"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"trojanpanel.github.io"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"fingerprint"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"chrome"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"privateKey"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"GCRTXDZm1zuBdsQSM3Up9awTqxuzNwF6yXr5kxVT11w"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"shortIds"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"c6b6b5bf30c98f05"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"spiderX"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/SCalpsSw"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"wsSettings"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"path"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/trojan-panel-websocket-path"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"headers"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"Host"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayTag"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"user"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySniffing"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayAllocate"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSni"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoMuxEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoWebsocketEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoWebsocketPath"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoWebsocketHost"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSsEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSsMethod"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSsPassword"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaProtocol"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaObfs"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaUpMbps"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaDownMbps"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaServerName"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaInsecure"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaFastOpen"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"naiveProxyUsername"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("nodeServerId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("服务器id")])]),t._v(" "),s("tr",[s("td",[t._v("nodeSubId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("节点分表id")])]),t._v(" "),s("tr",[s("td",[t._v("nodeTypeId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("节点类型id")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("名称")])]),t._v(" "),s("tr",[s("td",[t._v("domain")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("域名/IP")])]),t._v(" "),s("tr",[s("td",[t._v("port")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("端口")])]),t._v(" "),s("tr",[s("td",[t._v("priority")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("优先级")])]),t._v(" "),s("tr",[s("td",[t._v("createTime")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("创建时间")])]),t._v(" "),s("tr",[s("td",[t._v("uuid")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("UUID")])]),t._v(" "),s("tr",[s("td",[t._v("alterId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Alter ID")])]),t._v(" "),s("tr",[s("td",[t._v("xrayProtocol")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray 协议名称")])]),t._v(" "),s("tr",[s("td",[t._v("xrayFlow")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray 流控")])]),t._v(" "),s("tr",[s("td",[t._v("xraySSMethod")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray Shadowsocks加密方式")])]),t._v(" "),s("tr",[s("td",[t._v("realityPbk")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray reality的公钥")])]),t._v(" "),s("tr",[s("td",[t._v("xraySettingsEntity")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray settings 参考Xray文档")])]),t._v(" "),s("tr",[s("td",[t._v("xrayStreamSettingsEntity")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray streamSettings 参考Xray文档")])]),t._v(" "),s("tr",[s("td",[t._v("xrayTag")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray tag")])]),t._v(" "),s("tr",[s("td",[t._v("xraySniffing")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray sniffing")])]),t._v(" "),s("tr",[s("td",[t._v("xrayAllocate")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray allocate")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSni")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo sni")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoMuxEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo 是否开启多路复用 0/关闭 1/开启")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoWebsocketEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo 是否开启websocket 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoWebsocketPath")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo websocket路径")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoWebsocketHost")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo websocket host")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSsEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo 是否开启ss加密 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSsMethod")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo ss加密方式")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSsPassword")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo ss密码")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaProtocol")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 协议名称 udp/faketcp")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaObfs")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 混淆密码")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaUpMbps")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 单客户端最大上传速度 单位:Mbps")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaDownMbps")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 单客户端最大下载速度 单位:Mbps")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaServerName")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 用于验证服务端证书的 hostname")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaInsecure")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 忽略一切证书错误")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaFastOpen")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 启用 Fast Open (降低连接建立延迟)")])]),t._v(" "),s("tr",[s("td",[t._v("naiveProxyUsername")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("NaiveProxy用户名")])])])]),t._v(" "),s("h3",{attrs:{id:"查询节点连接信息"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#查询节点连接信息"}},[t._v("#")]),t._v(" 查询节点连接信息")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/node/selectNodeInfo")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("/api/node/selectNodeInfo?id=1\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeServerId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeSubId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeTypeId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vless-reality"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"domain"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"trojanpanel.github.io"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"port"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("443")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"priority"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"createTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"2023-08-19T23:20:27+08:00"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"password"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"oGAAXuoQe8KKuFOydY0fXtbn0-T5jiJKNvmZLHeqNhqTn8ny"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"uuid"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"7a57ec2e-bb05-5544-9c30-05814b376eba"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"alterId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayProtocol"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vless"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayFlow"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"xtls-rprx-vision"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySSMethod"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"aes-256-gcm"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"realityPbk"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"JraCqHw8lrQ-YdgrBSpBVTA4fhqHLfTUpZiP45x5gRI"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySettingsEntity"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"fallbacks"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"alpn"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"path"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"dest"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"80"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xver"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"network"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"tcp"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayStreamSettingsEntity"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"network"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"tcp"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"security"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"reality"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"tlsSettings"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"serverName"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"alpn"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"h2"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http/1.1"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"allowInsecure"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"fingerprint"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"chrome"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"realitySettings"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"dest"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"trojanpanel.github.io:8863"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xver"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"serverNames"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"trojanpanel.github.io"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"fingerprint"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"chrome"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"privateKey"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"GCRTXDZm1zuBdsQSM3Up9awTqxuzNwF6yXr5kxVT11w"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"shortIds"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"c6b6b5bf30c98f05"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"spiderX"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/SCalpsSw"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"wsSettings"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"path"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/trojan-panel-websocket-path"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"headers"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"Host"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayTag"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"user"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySniffing"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayAllocate"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSni"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoMuxEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoWebsocketEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoWebsocketPath"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoWebsocketHost"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSsEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSsMethod"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSsPassword"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaProtocol"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaObfs"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaUpMbps"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaDownMbps"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaServerName"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaInsecure"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaFastOpen"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"naiveProxyUsername"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("nodeServerId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("服务器id")])]),t._v(" "),s("tr",[s("td",[t._v("nodeSubId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("节点分表id")])]),t._v(" "),s("tr",[s("td",[t._v("nodeTypeId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("节点类型id")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("名称")])]),t._v(" "),s("tr",[s("td",[t._v("domain")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("域名/IP")])]),t._v(" "),s("tr",[s("td",[t._v("port")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("端口")])]),t._v(" "),s("tr",[s("td",[t._v("priority")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("优先级")])]),t._v(" "),s("tr",[s("td",[t._v("createTime")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("创建时间")])]),t._v(" "),s("tr",[s("td",[t._v("password")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("连接密码")])]),t._v(" "),s("tr",[s("td",[t._v("uuid")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("UUID")])]),t._v(" "),s("tr",[s("td",[t._v("alterId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Alter ID")])]),t._v(" "),s("tr",[s("td",[t._v("xrayProtocol")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray 协议名称")])]),t._v(" "),s("tr",[s("td",[t._v("xrayFlow")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray 流控")])]),t._v(" "),s("tr",[s("td",[t._v("xraySSMethod")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray Shadowsocks加密方式")])]),t._v(" "),s("tr",[s("td",[t._v("realityPbk")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray reality的公钥")])]),t._v(" "),s("tr",[s("td",[t._v("xraySettingsEntity")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray settings 参考Xray文档")])]),t._v(" "),s("tr",[s("td",[t._v("xrayStreamSettingsEntity")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray streamSettings 参考Xray文档")])]),t._v(" "),s("tr",[s("td",[t._v("xrayTag")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray tag")])]),t._v(" "),s("tr",[s("td",[t._v("xraySniffing")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray sniffing")])]),t._v(" "),s("tr",[s("td",[t._v("xrayAllocate")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray allocate")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSni")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo sni")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoMuxEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo 是否开启多路复用 0/关闭 1/开启")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoWebsocketEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo 是否开启websocket 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoWebsocketPath")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo websocket路径")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoWebsocketHost")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo websocket host")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSsEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo 是否开启ss加密 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSsMethod")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo ss加密方式")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSsPassword")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo ss密码")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaProtocol")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 协议名称 udp/faketcp")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaObfs")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 混淆密码")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaUpMbps")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 单客户端最大上传速度 单位:Mbps")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaDownMbps")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 单客户端最大下载速度 单位:Mbps")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaServerName")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 用于验证服务端证书的 hostname")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaInsecure")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 忽略一切证书错误")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaFastOpen")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 启用 Fast Open (降低连接建立延迟)")])]),t._v(" "),s("tr",[s("td",[t._v("naiveProxyUsername")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("NaiveProxy用户名")])])])]),t._v(" "),s("h3",{attrs:{id:"创建节点"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#创建节点"}},[t._v("#")]),t._v(" 创建节点")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/node/createNode")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeServerId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeTypeId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vless-reality"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"domain"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"trojanpanel.github.io"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"port"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("443")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"priority"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayProtocol"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vless"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayFlow"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"xtls-rprx-vision"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySSMethod"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"aes-256-gcm"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"realityPbk"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"JraCqHw8lrQ-YdgrBSpBVTA4fhqHLfTUpZiP45x5gRI"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySettings"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"{\\"clients\\":[],\\"fallbacks\\":[{\\"name\\":\\"\\",\\"alpn\\":\\"\\",\\"dest\\":\\"80\\",\\"xver\\":0}],\\"network\\":\\"tcp\\",\\"decryption\\":\\"none\\"}"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayStreamSettings"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"{\\"network\\":\\"tcp\\",\\"security\\":\\"reality\\",\\"tlsSettings\\":{\\"serverName\\":\\"\\",\\"alpn\\":[\\"h2\\",\\"http/1.1\\"],\\"allowInsecure\\":false,\\"fingerprint\\":\\"chrome\\"},\\"realitySettings\\":{\\"dest\\":\\"trojanpanel.github.io:8863\\",\\"xver\\":0,\\"serverNames\\":[\\"trojanpanel.github.io\\"],\\"fingerprint\\":\\"chrome\\",\\"privateKey\\":\\"GCRTXDZm1zuBdsQSM3Up9awTqxuzNwF6yXr5kxVT11w\\",\\"shortIds\\":[\\"c6b6b5bf30c98f05\\"],\\"spiderX\\":\\"/SCalpsSw\\"},\\"wsSettings\\":{\\"path\\":\\"/trojan-panel-websocket-path\\",\\"headers\\":{\\"Host\\":\\"\\"}}}"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayTag"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"user"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySniffing"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayAllocate"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSni"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoMuxEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoWebsocketEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoWebsocketPath"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/trojan-panel-websocket-path"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoWebsocketHost"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSsEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSsMethod"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"AES-128-GCM"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSsPassword"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaProtocol"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"udp"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaObfs"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaUpMbps"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaDownMbps"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaServerName"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaInsecure"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaFastOpen"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("nodeServerId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("服务器id")])]),t._v(" "),s("tr",[s("td",[t._v("nodeTypeId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("节点类型id")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("名称")])]),t._v(" "),s("tr",[s("td",[t._v("domain")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("域名/IP")])]),t._v(" "),s("tr",[s("td",[t._v("port")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("端口")])]),t._v(" "),s("tr",[s("td",[t._v("priority")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("优先级")])]),t._v(" "),s("tr",[s("td",[t._v("xrayProtocol")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray 协议名称")])]),t._v(" "),s("tr",[s("td",[t._v("xrayFlow")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray 流控")])]),t._v(" "),s("tr",[s("td",[t._v("xraySSMethod")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray Shadowsocks加密方式")])]),t._v(" "),s("tr",[s("td",[t._v("realityPbk")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray reality的公钥")])]),t._v(" "),s("tr",[s("td",[t._v("xraySettings")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray settings")])]),t._v(" "),s("tr",[s("td",[t._v("xrayStreamSettings")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray streamSettings")])]),t._v(" "),s("tr",[s("td",[t._v("xrayTag")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray tag")])]),t._v(" "),s("tr",[s("td",[t._v("xraySniffing")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray sniffing")])]),t._v(" "),s("tr",[s("td",[t._v("xrayAllocate")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray allocate")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSni")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("TrojanGo sni")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoMuxEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo 是否开启多路复用 0/关闭 1/开启")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoWebsocketEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo 是否开启websocket 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoWebsocketPath")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("TrojanGo websocket路径")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoWebsocketHost")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("TrojanGo websocket host")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSsEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo 是否开启ss加密 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSsMethod")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("TrojanGo ss加密方式")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSsPassword")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("TrojanGo ss密码")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaProtocol")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Hysteria 协议名称 udp/faketcp")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaObfs")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Hysteria 混淆密码")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaUpMbps")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 单客户端最大上传速度 单位:Mbps")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaDownMbps")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 单客户端最大下载速度 单位:Mbps")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaServerName")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Hysteria 用于验证服务端证书的 hostname")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaInsecure")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Hysteria 忽略一切证书错误")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaFastOpen")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Hysteria 启用 Fast Open (降低连接建立延迟)")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"分页查询节点"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#分页查询节点"}},[t._v("#")]),t._v(" 分页查询节点")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/node/selectNodePage")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("/api/node/selectNodePage?pageNum=1&pageSize=20&name=vless-reality&nodeServerId=1\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("pageNum")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页号")])]),t._v(" "),s("tr",[s("td",[t._v("pageSize")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页大小")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("名称")])]),t._v(" "),s("tr",[s("td",[t._v("nodeServerId")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("服务器id")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodes"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeServerId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeSubId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeTypeId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vless-reality"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"domain"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"trojanpanel.github.io"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"port"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("443")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"priority"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"createTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"2023-08-19T23:20:27+08:00"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"status"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pageNum"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pageSize"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"total"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("pageNum")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页号")])]),t._v(" "),s("tr",[s("td",[t._v("pageSize")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页大小")])]),t._v(" "),s("tr",[s("td",[t._v("total")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("总数")])]),t._v(" "),s("tr",[s("td",[t._v("nodes")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("节点")])]),t._v(" "),s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("nodeServerId")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("服务器id")])]),t._v(" "),s("tr",[s("td",[t._v("nodeSubId")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("节点分表id")])]),t._v(" "),s("tr",[s("td",[t._v("nodeTypeId")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("节点类型id")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("名称")])]),t._v(" "),s("tr",[s("td",[t._v("domain")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("域名/IP")])]),t._v(" "),s("tr",[s("td",[t._v("port")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("端口")])]),t._v(" "),s("tr",[s("td",[t._v("createTime")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("创建时间")])]),t._v(" "),s("tr",[s("td",[t._v("status")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("状态 0/异常 1/正常")])])])]),t._v(" "),s("h3",{attrs:{id:"删除节点"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#删除节点"}},[t._v("#")]),t._v(" 删除节点")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/node/deleteNodeById")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"更新节点"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#更新节点"}},[t._v("#")]),t._v(" 更新节点")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/node/updateNodeById")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeServerId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeSubId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeTypeId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vless-reality"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"domain"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"trojanpanel.github.io"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"port"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("443")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"priority"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayProtocol"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vless"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayFlow"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"xtls-rprx-vision"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySSMethod"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"aes-256-gcm"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"realityPbk"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"JraCqHw8lrQ-YdgrBSpBVTA4fhqHLfTUpZiP45x5gRI"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySettings"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"{\\"clients\\":[],\\"fallbacks\\":[{\\"name\\":\\"\\",\\"alpn\\":\\"\\",\\"path\\":null,\\"dest\\":\\"80\\",\\"xver\\":0}],\\"network\\":\\"tcp\\",\\"decryption\\":\\"none\\"}"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayStreamSettings"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"{\\"network\\":\\"tcp\\",\\"security\\":\\"reality\\",\\"tlsSettings\\":{\\"serverName\\":\\"\\",\\"alpn\\":[\\"h2\\",\\"http/1.1\\"],\\"allowInsecure\\":false,\\"fingerprint\\":\\"chrome\\"},\\"realitySettings\\":{\\"dest\\":\\"trojanpanel.github.io:8863\\",\\"xver\\":0,\\"serverNames\\":[\\"trojanpanel.github.io\\"],\\"fingerprint\\":\\"chrome\\",\\"privateKey\\":\\"GCRTXDZm1zuBdsQSM3Up9awTqxuzNwF6yXr5kxVT11w\\",\\"shortIds\\":[\\"c6b6b5bf30c98f05\\"],\\"spiderX\\":\\"/SCalpsSw\\"},\\"wsSettings\\":{\\"path\\":\\"/trojan-panel-websocket-path\\",\\"headers\\":{\\"Host\\":\\"\\"}}}"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayTag"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"user"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySniffing"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayAllocate"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSni"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoMuxEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoWebsocketEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoWebsocketPath"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/trojan-panel-websocket-path"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoWebsocketHost"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSsEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSsMethod"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"AES-128-GCM"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSsPassword"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaProtocol"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"udp"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaObfs"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaUpMbps"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaDownMbps"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaServerName"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaInsecure"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaFastOpen"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("nodeServerId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("服务器id")])]),t._v(" "),s("tr",[s("td",[t._v("nodeSubId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("节点分表id")])]),t._v(" "),s("tr",[s("td",[t._v("nodeTypeId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("节点类型id")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("名称")])]),t._v(" "),s("tr",[s("td",[t._v("domain")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("域名/IP")])]),t._v(" "),s("tr",[s("td",[t._v("port")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("端口")])]),t._v(" "),s("tr",[s("td",[t._v("priority")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("优先级")])]),t._v(" "),s("tr",[s("td",[t._v("xrayProtocol")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray 协议名称")])]),t._v(" "),s("tr",[s("td",[t._v("xrayFlow")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray 流控")])]),t._v(" "),s("tr",[s("td",[t._v("xraySSMethod")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray Shadowsocks加密方式")])]),t._v(" "),s("tr",[s("td",[t._v("realityPbk")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray reality的公钥")])]),t._v(" "),s("tr",[s("td",[t._v("xraySettings")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray settings")])]),t._v(" "),s("tr",[s("td",[t._v("xrayStreamSettings")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray streamSettings")])]),t._v(" "),s("tr",[s("td",[t._v("xrayTag")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray tag")])]),t._v(" "),s("tr",[s("td",[t._v("xraySniffing")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray sniffing")])]),t._v(" "),s("tr",[s("td",[t._v("xrayAllocate")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray allocate")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSni")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("TrojanGo sni")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoMuxEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo 是否开启多路复用 0/关闭 1/开启")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoWebsocketEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo 是否开启websocket 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoWebsocketPath")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("TrojanGo websocket路径")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoWebsocketHost")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("TrojanGo websocket host")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSsEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo 是否开启ss加密 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSsMethod")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("TrojanGo ss加密方式")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSsPassword")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("TrojanGo ss密码")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaProtocol")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Hysteria 协议名称 udp/faketcp")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaObfs")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Hysteria 混淆密码")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaUpMbps")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 单客户端最大上传速度 单位:Mbps")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaDownMbps")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 单客户端最大下载速度 单位:Mbps")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaServerName")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Hysteria 用于验证服务端证书的 hostname")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaInsecure")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Hysteria 忽略一切证书错误")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaFastOpen")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Hysteria 启用 Fast Open (降低连接建立延迟)")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"获取节点二维码"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#获取节点二维码"}},[t._v("#")]),t._v(" 获取节点二维码")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/node/nodeQRCode")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAQMAAABmvDolAAAABlBMVEX///8AAABVwtN+AAAEvElEQVR42uyZMY77rhPFB1HQhQtE5hopLHGllO6go8yVkFzkGlh7gUlHgXh/DZvsbp/Yxf/3pdiV1p+VkJn3eDOmf+u/tRSAGCyar4bU1ijwo5+JDAPIBwGFdAx2Il8N204+Bp7II3EhfRSwYU0RE+m8WLU1A5wc8hJ4w/pBAIyvdjFQnTyi2opHPRqIdnJrDWSBe7zaThqgA4FCOrHdir5Ha4uu4aY2tGWhP4e1NwAg3ex0ni8LP7b1nm6n6Twvy9+ifQ+QZSKjkAHZojNZW846Gv4jv50BtYn0uOhRD0AOrFAoJH7u8RCgzWSt+8oezJMIkB3WKrXxKQDrCljXfDaWVDbVqqKByjQ9j/sIoC1XVmW+GEtuRbW2n2cy5PpRABFpsGi9BpykOPjRSVeDol4luT/g83K1W6FLsKyQTZR6ILLj5ycAhawB2102kRSaSTipMgeMfz0MmOlqi8a9gl2mELtDJmPRX5vcGyDVfCVMrl0Cn9RazY1U8XVhcmv+CKC2TAGEr2aqBdanuk2ynWY6COgaNVA560xspfjjA8XHRTw4HwQUnQ1jGx77/W6G+SxWFX8QIMqrooHZJJJNjmqcF4PiftT/HqD6TMuVim4e9jT5ulwfKBqRfs5if0Ckd8N09tmMCy6xhWQYyBs6CJBfV6IzmUSnSfJDn87z68knACK9Jtgi/s2kMgVW2xfqwpNaDwJGJgrsykwLussXuvKkxfKwNToKaLoS4Xt1nw2IXFsWfjntAUCRv0mA8pFJrYhk0WaTfrX5LjDyIiSq+WgtUAOUlH0CNhwEKKzZ3ECkc8BDUnGk6UwLSaSgg4Di13QTBV4WthKbge2rhcrbz5t8FwCyYd4KmThS8RK6azqB1Ss/7A6Qk6ZXWgEkq4Bq+FF0DhX4boIOABSa5AfJMBW2+xxGVEuJp1fv/zawrStu1hWPyKdJ32tQRY+zeN6b+wPk2rxcbXHyNlSXu7tPLtMC95Te/oBsMkWWFwVrsebFjiYI1m2ZDgK6zoFR5MbhR58vdKWJdCRM6mPA7OuVJ9d8tCj6Xq+i+CSuOh8G+BbAkzQJjK2ZSuMsxnWXjwJIp5tFIyPJfM1BgsNag32NON4Him+BIS4XxtCMrt9mzhO9jHRvQFrMaMeEbCG7rXK7yLkEbC8L2h0Qp10sF7dmY22ZTWJ8D5jcrxXvDBB5JLEgfU90UisQx2wtcXHPUc/bgLS5oOLWujC67EFJcUQ8U/EBgCrkwfS9L5JmENjKbOqfwd3eAE26BR5bjfaBdiFCd2J8T+l9AKDZJ6Do9krFkPYPsO41uNsdGKEwQMJ4YNlkiH0ijYhfbe4NjLh4o63oOxhoBhLYGi3c1W+e3BeQuLhcGW2WY5LgOnpeE3/aqA8ATddgpQEJdjy6PTp5qbzDgNFjspThuF+1RLV+FqdV35faAcD4CkPcdb4YVtuKdBtqBG/b72ea94BCEoG7yz5ZyaImorhm8Bv+9wfEuZm6Qx3zk2qg8LVKE/Tn88QRAHcthttdo8DoI1S9avIgADxpORk5phgeKL6anwzzPjC+qUF9SSKVBoSu3YnI+aWLAwDpfiLccLnTRCaNHIUK91u0OwP/1v/P+l8AAAD//4gWpbFrY3nEAAAAAElFTkSuQmCC"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("data")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("二维码Base64")])])])]),t._v(" "),s("h3",{attrs:{id:"复制url"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#复制url"}},[t._v("#")]),t._v(" 复制URL")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/node/nodeURL")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vless://7a57ec2e-bb05-5544-9c30-05814b376eba@trojanpanel.github.io:443?type=tcp\\u0026security=reality\\u0026flow=xtls-rprx-vision\\u0026pbk=JraCqHw8lrQ-YdgrBSpBVTA4fhqHLfTUpZiP45x5gRI\\u0026fp=chrome\\u0026spx=%2FSCalpsSw\\u0026sid=c6b6b5bf30c98f05\\u0026sni=trojanpanel.github.io#vless-reality"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("data")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("分享链接")])])])]),t._v(" "),s("h3",{attrs:{id:"节点部分属性的默认值"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#节点部分属性的默认值"}},[t._v("#")]),t._v(" 节点部分属性的默认值")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/node/nodeDefault")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"publicKey"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"JraCqHw8lrQ-YdgrBSpBVTA4fhqHLfTUpZiP45x5gRI"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"privateKey"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"GCRTXDZm1zuBdsQSM3Up9awTqxuzNwF6yXr5kxVT11w"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"shortId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"c6b6b5bf30c98f05"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"spiderX"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/SCalpsSw"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("publicKey")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray reality公钥")])]),t._v(" "),s("tr",[s("td",[t._v("privateKey")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray reality私钥")])]),t._v(" "),s("tr",[s("td",[t._v("shortId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray reality shortId")])]),t._v(" "),s("tr",[s("td",[t._v("spiderX")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray reality spiderX")])])])]),t._v(" "),s("h2",{attrs:{id:"节点类型"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#节点类型"}},[t._v("#")]),t._v(" 节点类型")]),t._v(" "),s("h3",{attrs:{id:"查询节点类型列表"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#查询节点类型列表"}},[t._v("#")]),t._v(" 查询节点类型列表")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/nodeType/selectNodeTypeList")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"xray"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"trojan-go"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"hysteria"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"naiveproxy"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("名称")])])])]),t._v(" "),s("h2",{attrs:{id:"系统设置"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#系统设置"}},[t._v("#")]),t._v(" 系统设置")]),t._v(" "),s("h3",{attrs:{id:"查询系统设置"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#查询系统设置"}},[t._v("#")]),t._v(" 查询系统设置")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/system/selectSystemByName")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"registerEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"registerQuota"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1024")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"registerExpireDays"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"resetDownloadAndUploadMonth"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trafficRankEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"captchaEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"expireWarnEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"expireWarnDay"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"emailEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"emailHost"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"emailPort"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"emailUsername"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"emailPassword"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"systemName"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Trojan Panel"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"clashRule"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"rules:\\n - RULE-SET,applications,DIRECT\\n - DOMAIN,clash.razord.top,DIRECT\\n - DOMAIN,yacd.haishan.me,DIRECT\\n - RULE-SET,private,DIRECT\\n - RULE-SET,reject,REJECT\\n - RULE-SET,icloud,DIRECT\\n - RULE-SET,apple,DIRECT\\n - RULE-SET,google,DIRECT\\n - RULE-SET,proxy,PROXY\\n - RULE-SET,direct,DIRECT\\n - RULE-SET,lancidr,DIRECT\\n - RULE-SET,cncidr,DIRECT\\n - RULE-SET,telegramcidr,PROXY\\n - GEOIP,,DIRECT\\n - GEOIP,CN,DIRECT\\n - MATCH,PROXY\\n\\nrule-providers:\\n reject:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt\\"\\n path: ./ruleset/reject.yaml\\n interval: 86400\\n\\n icloud:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/icloud.txt\\"\\n path: ./ruleset/icloud.yaml\\n interval: 86400\\n\\n apple:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/apple.txt\\"\\n path: ./ruleset/apple.yaml\\n interval: 86400\\n\\n google:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt\\"\\n path: ./ruleset/google.yaml\\n interval: 86400\\n\\n proxy:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt\\"\\n path: ./ruleset/proxy.yaml\\n interval: 86400\\n\\n direct:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt\\"\\n path: ./ruleset/direct.yaml\\n interval: 86400\\n\\n private:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/private.txt\\"\\n path: ./ruleset/private.yaml\\n interval: 86400\\n\\n gfw:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/gfw.txt\\"\\n path: ./ruleset/gfw.yaml\\n interval: 86400\\n\\n greatfire:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/greatfire.txt\\"\\n path: ./ruleset/greatfire.yaml\\n interval: 86400\\n\\n tld-not-cn:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/tld-not-cn.txt\\"\\n path: ./ruleset/tld-not-cn.yaml\\n interval: 86400\\n\\n telegramcidr:\\n type: http\\n behavior: ipcidr\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/telegramcidr.txt\\"\\n path: ./ruleset/telegramcidr.yaml\\n interval: 86400\\n\\n cncidr:\\n type: http\\n behavior: ipcidr\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/cncidr.txt\\"\\n path: ./ruleset/cncidr.yaml\\n interval: 86400\\n\\n lancidr:\\n type: http\\n behavior: ipcidr\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/lancidr.txt\\"\\n path: ./ruleset/lancidr.yaml\\n interval: 86400\\n\\n applications:\\n type: http\\n behavior: classical\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/applications.txt\\"\\n path: ./ruleset/applications.yaml\\n interval: 86400"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayTemplate"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"{\\n \\"log\\": {\\n \\"loglevel\\": \\"warning\\"\\n },\\n \\"api\\": {\\n \\"tag\\": \\"api\\",\\n \\"services\\": [\\n \\"HandlerService\\",\\n \\"LoggerService\\",\\n \\"StatsService\\"\\n ]\\n },\\n \\"dns\\": null,\\n \\"routing\\": {\\n \\"rules\\": [\\n {\\n \\"inboundTag\\": [\\n \\"api\\"\\n ],\\n \\"outboundTag\\": \\"api\\",\\n \\"type\\": \\"field\\"\\n }\\n ]\\n },\\n \\"policy\\": {\\n \\"levels\\": {\\n \\"0\\": {\\n \\"statsUserUplink\\": true,\\n \\"statsUserDownlink\\": true\\n }\\n },\\n \\"system\\": {\\n \\"statsInboundUplink\\": true,\\n \\"statsInboundDownlink\\": true\\n }\\n },\\n \\"inbounds\\": [],\\n \\"outbounds\\": [\\n {\\n \\"protocol\\": \\"freedom\\"\\n }\\n ],\\n \\"transport\\": null,\\n \\"stats\\": {},\\n \\"reverse\\": null,\\n \\"fakeDns\\": null\\n}"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("registerEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开放注册 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("registerQuota")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("注册用户默认配额 单位/MB")])]),t._v(" "),s("tr",[s("td",[t._v("registerExpireDays")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("注册用户过期天数 单位/天")])]),t._v(" "),s("tr",[s("td",[t._v("resetDownloadAndUploadMonth")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否每月重设下载和上传流量")])]),t._v(" "),s("tr",[s("td",[t._v("trafficRankEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开启流量排行 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("captchaEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开启验证码登录 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("expireWarnEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开启到期警告 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("expireWarnDay")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("到期警告 单位/天")])]),t._v(" "),s("tr",[s("td",[t._v("emailEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开启邮箱功能 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("emailHost")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("系统邮箱设置 host")])]),t._v(" "),s("tr",[s("td",[t._v("emailPort")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("系统邮箱设置 port")])]),t._v(" "),s("tr",[s("td",[t._v("emailUsername")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("系统邮箱设置 username")])]),t._v(" "),s("tr",[s("td",[t._v("emailPassword")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("系统邮箱设置 password")])]),t._v(" "),s("tr",[s("td",[t._v("systemName")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("系统名称")])]),t._v(" "),s("tr",[s("td",[t._v("clashRule")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Clash模板")])]),t._v(" "),s("tr",[s("td",[t._v("xrayTemplate")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray模板")])])])]),t._v(" "),s("h3",{attrs:{id:"更新系统配置"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#更新系统配置"}},[t._v("#")]),t._v(" 更新系统配置")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/system/updateSystemById")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"registerEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"registerQuota"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1024")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"registerExpireDays"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"resetDownloadAndUploadMonth"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trafficRankEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"captchaEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"expireWarnEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"expireWarnDay"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"emailEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"emailHost"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"emailPort"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"emailUsername"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"emailPassword"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"systemName"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Trojan Panel"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"clashRule"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"rules:\\n - RULE-SET,applications,DIRECT\\n - DOMAIN,clash.razord.top,DIRECT\\n - DOMAIN,yacd.haishan.me,DIRECT\\n - RULE-SET,private,DIRECT\\n - RULE-SET,reject,REJECT\\n - RULE-SET,icloud,DIRECT\\n - RULE-SET,apple,DIRECT\\n - RULE-SET,google,DIRECT\\n - RULE-SET,proxy,PROXY\\n - RULE-SET,direct,DIRECT\\n - RULE-SET,lancidr,DIRECT\\n - RULE-SET,cncidr,DIRECT\\n - RULE-SET,telegramcidr,PROXY\\n - GEOIP,,DIRECT\\n - GEOIP,CN,DIRECT\\n - MATCH,PROXY\\n\\nrule-providers:\\n reject:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt\\"\\n path: ./ruleset/reject.yaml\\n interval: 86400\\n\\n icloud:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/icloud.txt\\"\\n path: ./ruleset/icloud.yaml\\n interval: 86400\\n\\n apple:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/apple.txt\\"\\n path: ./ruleset/apple.yaml\\n interval: 86400\\n\\n google:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt\\"\\n path: ./ruleset/google.yaml\\n interval: 86400\\n\\n proxy:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt\\"\\n path: ./ruleset/proxy.yaml\\n interval: 86400\\n\\n direct:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt\\"\\n path: ./ruleset/direct.yaml\\n interval: 86400\\n\\n private:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/private.txt\\"\\n path: ./ruleset/private.yaml\\n interval: 86400\\n\\n gfw:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/gfw.txt\\"\\n path: ./ruleset/gfw.yaml\\n interval: 86400\\n\\n greatfire:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/greatfire.txt\\"\\n path: ./ruleset/greatfire.yaml\\n interval: 86400\\n\\n tld-not-cn:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/tld-not-cn.txt\\"\\n path: ./ruleset/tld-not-cn.yaml\\n interval: 86400\\n\\n telegramcidr:\\n type: http\\n behavior: ipcidr\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/telegramcidr.txt\\"\\n path: ./ruleset/telegramcidr.yaml\\n interval: 86400\\n\\n cncidr:\\n type: http\\n behavior: ipcidr\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/cncidr.txt\\"\\n path: ./ruleset/cncidr.yaml\\n interval: 86400\\n\\n lancidr:\\n type: http\\n behavior: ipcidr\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/lancidr.txt\\"\\n path: ./ruleset/lancidr.yaml\\n interval: 86400\\n\\n applications:\\n type: http\\n behavior: classical\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/applications.txt\\"\\n path: ./ruleset/applications.yaml\\n interval: 86400"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayTemplate"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"{\\n \\"log\\": {\\n \\"loglevel\\": \\"warning\\"\\n },\\n \\"api\\": {\\n \\"tag\\": \\"api\\",\\n \\"services\\": [\\n \\"HandlerService\\",\\n \\"LoggerService\\",\\n \\"StatsService\\"\\n ]\\n },\\n \\"dns\\": null,\\n \\"routing\\": {\\n \\"rules\\": [\\n {\\n \\"inboundTag\\": [\\n \\"api\\"\\n ],\\n \\"outboundTag\\": \\"api\\",\\n \\"type\\": \\"field\\"\\n }\\n ]\\n },\\n \\"policy\\": {\\n \\"levels\\": {\\n \\"0\\": {\\n \\"statsUserUplink\\": true,\\n \\"statsUserDownlink\\": true\\n }\\n },\\n \\"system\\": {\\n \\"statsInboundUplink\\": true,\\n \\"statsInboundDownlink\\": true\\n }\\n },\\n \\"inbounds\\": [],\\n \\"outbounds\\": [\\n {\\n \\"protocol\\": \\"freedom\\"\\n }\\n ],\\n \\"transport\\": null,\\n \\"stats\\": {},\\n \\"reverse\\": null,\\n \\"fakeDns\\": null\\n}"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("registerEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开放注册 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("registerQuota")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("注册用户默认配额 单位/MB")])]),t._v(" "),s("tr",[s("td",[t._v("registerExpireDays")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("注册用户过期天数 单位/天")])]),t._v(" "),s("tr",[s("td",[t._v("resetDownloadAndUploadMonth")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否每月重设下载和上传流量")])]),t._v(" "),s("tr",[s("td",[t._v("trafficRankEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开启流量排行 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("captchaEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开启验证码登录 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("expireWarnEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开启到期警告 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("expireWarnDay")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("到期警告 单位/天")])]),t._v(" "),s("tr",[s("td",[t._v("emailEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开启邮箱功能 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("emailHost")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("系统邮箱设置 host")])]),t._v(" "),s("tr",[s("td",[t._v("emailPort")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("系统邮箱设置 port")])]),t._v(" "),s("tr",[s("td",[t._v("emailUsername")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("系统邮箱设置 username")])]),t._v(" "),s("tr",[s("td",[t._v("emailPassword")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("系统邮箱设置 password")])]),t._v(" "),s("tr",[s("td",[t._v("systemName")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("系统名称")])]),t._v(" "),s("tr",[s("td",[t._v("clashRule")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Clash模板")])]),t._v(" "),s("tr",[s("td",[t._v("xrayTemplate")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray模板")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"上传静态网站文件"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#上传静态网站文件"}},[t._v("#")]),t._v(" 上传静态网站文件")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/system/uploadWebFile")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("p",[t._v("Form Data")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("file: (binary)\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("file")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("文件二进制")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"上传logo"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#上传logo"}},[t._v("#")]),t._v(" 上传logo")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/system/uploadLogo")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("p",[t._v("Form Data")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("file: (binary)\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("file")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("文件二进制")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h2",{attrs:{id:"黑名单"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#黑名单"}},[t._v("#")]),t._v(" 黑名单")]),t._v(" "),s("h3",{attrs:{id:"分页查询黑名单"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#分页查询黑名单"}},[t._v("#")]),t._v(" 分页查询黑名单")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/blackList/selectBlackListPage")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("/api/blackList/selectBlackListPage?pageNum=1&pageSize=20&ip=143.201.86.91\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("pageNum")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页号")])]),t._v(" "),s("tr",[s("td",[t._v("pageSize")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页大小")])]),t._v(" "),s("tr",[s("td",[t._v("ip")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("IP地址")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pageNum"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pageSize"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"total"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"blackLists"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"ip"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"143.201.86.91"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"createTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"2023-08-19T16:24:58+08:00"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("pageNum")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页号")])]),t._v(" "),s("tr",[s("td",[t._v("pageSize")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页大小")])]),t._v(" "),s("tr",[s("td",[t._v("total")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("总数")])]),t._v(" "),s("tr",[s("td",[t._v("blackLists")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("黑名单")])]),t._v(" "),s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("ip")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("IP地址")])]),t._v(" "),s("tr",[s("td",[t._v("createTime")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("创建时间")])])])]),t._v(" "),s("h3",{attrs:{id:"删除黑名单"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#删除黑名单"}},[t._v("#")]),t._v(" 删除黑名单")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/blackList/deleteBlackListByIp")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"ip"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"143.201.86.91"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("IP")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("IP地址")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"创建黑名单"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#创建黑名单"}},[t._v("#")]),t._v(" 创建黑名单")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/blackList/createBlackList")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"ip"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"143.201.86.91"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("ip")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("IP地址")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h2",{attrs:{id:"邮件"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#邮件"}},[t._v("#")]),t._v(" 邮件")]),t._v(" "),s("h3",{attrs:{id:"查询邮件发送记录"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#查询邮件发送记录"}},[t._v("#")]),t._v(" 查询邮件发送记录")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/emailRecord/selectEmailRecordPage")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("/api/emailRecord/selectEmailRecordPage?pageNum=1&pageSize=20&toEmail=123&state=1\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("pageNum")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页号")])]),t._v(" "),s("tr",[s("td",[t._v("pageSize")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页大小")])]),t._v(" "),s("tr",[s("td",[t._v("toEmail")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("收件人")])]),t._v(" "),s("tr",[s("td",[t._v("state")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("状态")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"emailRecords"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pageNum"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pageSize"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"total"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("pageNum")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页号")])]),t._v(" "),s("tr",[s("td",[t._v("pageSize")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页大小")])]),t._v(" "),s("tr",[s("td",[t._v("total")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("总数")])]),t._v(" "),s("tr",[s("td",[t._v("emailRecords")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("发送记录")])]),t._v(" "),s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("toEmail")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("收件人邮箱")])]),t._v(" "),s("tr",[s("td",[t._v("subject")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("主题")])]),t._v(" "),s("tr",[s("td",[t._v("content")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("内容'")])]),t._v(" "),s("tr",[s("td",[t._v("state")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("状态 0/未发送 1/发送成功 -1/发送失败")])]),t._v(" "),s("tr",[s("td",[t._v("createTime")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("创建时间")])])])]),t._v(" "),s("h2",{attrs:{id:"文件任务"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#文件任务"}},[t._v("#")]),t._v(" 文件任务")]),t._v(" "),s("h3",{attrs:{id:"分页查询文件任务"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#分页查询文件任务"}},[t._v("#")]),t._v(" 分页查询文件任务")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/fileTask/selectFileTaskPage")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("/api/fileTask/selectFileTaskPage?pageNum=1&pageSize=20&accountUsername=sysadmin\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("pageNum")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页号")])]),t._v(" "),s("tr",[s("td",[t._v("pageSize")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页大小")])]),t._v(" "),s("tr",[s("td",[t._v("accountUsername")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("创建人")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"fileTasks"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"batchCreateAccountExport-20230819161912.json"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"status"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"errMsg"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"accountUsername"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"sysadmin"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"createTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"2023-08-19T16:19:12+08:00"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pageNum"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pageSize"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"total"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("pageNum")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页号")])]),t._v(" "),s("tr",[s("td",[t._v("pageSize")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页大小")])]),t._v(" "),s("tr",[s("td",[t._v("total")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("总数")])]),t._v(" "),s("tr",[s("td",[t._v("fileTasks")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("文件任务")])]),t._v(" "),s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("文件名称")])]),t._v(" "),s("tr",[s("td",[t._v("type")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("类型 1/用户导入 2/服务器导入 3/用户导出 4/服务器导出")])]),t._v(" "),s("tr",[s("td",[t._v("status")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("状态 -1/失败 0/等待 1/正在执行 2/成功")])]),t._v(" "),s("tr",[s("td",[t._v("errMsg")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("错误信息")])]),t._v(" "),s("tr",[s("td",[t._v("accountUsername")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("登录用户名")])]),t._v(" "),s("tr",[s("td",[t._v("createTime")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("创建时间")])])])]),t._v(" "),s("h3",{attrs:{id:"删除文件任务"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#删除文件任务"}},[t._v("#")]),t._v(" 删除文件任务")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/fileTask/deleteFileTaskById")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"下载文件任务的文件"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#下载文件任务的文件"}},[t._v("#")]),t._v(" 下载文件任务的文件")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/fileTask/downloadFileTask")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("p",[t._v("Content-Type: application/octet-stream")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v('[\n {\n "username": "83tBsbt6dJ0j",\n "pass": "83tBsbt6dJ0j"\n },\n {\n "username": "BxjLbz4rQyYd",\n "pass": "BxjLbz4rQyYd"\n },\n {\n "username": "XLtcPBGHMEJz",\n "pass": "XLtcPBGHMEJz"\n },\n {\n "username": "foxXLpN0KQkp",\n "pass": "foxXLpN0KQkp"\n },\n {\n "username": "bX3pahuM7Lma",\n "pass": "bX3pahuM7Lma"\n }\n]\n')])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("username")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录用户名")])]),t._v(" "),s("tr",[s("td",[t._v("pass")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录密码")])])])]),t._v(" "),s("h3",{attrs:{id:"获取文件模板"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#获取文件模板"}},[t._v("#")]),t._v(" 获取文件模板")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/fileTask/downloadTemplate")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"grpc_port"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("8100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"ip"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"127.0.0.1"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"example"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("ip")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("服务器IP")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("服务器名称")])]),t._v(" "),s("tr",[s("td",[t._v("grpc_port")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("API端口")])])])])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{298:function(t,s,a){"use strict";a.r(s);var r=a(7),e=Object(r.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"api文档"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#api文档"}},[t._v("#")]),t._v(" API文档")]),t._v(" "),s("h2",{attrs:{id:"开发前必读"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#开发前必读"}},[t._v("#")]),t._v(" 开发前必读")]),t._v(" "),s("ol",[s("li",[s("p",[t._v("接口认证和鉴权")]),t._v(" "),s("p",[t._v("除了开放接口,其余接口必须设置请求头"),s("code",[t._v("Authorization")]),t._v("用于认证和鉴权")]),t._v(" "),s("p",[s("code",[t._v("Authorization")]),t._v("值格式为"),s("code",[t._v("Bearer ${Token}")])]),t._v(" "),s("p",[s("code",[t._v("${Token}")]),t._v("可通过登录接口("),s("code",[t._v("/api/auth/login")]),t._v(")获得")])]),t._v(" "),s("li",[s("p",[t._v("通用返回对象")]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")])])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("code")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("状态码 20000/成功 50000/系统错误 50014/登录过期 50008/认证失败 50401/未认证 50403/暂无权限")])]),t._v(" "),s("tr",[s("td",[t._v("type")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("类型 success/成功 error/错误 warning/警告")])]),t._v(" "),s("tr",[s("td",[t._v("data")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("返回值")])])])]),t._v(" "),s("h2",{attrs:{id:"开放接口"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#开放接口"}},[t._v("#")]),t._v(" 开放接口")]),t._v(" "),s("h3",{attrs:{id:"验证码"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#验证码"}},[t._v("#")]),t._v(" 验证码")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/auth/generateCaptcha")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"captchaId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"VeC7Raoxo33hQTrnJT8s"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"captchaImg"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPAAAABQCAIAAACoK28rAAAXWUlEQVR4nOx9CZAkR7ne/2dmHX3OubPn7M5qd/Wk1a6u1c3TQ9J7SICQJWwMFuAIjpAMgQOjMIccwmGwjWwwFg4UYLBlwNxWcAhxSAKFOAxISFq0uhG7Wu2hPeae7unu6qrKzP9FVfW0enqu7pmene7Z/mJitzorMyur6+s/v/zzzyzxfO65DrYFADL6MDQrOBICSWIAYDEJgBy1p3mUcjoDAUxJwX8EhCAZalzpNjUITKI5Bn4HoASZoMpTZgaZC15XcKyNaadE+SiidXMyO6Jv0Fymg3sA4FP8Pp0hNAhNrsDyIzUVEYDPVwWpo7vC8K8KYQoSoIaUtaWSsWJmPc3MbIEagBiBJL7SbVlhCA2MqCimPW2PY7qo1eqw09EtaIi4K/KoBSg7oDnKIDFO3URUVWgWQpfRPMwu/VYROGgFTDDtKGNlm7SyYAA8tM2MwJakERRDP+yxfI4JV0/aLd99aUGAyLygOzYyKBPAJMQzMR5P+XI4YEXA5hKhETHJEwkem4/QZaw4s6PfqsV8RAICTahpFZigxcOQAZsRIOVqDYAMhCJpMQJQDJAw7lPBaPmvSMWB54MDkeqMWWmwwHNO+OPDKARJWc4mkK8xew0U0U89oGmNTO1gW6K/ZbyJORDjvkCtA91Mpzmby7BC26wZGipQzzzsnbkGBLL91SA64sl+ZtqBtXYd0Eq7DimJwhDp7sgqAxEi9Jo9EZsdXXzNQpc5XQtfT7HN9olz1L4O/uUARaqpY1n1EIoUQ6HI4+hz1KHK4JoIQQVPG6oFZougkoFGd58qTGon742cAEQeS4pUB0k/OMc4KOXDcBq7ACCrJif87CzMaEJmE0FRG/FAT4EkptoWOgQnYCogrWOiqcgHMALzDJIh16RXunn1Yi6+8XiKCTMwyIwTae15oAO9kWdDjLCbd4dDR52RkwsMChfH7GUiNxHkldnwalsakkEwKPTJ98nngUmOe1qyYKChp8aEHMlkJbcHAWhirubNo9lqlK9oWuR72ncLMKINEjnkDDQPFLPJAlYUtRt5PGrqu+tidjMMIlc9EAIqF0xmSfIEuqHjOeGRCv4nFoyckSElhWcxXwd2nBEBQ2Iok0AFZQTWYbkVScA4NeuZGokks2ORXA6IxAFCVy0CcBeUFdRNAaeD366a6pDqE6NtZjcJKCS0RCj7oREAKZDUjIhp8CzoMh1NOOHH/HBOimFpMG1xlRJFjpT1reVqnm+BEsB98E0gRNuJ9Hy97gRVyPkq53dMnwvMI2hQMWAeKovCGVIs9ziLHF21mb2CMMOxoGSBhhYqGAJ6vDRZKDRJhtKEhOVIzbLSJgoYnOAuRx2R21VcUazLcGzOi6rxw2vyYoAK7XzpsxJ8YiDZXYekj0iCABYgc8GYQL8z0BOBbS4gL4CKgxbEXCQGkpSBwmSleYml3s+imd0m9+LAwmkzyQNax3zyOIrQYecY6Bos7SgQIG3FkCb8gM0G02nheFpwJIvLyFpLzQrKjHOv4YQmz0amgEu7OEAa7SQBI0fA5ChLdhPifCpnLj4wD6wRDOywDgy9ioGfJFFAFaNQPRcNnjTRtJlV1G7D7qeyNW2zvXwwwymVaOrbDwUGhTbbMQKb7RooFJjcd5ShQ/JYTHpaZHzb5jIhvNxUPUUl4oHZpka6jDRPwDrDhEImsJ3IwS+CYQMXpBUWJjDRVU3oeR49Acjka65HJCAG2gxss3CQBESxPJMyl+QJBFxj9mTkbG67paMtSJYVBCWxIRkSIteBnS4FCBBIAaaHLhPlzJFdNJiq5O5UNEEoQZeM6Am6DjMS2i0wZEAEygXG0Qj6CWAcpOtNHHkuP/Ls5OALhexR5eaUG8gSbiVELG1398fWnZns320ke8rVahN4MZAaBCF9CZgPzEdtkp6K5ZGkRvyxXqMbATtFBz6fe27p91PjDdeFNrlnhS2pKNCWZEryOZqKsjazwkQeuvAYVzbKYWZH+QXTXYYjiYlAQ9v+FBEsLlPCHfUSM8J7akXVM9UKtQRh0eQIM2KgJTAGTBBjavClx7Ov/ip77A9auQtUipjacn7veW+Ord1RV2MEE2metJl9ighdxuKmzdvkLiPmB+rCloQUDAF9jq7ASIfYkoQmxrWFaphb5c5aMB0JD3/KO40IXUbB0yIn63Ptz/P4vAKacfIc9IvIDfBdiCUnTj5338ln7/OL4/XeZs/ua/sufTuyuhXEqSZ0JdrkXgQiC53wAu4CQd5inCjyciQ9DQSaY4K7ytI+calZdVgigkCdEi4CjfvxWsxzjY/Jc9CMkTPJpAemDQ47+cpPP1EcO7ToO42v27Hl+o8HP456MAuh9219I8nZ/eFlGL1du566t/5Gzo5FRzudhuSOLLTQkC4qriFvMtdAhcG4UGhQYdidIZQRc0N9yce9WLksQ+oyHQZaAxv3YvPMF9b7REij8gO9MT45zuJ5wIA/4y88cuL331zKzabPuHjTP3yoriLVJl1NTC7I5oaj3kFkGVX5Twd+RySUDCZinFFwMLV0pTQTLpBMy8tK29NCTzfABOgoQ2CgQFLCjbzUEZYYQZnxBtFwQWuWAPJs8hMA0Hnm3w498cNo5BeBCSux4az4hrNifWcIO83tBDKhijln9PDkoaeyL/+J9DTuZQ8+MXlob2pgT+0tqSa0HMss5caWiEX4/ipxOji5PY5WqJg1QhQhGg0QJcdwxhsMphwQszqYiaAgjVBVGx1GsdswpNyw6JZM+4Z1IvQSgy6kwDcBSbsxEc917bx65KmfAUBi/a7Os69ID+xBUT09ycy4ke5Lb714zZ6bXn34S8WRaQ9u8E/3prZcAFjreoUZhB7Plo+3/s9Pip7OWYuhuewLRhpI7pkVti6iAOiUq70wGsmUFBpsRCIGaCiCtPIrdDMipIRrMonAtO6Sam2pHlUQ/BBiH9UTizv/d0ieDYoD0yQFoibP7tl1rXKcru03mskBlh6bv3Iz3Tfwlk8c/PGnvcxgOdHLDOZPvJTYcPY8BQ0mGDBJiiHOZ6E73nA5Wk0R4LZEcs9asEZ+j+vCp0bu/3Pxtcw3ps7/aNd1i2tDQ+AxDkIkXS/QruEceOj2DdRzzmJdqMNV4KX75XyYs5ymTq0TnB9nlNQ60ANax4FzxAJRev7L1fRFheaZinFSHEK3N+sYA815LL3u0lvJtWHeOcIymBlf97p3H/nFf69MzB15en5CW8zqFiXLOyeheSrRJGyuQkPIPVfZqof3vHf8kyP3jYSBtssBAnpxeN9jxx45Nnk4UxxDxE67Z1vX2Vf0/8Pm9LZZi2gwC7Apx5ljFTrkoKk8UwPnKS1i2k4kA4t8IIE9NuuI8rOAsjGl1hMwDicBZMXVDcTZx0t192ahtCdpoFUkJ4HxSeQyojD5JrA6AjmSm3abHWsrjXTh5F/nL6ID6a15MIKY0d2oKUIba7pqb8RKoep7X/rasMoavjf52/829gNJyzVEnvQmvrbvrpfHXqxMHMwdG8wd++PRh1/X/4a37Xwfx+p9JkZJUMgeh8eZGOgKF0BX8kWTjSwPumMqgREYRIzzaGFpqpwTQcPUVhBL1mOhnGdhsAVTLJYnz0KrGFzRjQEhi+dqryux4exKQktngXFdQTkF5UTHMy10SUOLvu7aW9AkaJTxdsj7j6Pf/Xnu8VnPmpBa3MRnZamcn/nCox8ecU7Mlf8PR3+VLeb+7cX/Ayu2pfCAORW+Nh7OnRSAxSsorXVa8GOI6ygkq6YYZyOGKCK6Um0mKs+tEIA7qcd8PVHvvcwFZMGvC4UfCIxgVErkxtAskjJA+LXXI+LTRm6ykK2jbNVn+ZqFbj1CV2KmyamRhUfk8EeGvnrAO97Y9lRd/X89/akym8/u2XPD9vduTp2pSb2SeeG+/fe8kgnM9rPDj/5k/z037bhlqhBmpu+tE+0w4xKLYwWhKU0wzNmgVOtDfncyLGiKZXymaARgJMoWFz4PBlIN2u0g/Jmh7ejJTtCMnDgGJhnJt1BIIIaGt+i6sZ5gk7kJ3dcCkqMu1KJPHik8fcfI/83rYjmFIUuindWFBrbkxdEnnx76Q3R80bprPnThndGyCwA4v+/Kc3ovueuJ214YfRIAfvryN67a/NZOqzeQKMDckDcJpHx4IAKxgQXCrsoVsQRKbRD8FU/nS9OEKrTjFZY+LvwE9yr90EsEmi55NppF3j0Ujv+CenU+DZqBCK+BdcjoStd18AiMWO1lq3+gZbedaHELvSCizRvKf+P60GfHvvmRoa9WshkRP93z7n5jTWMv/eAr340OYiLxnl23s+lPwWDW+8/99wa3wsBl/4GD3w4OALOhNY0hle0xAwpFK0zoV6fdixzKSjspvJTh8gr3AiLYXHaZTjxks6sat/sU98mzAkUexSwD6FxHME4TQTrWozeCPmd8WvdopHprLzunhZ746W/H7/+Nd2xQ5wK5zdMJ64xNqSvO73nnm81Na+tqX/Njpm8uXF7K7ui5/qr4+q9nG2meizL/zPCj0fFlG65LmbN4+ntj6/esff1jx38JAI8ef+jms28bI04ECMTpSD4Yym8MhLg+FrJngIBVdcuu4hMUSwq328xL4pqQIQnUBFBURkbZDV8ni4YvR9YzuwBMhUrDAy5DJQ0Yy9dej/YKhZMvVabY3f21F5+T0IXnD0xLH8/KvS/k974w+KXvr3nvjRvuuBWNVbI5xqy+OZsZ/6n3psvsM8KIiGndpQeTi/AJdLDSnoLPj+7VU56TnWvPmauq3evOjwidcUefyeztTl0a2CrIhgwuG11NMKeV9TUb92IG0wZTCESEec388IexHECrgEacfANNCkxy5MhTgiWydemNsRd+TUpWpiQ3n1d78WrJEds5u/uzDNJ66P/8+MA7P0Feff3I4vDXkcfLf7Q8y5Tvmfj/VWzu4ckv9t0csTkcdTXgTsvEPTj+l3Li5o7tc+WvPPXi6EuhT8OzYFRCgqbMUEDTkNA49zfja1aQRl6aBWl4ernYHIF3jqLl6kKCPDPQG77JUxNoLBQDXdna7NDIvp9Nq9NOJvt3115DtZXdce/nx+59iLS2d2wxN/SJrjRJKcezhX1/Gf1/D2V/+2SULffYM69+6sv9d/6b2q+0OOwLrVSE7T0XzpzaXDo+2fuW9534+pgqdYs7zLWfW/O2Xp4sZ/Aa6ooeKpyMDjrtnpiIz5Wtw+pKmumcFwxphvOHGfgxOA6gDchoeG3CS4PJodg0eyQRS2RYYpHhQNorHP3V3dpzKhN7dl1bVwTpLF6b7rdf1/Mv3pTYs9NY34u2yZJxs39d5w1Xbfv2fxm4+98hKxUZ/fbPi395ZXFNbyr0sMR/7n0rD8Nfrozv+PLad1WyOdyITDbwcmPOUHTQYS8w7O6wSo6m0cLRGAwGHTjECAw2NdsXTv45cTjuQcu7pLRXOPLAXcXRo5WJZkdfz3lvqque+gxe103XeEcHj3/ua9FmpmM/fHjDHbfUVUNzYre18UOdV4+q/Ac6Xz/zbGMtdKZYitFJmx3z50zbXccmA6Ey4RwvwEaa8rsxKEmgPGwOh4MqAUcb2MJTDz83euSBu9zxY5WJyPjGq/9VvQH+dffgfbf8s5N3f0c7gTDK/m7v6iA0APzz1EVznZLQSEJ7qjTFYHJ7/pzlDJ5yqMKLrKH0jCnsYCnc425Bn8W3rn9b7Y38lz//Qe2Zl4jiyKEjD35BFqqFyvq/e0+sb4ER3UzUPVGEtpm44Kzo2D85Um/xVkRj9anUJULzhRbMGVObp/jKicGQDUMWjJiQjUFJhdswzME1IcOgkaLoVGLy8FOH7r9zJpvXXn5z55lXLqLCxYyxjLUlR7fKNdJB27SY+d6DpUDqEvn4QkHrYorxnnJDD50BgAZk9ZSrTkCOQ9GBdQjKhAWijc++8fpGNL+RyBx49Piv/zfN2Cd13RXv6t71hsXVuRhCa6c0lyY6U4u76ukMwUTEabXQhrdl6hvM9CGtwSDgHIoKSr6RyIWHQCYsvKz6olvf24jmNwy5I0/PwmbEDVe+p/OsWUYyNWIxhPaOlcbprR7AtCIwuVUitF5AJ/janypihj67EvTUU2PgeZAI2dwkbrta4edGjz3ylSo2I7INV9/asf2ypdRcN6HlyLjzXGkSMXHJrqVc+/SEJWIFPx/OTjvz5/RkKYPJp63DC+cLEUFGAppD6wm/wUe/q6b7mwPbfPUtS2TzYgaFJ+76ZllTdvz9pUu8/GmILru01dWkt0CYb9YtRSp3zvBYG5ARkAegVmSzN3Ei+8reqsS1l769Y/vlS698moU+8vG71n34XfPEHg3f86ORb5VmJuPnnpl6/ZyurhpxcGzfk6/+rMbMP3j2v85z9sKNb9zes9T2nAL0JTYcHH8JACaKo/PnzLglZdwTb0A0WPO47TIv/6kqJdl/bs+59U2gzIVphB793gNj338wcenu9N9dFD//b6ytG0V3Wru+HBkv7Htp9HsP5J4o7UrDbHPzZ29rSAtON6xNbIoOMsWxgp+LG8lZs2Xc8dyUCe+NrTuFDVx2OIP7q1LWXX5zoyqv1tBElHvsmdxjz8xThsXsgbtvj+2aM7CmjXmwvXtn+fhQZv/O3gtmzXY489pT39Y935rnGtE8bjs3c7LyY6zvDLNzfaMqn0bo9FUXZ3/zxPwFUq87v/8zH7a21RGi2kYlNndsS5jJfLhT8zODj89F6KdOlGKmBRPbOv9m6ddtHredcqbFNsb6zmhg5dMIve1bd7ovH8388o/5P79YfPlVf3BE5xwWs0R3h9m/NnHx7o7rrojvrm+f0/mxtfu8ga75XCWVuvmtuz7Gcc7wX5z7VFMBAfesv/J3hx8AgL0nfn/9jnfMjPEfdQafHiwJzfN6Loo5DFARQy1QiWZ5gdWioeW09YUitkBMS12olhzWtv6+D76jgReYHwhYe0QoR86WIXz01OPvt97w+yMPadKuLH7/ua++/4KPsYpZQ19733n2y3LKCX3N9pv8BEcN3NPc1Uxh9ArkVQPkjXymq4EfLYcue801W//JwwfvA4Bnh5784uP/4doz/umm9IAidSRz4MGXf3gsW9qFds/6v+3v2BbtX082E0WNkjhoabXwu+l33vqN5au8TeiVwVt23Hx4Yv/+seejNSxf2XvnzDzrkptu3vWB8kcCkBYzHMUkMeO1V2u2UYn2t7IyYMg+eNEdl2ycM2jhnDUX3nbZZ6rmCAmBwkBRJleT6Ggk2hZ6xSCY8e7d//rKzW/846sPH57YP+aMsHBvu03prZdtvHp79zmzliKGqChcvt3yo8PlQJvQK4wtHdu3zL1UdjZE+7YsW4NaHG1CtxiiHQH0witUmhSF4y8OPfkjZ/gQAMV6B9bsuSmxqZEhbm0N3UpAAlQECLo1vdHO0MHDv/h84eR+Uj4pWRg8cOSBuwonXmrgJdqEbiVEey5rgzV626NThJGn7q96iwqRHv7zTxp4iWaXHJf031A+bpW5wGUCAjBfA0NltCadAQqDB2ZJPFkdq7QUNDuhB7rq2AZqdYN7BATSqu3lDk0J7c4SvR3ID+mhaMzrItqSozXAdGCetcE0b1XzHL3We2YiE2aj2NwmdGsAAbiriaM0W5jNABBfP0vYYHz9WQ28RJvQLQDuaQSQdss/rDV7bqzaCQkZX7PnpgZeouW/o1UPpohJ8O3VEGFndfcP3HB7sn8XN2PMsBIbdw7ccPsyxkO30WxgGoRL0m5VP91MxPq2bX7TR5ev/raFbl4ggHC1tHBmYB1SjW+yPO3QJnSTImBzUSsDZ7o1UAenVqhdzY625GhScFejDtRzdaQoAWoijqtGhDQWbUI3I8KBYMBjVLMLi9adLFxutAndjNAcvcRpPc+/aODzuedWug1ttNEwtAeFbawqtAndxqpCm9BtrCq0Cd3GqkKb0G2sKrQJ3caqQpvQbawqtAndxqpCm9BtrCq0Cd3GqkKb0G2sKvxjAAAA//8cxJWcgoqUiQAAAABJRU5ErkJggg=="')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("captchaId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("验证码id")])]),t._v(" "),s("tr",[s("td",[t._v("captchaImg")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("验证码图片")])])])]),t._v(" "),s("h3",{attrs:{id:"登录"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#登录"}},[t._v("#")]),t._v(" 登录")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/auth/login")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"username"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"sysadmin"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pass"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123456"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"captchaId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"y1mAtmYe4fErHN6vcYvo"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"captchaCode"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"25"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("username")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录用户名")])]),t._v(" "),s("tr",[s("td",[t._v("pass")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录密码")])]),t._v(" "),s("tr",[s("td",[t._v("captchaId")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("验证码id")])]),t._v(" "),s("tr",[s("td",[t._v("captchaCode")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("验证码值")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"token"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2NvdW50Vm8iOnsiaWQiOjEsInF1b3RhIjowLCJkb3dubG9hZCI6MCwidXBsb2FkIjowLCJ1c2VybmFtZSI6InN5c2FkbWluIiwiZW1haWwiOiIiLCJyb2xlSWQiOjEsImRlbGV0ZWQiOjAsInByZXNldEV4cGlyZSI6MCwicHJlc2V0UXVvdGEiOjAsImxhc3RMb2dpblRpbWUiOjAsImV4cGlyZVRpbWUiOjAsImNyZWF0ZVRpbWUiOiIwMDAxLTAxLTAxVDAwOjAwOjAwWiIsInJvbGVzIjpbInN5c2FkbWluIiwiYWRtaW4iLCJ1c2VyIl19LCJleHAiOjE2OTIzODM4MzQsImlzcyI6InRyb2phbi1wYW5lbCJ9.ymvQ_VPsCvxjNpQUPTZ3fjWTZJk-URujCt3vSI-bnw8"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("token")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("授权Token")])])])]),t._v(" "),s("h3",{attrs:{id:"注册"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#注册"}},[t._v("#")]),t._v(" 注册")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/auth/register")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"username"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123456"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pass"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123456"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"captchaId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"BqEEo9jEdZrmfzz8K7R9"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"captchaCode"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"9"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("username")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录用户名")])]),t._v(" "),s("tr",[s("td",[t._v("pass")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录密码")])]),t._v(" "),s("tr",[s("td",[t._v("captchaId")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("验证码id")])]),t._v(" "),s("tr",[s("td",[t._v("captchaCode")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("验证码值")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"系统默认设置"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#系统默认设置"}},[t._v("#")]),t._v(" 系统默认设置")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/auth/setting")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"registerEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"registerQuota"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"registerExpireDays"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trafficRankEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"captchaEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"emailEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"systemName"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Trojan Panel"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("registerEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开放注册")])]),t._v(" "),s("tr",[s("td",[t._v("registerQuota")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("注册用户默认配额 单位/MB")])]),t._v(" "),s("tr",[s("td",[t._v("registerExpireDays")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("注册用户过期天数 单位/天")])]),t._v(" "),s("tr",[s("td",[t._v("captchaEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开启验证码登录")])]),t._v(" "),s("tr",[s("td",[t._v("emailEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开启邮箱功能 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("systemName")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("系统名称")])])])]),t._v(" "),s("h3",{attrs:{id:"订阅"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#订阅"}},[t._v("#")]),t._v(" 订阅")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/subscribe/:token")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("/api/auth/subscribe/NUNjOWtCZHhwWGpUYXZKSjRvNF9JTFBMU3VZWmphOTB4MEpmZWVicGt1UFBHZmRT\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("token")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Token")])])])]),t._v(" "),s("h3",{attrs:{id:"logo"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#logo"}},[t._v("#")]),t._v(" logo")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/image/logo")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("p",[t._v("Content-Type: application/octet-stream")]),t._v(" "),s("h2",{attrs:{id:"首页"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#首页"}},[t._v("#")]),t._v(" 首页")]),t._v(" "),s("h3",{attrs:{id:"仪表板"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#仪表板"}},[t._v("#")]),t._v(" 仪表板")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/dashboard/panelGroup")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"quota"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("-1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"residualFlow"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("-1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeCount"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"expireTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("4078656000000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"accountCount"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("8")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"cpuUsed"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"memUsed"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("32.9")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"diskUsed"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("32.3")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("quota")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("配额")])]),t._v(" "),s("tr",[s("td",[t._v("residualFlow")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("剩余流量")])]),t._v(" "),s("tr",[s("td",[t._v("nodeCount")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("节点总数")])]),t._v(" "),s("tr",[s("td",[t._v("expireTime")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("到期时间")])]),t._v(" "),s("tr",[s("td",[t._v("accountCount")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("用户总数")])]),t._v(" "),s("tr",[s("td",[t._v("cpuUsed")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("CPU使用率")])]),t._v(" "),s("tr",[s("td",[t._v("memUsed")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("内存使用率")])]),t._v(" "),s("tr",[s("td",[t._v("diskUsed")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("磁盘使用率")])])])]),t._v(" "),s("h3",{attrs:{id:"流量排行榜"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#流量排行榜"}},[t._v("#")]),t._v(" 流量排行榜")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/dashboard/trafficRank")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"username"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"23****34"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trafficUsed"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"0"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"username"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"12****23"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trafficUsed"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"0"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("username")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录用户名")])]),t._v(" "),s("tr",[s("td",[t._v("trafficUsed")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("已用流量")])])])]),t._v(" "),s("h2",{attrs:{id:"账户"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#账户"}},[t._v("#")]),t._v(" 账户")]),t._v(" "),s("h3",{attrs:{id:"注销"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#注销"}},[t._v("#")]),t._v(" 注销")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/logout")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"查询单个账户"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#查询单个账户"}},[t._v("#")]),t._v(" 查询单个账户")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/selectAccountById")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"username"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"sysadmin"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"roleId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"email"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123@gmail.com"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"presetExpire"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("7")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"presetQuota"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1073741824")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"expireTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1692519522967")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"deleted"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"quota"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("-1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"download"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"upload"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("username")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录用户名")])]),t._v(" "),s("tr",[s("td",[t._v("roleId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("角色id 1/系统管理员 3/普通用户")])]),t._v(" "),s("tr",[s("td",[t._v("email")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("邮箱")])]),t._v(" "),s("tr",[s("td",[t._v("presetExpire")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("预设过期时长 单位/天")])]),t._v(" "),s("tr",[s("td",[t._v("presetQuota")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("预设配额 单位/byte")])]),t._v(" "),s("tr",[s("td",[t._v("expireTime")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("过期时间")])]),t._v(" "),s("tr",[s("td",[t._v("deleted")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否禁用 0/正常 1/禁用")])]),t._v(" "),s("tr",[s("td",[t._v("quota")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("配额 单位/byte")])]),t._v(" "),s("tr",[s("td",[t._v("download")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("下载 单位/byte")])]),t._v(" "),s("tr",[s("td",[t._v("upload")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("上传 单位/byte")])])])]),t._v(" "),s("h3",{attrs:{id:"创建账户"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#创建账户"}},[t._v("#")]),t._v(" 创建账户")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/createAccount")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"quota"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1024")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"username"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123456"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pass"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123456"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"email"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123@gmail.com"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"roleId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"deleted"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"expireTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1693061885000")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("quota")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("配额 单位/MB")])]),t._v(" "),s("tr",[s("td",[t._v("username")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录用户名")])]),t._v(" "),s("tr",[s("td",[t._v("pass")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录密码")])]),t._v(" "),s("tr",[s("td",[t._v("email")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("邮箱")])]),t._v(" "),s("tr",[s("td",[t._v("roleId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("角色id 1/系统管理员 3/普通用户")])]),t._v(" "),s("tr",[s("td",[t._v("deleted")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否禁用 0/正常 1/禁用")])]),t._v(" "),s("tr",[s("td",[t._v("expireTime")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("过期时间")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"获取当前账户信息"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#获取当前账户信息"}},[t._v("#")]),t._v(" 获取当前账户信息")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/getAccountInfo")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"username"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"sysadmin"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"roles"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"sysadmin"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"admin"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"user"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("username")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录用户名")])]),t._v(" "),s("tr",[s("td",[t._v("roles")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("角色")])])])]),t._v(" "),s("h3",{attrs:{id:"分页查询账户"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#分页查询账户"}},[t._v("#")]),t._v(" 分页查询账户")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/selectAccountPage")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("/api/account/selectAccountPage?pageNum=1&pageSize=20&username=admin&deleted=0&orderFields=role_id,create_time&orderBy=desc&lastLoginTime=1\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("pageNum")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页号")])]),t._v(" "),s("tr",[s("td",[t._v("pageSize")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页大小")])]),t._v(" "),s("tr",[s("td",[t._v("username")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("登录用户名")])]),t._v(" "),s("tr",[s("td",[t._v("deleted")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("是否禁用 0/正常 1/禁用")])]),t._v(" "),s("tr",[s("td",[t._v("orderFields")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("排序字段 quota/总流量 role_id/角色 last_login_time/最后一次登录时间 expire_time/到期时间 deleted/是否禁用 create_time/创建时间")])]),t._v(" "),s("tr",[s("td",[t._v("orderBy")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("排序方式 asc/正序 desc/倒序")])]),t._v(" "),s("tr",[s("td",[t._v("lastLoginTime")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("是否使用过 0/未使用过 1/使用过")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pageNum"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pageSize"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"total"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"accounts"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"quota"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("-1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"download"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"upload"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"username"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"sysadmin"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"email"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"roleId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"deleted"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"presetExpire"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"presetQuota"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"lastLoginTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1692430857369")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"expireTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("4078656000000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"createTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"2022-04-01T00:00:00+08:00"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("pageNum")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页号")])]),t._v(" "),s("tr",[s("td",[t._v("pageSize")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页大小")])]),t._v(" "),s("tr",[s("td",[t._v("total")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("总数")])]),t._v(" "),s("tr",[s("td",[t._v("accounts")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("账户")])]),t._v(" "),s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("quota")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("配额 单位/byte")])]),t._v(" "),s("tr",[s("td",[t._v("download")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("下载 单位/byte")])]),t._v(" "),s("tr",[s("td",[t._v("upload")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("上传 单位/byte")])]),t._v(" "),s("tr",[s("td",[t._v("username")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("登录用户名")])]),t._v(" "),s("tr",[s("td",[t._v("email")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("邮箱")])]),t._v(" "),s("tr",[s("td",[t._v("roleId")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("角色id 1/系统管理员 3/普通用户")])]),t._v(" "),s("tr",[s("td",[t._v("deleted")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("是否禁用 0/正常 1/禁用")])]),t._v(" "),s("tr",[s("td",[t._v("presetExpire")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("预设过期时长 单位/天")])]),t._v(" "),s("tr",[s("td",[t._v("presetQuota")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("预设配额 单位/byte")])]),t._v(" "),s("tr",[s("td",[t._v("lastLoginTime")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("最后一次登录时间")])]),t._v(" "),s("tr",[s("td",[t._v("expireTime")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("过期时间")])]),t._v(" "),s("tr",[s("td",[t._v("createTime")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("创建时间")])])])]),t._v(" "),s("h3",{attrs:{id:"通过id删除账户"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#通过id删除账户"}},[t._v("#")]),t._v(" 通过id删除账户")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/deleteAccountById")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"修改密码"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#修改密码"}},[t._v("#")]),t._v(" 修改密码")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/updateAccountPass")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"oldPass"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123456"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"newPass"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123123"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("oldPass")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("原密码")])]),t._v(" "),s("tr",[s("td",[t._v("newPass")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("新密码")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"修改用户名或者邮箱"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#修改用户名或者邮箱"}},[t._v("#")]),t._v(" 修改用户名或者邮箱")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/updateAccountProperty")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"email"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123456@gmail.com"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"username"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"sysadmin"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pass"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123456"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("email")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("邮箱")])]),t._v(" "),s("tr",[s("td",[t._v("username")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("登录用户名")])]),t._v(" "),s("tr",[s("td",[t._v("pass")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录密码")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"修改账户"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#修改账户"}},[t._v("#")]),t._v(" 修改账户")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/updateAccountById")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"quota"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1024")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"username"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123456"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pass"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"123123"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"roleId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"deleted"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"expireTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1692378469728")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"email"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("quota")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("配额 单位/MB")])]),t._v(" "),s("tr",[s("td",[t._v("username")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录用户名")])]),t._v(" "),s("tr",[s("td",[t._v("pass")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("登录密码")])]),t._v(" "),s("tr",[s("td",[t._v("roleId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("角色id")])]),t._v(" "),s("tr",[s("td",[t._v("deleted")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否禁用 0/正常 1/禁用")])]),t._v(" "),s("tr",[s("td",[t._v("expireTime")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("过期时间")])]),t._v(" "),s("tr",[s("td",[t._v("email")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("邮箱")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"获取clash订阅地址"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#获取clash订阅地址"}},[t._v("#")]),t._v(" 获取Clash订阅地址")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/clashSubscribe")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/api/auth/subscribe/b0dBQVh1b1FlOEtLdUZPeWRZMGZYdGJuMC1UNWppSktOdm1aTEhlcU5ocVRuOG55"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("data")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("订阅地址")])])])]),t._v(" "),s("h3",{attrs:{id:"获取指定账户的clash订阅地址"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#获取指定账户的clash订阅地址"}},[t._v("#")]),t._v(" 获取指定账户的Clash订阅地址")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/clashSubscribeForSb")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("/api/account/clashSubscribeForSb?id=1\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/api/auth/subscribe/SkxhejNnQkQtbWZDb2owbUNDVjFsQWwzUzNsOWVxeGprME9qWHNfOGc4R0dMdUZP"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("data")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("订阅地址")])])])]),t._v(" "),s("h3",{attrs:{id:"重设下载和上传流量"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#重设下载和上传流量"}},[t._v("#")]),t._v(" 重设下载和上传流量")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/resetAccountDownloadAndUpload")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"导出账户"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#导出账户"}},[t._v("#")]),t._v(" 导出账户")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/exportAccount")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"导入账户"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#导入账户"}},[t._v("#")]),t._v(" 导入账户")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/importAccount")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("p",[t._v("Form Data")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("file: (binary)\ncover: 1\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("file")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("文件二进制")])]),t._v(" "),s("tr",[s("td",[t._v("cover")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否根据用户名覆盖 0/否 1/是")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"批量创建账户"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#批量创建账户"}},[t._v("#")]),t._v(" 批量创建账户")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/createAccountBatch")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"num"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("5")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"presetQuota"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1024")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"presetExpire"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("7")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("num")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("数量")])]),t._v(" "),s("tr",[s("td",[t._v("presetQuota")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("预设配额 单位/MB")])]),t._v(" "),s("tr",[s("td",[t._v("presetExpire")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("预设过期时长 单位/天")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"导出未使用的账户"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#导出未使用的账户"}},[t._v("#")]),t._v(" 导出未使用的账户")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/account/exportAccountUnused")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h2",{attrs:{id:"角色"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#角色"}},[t._v("#")]),t._v(" 角色")]),t._v(" "),s("h3",{attrs:{id:"查询角色列表"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#查询角色列表"}},[t._v("#")]),t._v(" 查询角色列表")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/role/selectRoleList")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"sysadmin"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"desc"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"System Admin"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"admin"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"desc"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Admin"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"user"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"desc"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"User"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("名称")])]),t._v(" "),s("tr",[s("td",[t._v("desc")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("描述")])])])]),t._v(" "),s("h2",{attrs:{id:"服务器"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#服务器"}},[t._v("#")]),t._v(" 服务器")]),t._v(" "),s("h3",{attrs:{id:"根据id查询服务器"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#根据id查询服务器"}},[t._v("#")]),t._v(" 根据id查询服务器")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/nodeServer/selectNodeServerById")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"测试服务器"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"grpcPort"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("8100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"createTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"2023-08-19T01:24:22+08:00"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("服务器名称")])]),t._v(" "),s("tr",[s("td",[t._v("grpcPort")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("API端口")])]),t._v(" "),s("tr",[s("td",[t._v("createTime")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("创建时间")])])])]),t._v(" "),s("h3",{attrs:{id:"创建服务器"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#创建服务器"}},[t._v("#")]),t._v(" 创建服务器")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/nodeServer/createNodeServer")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"ip"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"trojanpanel.github.io"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"测试服务器"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"grpcPort"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("8100")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("ip")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("服务器IP")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("服务器名称")])]),t._v(" "),s("tr",[s("td",[t._v("grpcPort")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("API端口")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"分页查询服务器"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#分页查询服务器"}},[t._v("#")]),t._v(" 分页查询服务器")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/nodeServer/selectNodeServerPage")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("/api/nodeServer/selectNodeServerPage?pageNum=1&pageSize=20&ip=trojanpanel.github.io&name=测试服务器\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("pageNum")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页号")])]),t._v(" "),s("tr",[s("td",[t._v("pageSize")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页大小")])]),t._v(" "),s("tr",[s("td",[t._v("ip")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("服务器IP")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("服务器名称")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeServers"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"测试服务器"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"ip"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"trojanpanel.github.io"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"grpcPort"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("8100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"createTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"2023-08-19T01:24:22+08:00"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"status"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanPanelCoreVersion"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"v2.1.2"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pageNum"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pageSize"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"total"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("nodeServers")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("服务器对象")])]),t._v(" "),s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("服务器名称")])]),t._v(" "),s("tr",[s("td",[t._v("ip")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("服务器名称")])]),t._v(" "),s("tr",[s("td",[t._v("grpcPort")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("API端口")])]),t._v(" "),s("tr",[s("td",[t._v("createTime")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("创建时间")])]),t._v(" "),s("tr",[s("td",[t._v("status")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("状态 0/异常 1/正常")])]),t._v(" "),s("tr",[s("td",[t._v("trojanPanelCoreVersion")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Trojan Panel Core 版本")])]),t._v(" "),s("tr",[s("td",[t._v("pageNum")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页号")])]),t._v(" "),s("tr",[s("td",[t._v("pageSize")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页大小")])]),t._v(" "),s("tr",[s("td",[t._v("total")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("总数")])])])]),t._v(" "),s("h3",{attrs:{id:"删除服务器"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#删除服务器"}},[t._v("#")]),t._v(" 删除服务器")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/nodeServer/deleteNodeServerById")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"更新服务器"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#更新服务器"}},[t._v("#")]),t._v(" 更新服务器")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/nodeServer/updateNodeServerById")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"ip"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"143.201.86.91"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"测试服务器"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"grpcPort"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("8100")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("ip")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("服务器IP")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("服务器名称")])]),t._v(" "),s("tr",[s("td",[t._v("grpcPort")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("API端口")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("h3",{attrs:{id:"查询服务器列表"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#查询服务器列表"}},[t._v("#")]),t._v(" 查询服务器列表")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/nodeServer/selectNodeServerList")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"测试服务器"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("名称")])])])]),t._v(" "),s("h3",{attrs:{id:"查询服务器状态"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#查询服务器状态"}},[t._v("#")]),t._v(" 查询服务器状态")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/nodeServer/nodeServerState")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("/api/nodeServer/nodeServerState?id=1\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"cpuUsed"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"memUsed"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("32.8")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"diskUsed"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("32.3")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("cpuUsed")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("CPU使用率")])]),t._v(" "),s("tr",[s("td",[t._v("memUsed")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("内存使用率")])]),t._v(" "),s("tr",[s("td",[t._v("diskUsed")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("磁盘使用率")])])])]),t._v(" "),s("h3",{attrs:{id:"导出服务器"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#导出服务器"}},[t._v("#")]),t._v(" 导出服务器")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/nodeServer/exportNodeServer")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"导入服务器"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#导入服务器"}},[t._v("#")]),t._v(" 导入服务器")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/nodeServer/importNodeServer")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求参数:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("file: (binary)\ncover: 1\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("file")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("文件二进制")])]),t._v(" "),s("tr",[s("td",[t._v("cover")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否根据用户名覆盖 0/否 1/是")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h2",{attrs:{id:"节点"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#节点"}},[t._v("#")]),t._v(" 节点")]),t._v(" "),s("h3",{attrs:{id:"根据id查询节点"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#根据id查询节点"}},[t._v("#")]),t._v(" 根据id查询节点")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/node/selectNodeById")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("/api/node/selectNodeById?id=1\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeServerId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeSubId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeTypeId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vless-reality"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"domain"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"trojanpanel.github.io"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"port"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("443")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"priority"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"createTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"2023-08-19T23:20:27+08:00"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"uuid"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"alterId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayProtocol"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vless"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayFlow"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"xtls-rprx-vision"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySSMethod"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"aes-256-gcm"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"realityPbk"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"JraCqHw8lrQ-YdgrBSpBVTA4fhqHLfTUpZiP45x5gRI"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySettings"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySettingsEntity"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"fallbacks"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"alpn"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"path"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"dest"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"80"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xver"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"network"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"tcp"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayStreamSettingsEntity"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"network"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"tcp"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"security"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"reality"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"tlsSettings"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"serverName"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"alpn"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"h2"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http/1.1"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"allowInsecure"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"fingerprint"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"chrome"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"realitySettings"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"dest"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"trojanpanel.github.io:8863"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xver"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"serverNames"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"trojanpanel.github.io"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"fingerprint"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"chrome"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"privateKey"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"GCRTXDZm1zuBdsQSM3Up9awTqxuzNwF6yXr5kxVT11w"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"shortIds"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"c6b6b5bf30c98f05"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"spiderX"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/SCalpsSw"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"wsSettings"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"path"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/trojan-panel-websocket-path"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"headers"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"Host"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayTag"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"user"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySniffing"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayAllocate"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSni"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoMuxEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoWebsocketEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoWebsocketPath"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoWebsocketHost"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSsEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSsMethod"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSsPassword"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaProtocol"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaObfs"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaUpMbps"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaDownMbps"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaServerName"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaInsecure"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaFastOpen"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"naiveProxyUsername"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("nodeServerId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("服务器id")])]),t._v(" "),s("tr",[s("td",[t._v("nodeSubId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("节点分表id")])]),t._v(" "),s("tr",[s("td",[t._v("nodeTypeId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("节点类型id")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("名称")])]),t._v(" "),s("tr",[s("td",[t._v("domain")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("域名/IP")])]),t._v(" "),s("tr",[s("td",[t._v("port")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("端口")])]),t._v(" "),s("tr",[s("td",[t._v("priority")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("优先级")])]),t._v(" "),s("tr",[s("td",[t._v("createTime")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("创建时间")])]),t._v(" "),s("tr",[s("td",[t._v("uuid")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("UUID")])]),t._v(" "),s("tr",[s("td",[t._v("alterId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Alter ID")])]),t._v(" "),s("tr",[s("td",[t._v("xrayProtocol")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray 协议名称")])]),t._v(" "),s("tr",[s("td",[t._v("xrayFlow")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray 流控")])]),t._v(" "),s("tr",[s("td",[t._v("xraySSMethod")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray Shadowsocks加密方式")])]),t._v(" "),s("tr",[s("td",[t._v("realityPbk")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray reality的公钥")])]),t._v(" "),s("tr",[s("td",[t._v("xraySettingsEntity")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray settings 参考Xray文档")])]),t._v(" "),s("tr",[s("td",[t._v("xrayStreamSettingsEntity")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray streamSettings 参考Xray文档")])]),t._v(" "),s("tr",[s("td",[t._v("xrayTag")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray tag")])]),t._v(" "),s("tr",[s("td",[t._v("xraySniffing")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray sniffing")])]),t._v(" "),s("tr",[s("td",[t._v("xrayAllocate")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray allocate")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSni")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo sni")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoMuxEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo 是否开启多路复用 0/关闭 1/开启")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoWebsocketEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo 是否开启websocket 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoWebsocketPath")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo websocket路径")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoWebsocketHost")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo websocket host")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSsEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo 是否开启ss加密 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSsMethod")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo ss加密方式")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSsPassword")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo ss密码")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaProtocol")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 协议名称 udp/faketcp")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaObfs")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 混淆密码")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaUpMbps")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 单客户端最大上传速度 单位:Mbps")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaDownMbps")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 单客户端最大下载速度 单位:Mbps")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaServerName")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 用于验证服务端证书的 hostname")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaInsecure")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 忽略一切证书错误")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaFastOpen")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 启用 Fast Open (降低连接建立延迟)")])]),t._v(" "),s("tr",[s("td",[t._v("naiveProxyUsername")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("NaiveProxy用户名")])])])]),t._v(" "),s("h3",{attrs:{id:"查询节点连接信息"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#查询节点连接信息"}},[t._v("#")]),t._v(" 查询节点连接信息")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/node/selectNodeInfo")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("/api/node/selectNodeInfo?id=1\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeServerId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeSubId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeTypeId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vless-reality"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"domain"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"trojanpanel.github.io"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"port"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("443")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"priority"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"createTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"2023-08-19T23:20:27+08:00"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"password"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"oGAAXuoQe8KKuFOydY0fXtbn0-T5jiJKNvmZLHeqNhqTn8ny"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"uuid"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"7a57ec2e-bb05-5544-9c30-05814b376eba"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"alterId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayProtocol"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vless"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayFlow"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"xtls-rprx-vision"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySSMethod"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"aes-256-gcm"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"realityPbk"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"JraCqHw8lrQ-YdgrBSpBVTA4fhqHLfTUpZiP45x5gRI"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySettingsEntity"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"fallbacks"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"alpn"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"path"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"dest"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"80"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xver"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"network"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"tcp"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayStreamSettingsEntity"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"network"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"tcp"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"security"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"reality"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"tlsSettings"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"serverName"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"alpn"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"h2"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http/1.1"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"allowInsecure"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("false")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"fingerprint"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"chrome"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"realitySettings"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"dest"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"trojanpanel.github.io:8863"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xver"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"serverNames"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"trojanpanel.github.io"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"fingerprint"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"chrome"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"privateKey"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"GCRTXDZm1zuBdsQSM3Up9awTqxuzNwF6yXr5kxVT11w"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"shortIds"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"c6b6b5bf30c98f05"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"spiderX"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/SCalpsSw"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"wsSettings"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"path"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/trojan-panel-websocket-path"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"headers"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"Host"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayTag"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"user"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySniffing"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayAllocate"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSni"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoMuxEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoWebsocketEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoWebsocketPath"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoWebsocketHost"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSsEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSsMethod"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSsPassword"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaProtocol"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaObfs"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaUpMbps"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaDownMbps"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaServerName"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaInsecure"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaFastOpen"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"naiveProxyUsername"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("nodeServerId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("服务器id")])]),t._v(" "),s("tr",[s("td",[t._v("nodeSubId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("节点分表id")])]),t._v(" "),s("tr",[s("td",[t._v("nodeTypeId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("节点类型id")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("名称")])]),t._v(" "),s("tr",[s("td",[t._v("domain")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("域名/IP")])]),t._v(" "),s("tr",[s("td",[t._v("port")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("端口")])]),t._v(" "),s("tr",[s("td",[t._v("priority")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("优先级")])]),t._v(" "),s("tr",[s("td",[t._v("createTime")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("创建时间")])]),t._v(" "),s("tr",[s("td",[t._v("password")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("连接密码")])]),t._v(" "),s("tr",[s("td",[t._v("uuid")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("UUID")])]),t._v(" "),s("tr",[s("td",[t._v("alterId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Alter ID")])]),t._v(" "),s("tr",[s("td",[t._v("xrayProtocol")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray 协议名称")])]),t._v(" "),s("tr",[s("td",[t._v("xrayFlow")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray 流控")])]),t._v(" "),s("tr",[s("td",[t._v("xraySSMethod")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray Shadowsocks加密方式")])]),t._v(" "),s("tr",[s("td",[t._v("realityPbk")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray reality的公钥")])]),t._v(" "),s("tr",[s("td",[t._v("xraySettingsEntity")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray settings 参考Xray文档")])]),t._v(" "),s("tr",[s("td",[t._v("xrayStreamSettingsEntity")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray streamSettings 参考Xray文档")])]),t._v(" "),s("tr",[s("td",[t._v("xrayTag")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray tag")])]),t._v(" "),s("tr",[s("td",[t._v("xraySniffing")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray sniffing")])]),t._v(" "),s("tr",[s("td",[t._v("xrayAllocate")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray allocate")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSni")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo sni")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoMuxEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo 是否开启多路复用 0/关闭 1/开启")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoWebsocketEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo 是否开启websocket 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoWebsocketPath")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo websocket路径")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoWebsocketHost")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo websocket host")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSsEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo 是否开启ss加密 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSsMethod")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo ss加密方式")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSsPassword")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo ss密码")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaProtocol")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 协议名称 udp/faketcp")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaObfs")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 混淆密码")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaUpMbps")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 单客户端最大上传速度 单位:Mbps")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaDownMbps")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 单客户端最大下载速度 单位:Mbps")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaServerName")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 用于验证服务端证书的 hostname")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaInsecure")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 忽略一切证书错误")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaFastOpen")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 启用 Fast Open (降低连接建立延迟)")])]),t._v(" "),s("tr",[s("td",[t._v("naiveProxyUsername")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("NaiveProxy用户名")])])])]),t._v(" "),s("h3",{attrs:{id:"创建节点"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#创建节点"}},[t._v("#")]),t._v(" 创建节点")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/node/createNode")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeServerId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeTypeId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vless-reality"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"domain"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"trojanpanel.github.io"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"port"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("443")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"priority"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayProtocol"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vless"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayFlow"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"xtls-rprx-vision"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySSMethod"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"aes-256-gcm"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"realityPbk"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"JraCqHw8lrQ-YdgrBSpBVTA4fhqHLfTUpZiP45x5gRI"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySettings"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"{\\"clients\\":[],\\"fallbacks\\":[{\\"name\\":\\"\\",\\"alpn\\":\\"\\",\\"dest\\":\\"80\\",\\"xver\\":0}],\\"network\\":\\"tcp\\",\\"decryption\\":\\"none\\"}"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayStreamSettings"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"{\\"network\\":\\"tcp\\",\\"security\\":\\"reality\\",\\"tlsSettings\\":{\\"serverName\\":\\"\\",\\"alpn\\":[\\"h2\\",\\"http/1.1\\"],\\"allowInsecure\\":false,\\"fingerprint\\":\\"chrome\\"},\\"realitySettings\\":{\\"dest\\":\\"trojanpanel.github.io:8863\\",\\"xver\\":0,\\"serverNames\\":[\\"trojanpanel.github.io\\"],\\"fingerprint\\":\\"chrome\\",\\"privateKey\\":\\"GCRTXDZm1zuBdsQSM3Up9awTqxuzNwF6yXr5kxVT11w\\",\\"shortIds\\":[\\"c6b6b5bf30c98f05\\"],\\"spiderX\\":\\"/SCalpsSw\\"},\\"wsSettings\\":{\\"path\\":\\"/trojan-panel-websocket-path\\",\\"headers\\":{\\"Host\\":\\"\\"}}}"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayTag"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"user"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySniffing"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayAllocate"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSni"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoMuxEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoWebsocketEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoWebsocketPath"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/trojan-panel-websocket-path"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoWebsocketHost"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSsEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSsMethod"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"AES-128-GCM"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSsPassword"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaProtocol"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"udp"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaObfs"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaUpMbps"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaDownMbps"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaServerName"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaInsecure"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaFastOpen"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("nodeServerId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("服务器id")])]),t._v(" "),s("tr",[s("td",[t._v("nodeTypeId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("节点类型id")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("名称")])]),t._v(" "),s("tr",[s("td",[t._v("domain")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("域名/IP")])]),t._v(" "),s("tr",[s("td",[t._v("port")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("端口")])]),t._v(" "),s("tr",[s("td",[t._v("priority")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("优先级")])]),t._v(" "),s("tr",[s("td",[t._v("xrayProtocol")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray 协议名称")])]),t._v(" "),s("tr",[s("td",[t._v("xrayFlow")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray 流控")])]),t._v(" "),s("tr",[s("td",[t._v("xraySSMethod")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray Shadowsocks加密方式")])]),t._v(" "),s("tr",[s("td",[t._v("realityPbk")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray reality的公钥")])]),t._v(" "),s("tr",[s("td",[t._v("xraySettings")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray settings")])]),t._v(" "),s("tr",[s("td",[t._v("xrayStreamSettings")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray streamSettings")])]),t._v(" "),s("tr",[s("td",[t._v("xrayTag")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray tag")])]),t._v(" "),s("tr",[s("td",[t._v("xraySniffing")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray sniffing")])]),t._v(" "),s("tr",[s("td",[t._v("xrayAllocate")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray allocate")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSni")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("TrojanGo sni")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoMuxEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo 是否开启多路复用 0/关闭 1/开启")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoWebsocketEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo 是否开启websocket 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoWebsocketPath")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("TrojanGo websocket路径")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoWebsocketHost")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("TrojanGo websocket host")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSsEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo 是否开启ss加密 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSsMethod")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("TrojanGo ss加密方式")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSsPassword")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("TrojanGo ss密码")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaProtocol")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Hysteria 协议名称 udp/faketcp")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaObfs")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Hysteria 混淆密码")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaUpMbps")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 单客户端最大上传速度 单位:Mbps")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaDownMbps")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 单客户端最大下载速度 单位:Mbps")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaServerName")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Hysteria 用于验证服务端证书的 hostname")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaInsecure")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Hysteria 忽略一切证书错误")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaFastOpen")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Hysteria 启用 Fast Open (降低连接建立延迟)")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"分页查询节点"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#分页查询节点"}},[t._v("#")]),t._v(" 分页查询节点")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/node/selectNodePage")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("/api/node/selectNodePage?pageNum=1&pageSize=20&name=vless-reality&nodeServerId=1\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("pageNum")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页号")])]),t._v(" "),s("tr",[s("td",[t._v("pageSize")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页大小")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("名称")])]),t._v(" "),s("tr",[s("td",[t._v("nodeServerId")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("服务器id")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodes"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeServerId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeSubId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeTypeId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vless-reality"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"domain"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"trojanpanel.github.io"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"port"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("443")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"priority"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"createTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"2023-08-19T23:20:27+08:00"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"status"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pageNum"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pageSize"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"total"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("pageNum")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页号")])]),t._v(" "),s("tr",[s("td",[t._v("pageSize")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页大小")])]),t._v(" "),s("tr",[s("td",[t._v("total")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("总数")])]),t._v(" "),s("tr",[s("td",[t._v("nodes")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("节点")])]),t._v(" "),s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("nodeServerId")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("服务器id")])]),t._v(" "),s("tr",[s("td",[t._v("nodeSubId")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("节点分表id")])]),t._v(" "),s("tr",[s("td",[t._v("nodeTypeId")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("节点类型id")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("名称")])]),t._v(" "),s("tr",[s("td",[t._v("domain")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("域名/IP")])]),t._v(" "),s("tr",[s("td",[t._v("port")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("端口")])]),t._v(" "),s("tr",[s("td",[t._v("createTime")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("创建时间")])]),t._v(" "),s("tr",[s("td",[t._v("status")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("状态 0/异常 1/正常")])])])]),t._v(" "),s("h3",{attrs:{id:"删除节点"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#删除节点"}},[t._v("#")]),t._v(" 删除节点")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/node/deleteNodeById")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"更新节点"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#更新节点"}},[t._v("#")]),t._v(" 更新节点")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/node/updateNodeById")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeServerId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeSubId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"nodeTypeId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vless-reality"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"domain"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"trojanpanel.github.io"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"port"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("443")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"priority"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayProtocol"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vless"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayFlow"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"xtls-rprx-vision"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySSMethod"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"aes-256-gcm"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"realityPbk"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"JraCqHw8lrQ-YdgrBSpBVTA4fhqHLfTUpZiP45x5gRI"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySettings"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"{\\"clients\\":[],\\"fallbacks\\":[{\\"name\\":\\"\\",\\"alpn\\":\\"\\",\\"path\\":null,\\"dest\\":\\"80\\",\\"xver\\":0}],\\"network\\":\\"tcp\\",\\"decryption\\":\\"none\\"}"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayStreamSettings"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"{\\"network\\":\\"tcp\\",\\"security\\":\\"reality\\",\\"tlsSettings\\":{\\"serverName\\":\\"\\",\\"alpn\\":[\\"h2\\",\\"http/1.1\\"],\\"allowInsecure\\":false,\\"fingerprint\\":\\"chrome\\"},\\"realitySettings\\":{\\"dest\\":\\"trojanpanel.github.io:8863\\",\\"xver\\":0,\\"serverNames\\":[\\"trojanpanel.github.io\\"],\\"fingerprint\\":\\"chrome\\",\\"privateKey\\":\\"GCRTXDZm1zuBdsQSM3Up9awTqxuzNwF6yXr5kxVT11w\\",\\"shortIds\\":[\\"c6b6b5bf30c98f05\\"],\\"spiderX\\":\\"/SCalpsSw\\"},\\"wsSettings\\":{\\"path\\":\\"/trojan-panel-websocket-path\\",\\"headers\\":{\\"Host\\":\\"\\"}}}"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayTag"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"user"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xraySniffing"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayAllocate"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSni"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoMuxEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoWebsocketEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoWebsocketPath"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/trojan-panel-websocket-path"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoWebsocketHost"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSsEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSsMethod"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"AES-128-GCM"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trojanGoSsPassword"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaProtocol"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"udp"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaObfs"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaUpMbps"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaDownMbps"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaServerName"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaInsecure"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"hysteriaFastOpen"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("nodeServerId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("服务器id")])]),t._v(" "),s("tr",[s("td",[t._v("nodeSubId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("节点分表id")])]),t._v(" "),s("tr",[s("td",[t._v("nodeTypeId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("节点类型id")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("名称")])]),t._v(" "),s("tr",[s("td",[t._v("domain")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("域名/IP")])]),t._v(" "),s("tr",[s("td",[t._v("port")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("端口")])]),t._v(" "),s("tr",[s("td",[t._v("priority")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("优先级")])]),t._v(" "),s("tr",[s("td",[t._v("xrayProtocol")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray 协议名称")])]),t._v(" "),s("tr",[s("td",[t._v("xrayFlow")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray 流控")])]),t._v(" "),s("tr",[s("td",[t._v("xraySSMethod")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray Shadowsocks加密方式")])]),t._v(" "),s("tr",[s("td",[t._v("realityPbk")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray reality的公钥")])]),t._v(" "),s("tr",[s("td",[t._v("xraySettings")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray settings")])]),t._v(" "),s("tr",[s("td",[t._v("xrayStreamSettings")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray streamSettings")])]),t._v(" "),s("tr",[s("td",[t._v("xrayTag")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray tag")])]),t._v(" "),s("tr",[s("td",[t._v("xraySniffing")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray sniffing")])]),t._v(" "),s("tr",[s("td",[t._v("xrayAllocate")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Xray allocate")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSni")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("TrojanGo sni")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoMuxEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo 是否开启多路复用 0/关闭 1/开启")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoWebsocketEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo 是否开启websocket 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoWebsocketPath")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("TrojanGo websocket路径")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoWebsocketHost")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("TrojanGo websocket host")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSsEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("TrojanGo 是否开启ss加密 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSsMethod")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("TrojanGo ss加密方式")])]),t._v(" "),s("tr",[s("td",[t._v("trojanGoSsPassword")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("TrojanGo ss密码")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaProtocol")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Hysteria 协议名称 udp/faketcp")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaObfs")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Hysteria 混淆密码")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaUpMbps")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 单客户端最大上传速度 单位:Mbps")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaDownMbps")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Hysteria 单客户端最大下载速度 单位:Mbps")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaServerName")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Hysteria 用于验证服务端证书的 hostname")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaInsecure")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Hysteria 忽略一切证书错误")])]),t._v(" "),s("tr",[s("td",[t._v("hysteriaFastOpen")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("Hysteria 启用 Fast Open (降低连接建立延迟)")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"获取节点二维码"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#获取节点二维码"}},[t._v("#")]),t._v(" 获取节点二维码")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/node/nodeQRCode")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAQMAAABmvDolAAAABlBMVEX///8AAABVwtN+AAAEvElEQVR42uyZMY77rhPFB1HQhQtE5hopLHGllO6go8yVkFzkGlh7gUlHgXh/DZvsbp/Yxf/3pdiV1p+VkJn3eDOmf+u/tRSAGCyar4bU1ijwo5+JDAPIBwGFdAx2Il8N204+Bp7II3EhfRSwYU0RE+m8WLU1A5wc8hJ4w/pBAIyvdjFQnTyi2opHPRqIdnJrDWSBe7zaThqgA4FCOrHdir5Ha4uu4aY2tGWhP4e1NwAg3ex0ni8LP7b1nm6n6Twvy9+ifQ+QZSKjkAHZojNZW846Gv4jv50BtYn0uOhRD0AOrFAoJH7u8RCgzWSt+8oezJMIkB3WKrXxKQDrCljXfDaWVDbVqqKByjQ9j/sIoC1XVmW+GEtuRbW2n2cy5PpRABFpsGi9BpykOPjRSVeDol4luT/g83K1W6FLsKyQTZR6ILLj5ycAhawB2102kRSaSTipMgeMfz0MmOlqi8a9gl2mELtDJmPRX5vcGyDVfCVMrl0Cn9RazY1U8XVhcmv+CKC2TAGEr2aqBdanuk2ynWY6COgaNVA560xspfjjA8XHRTw4HwQUnQ1jGx77/W6G+SxWFX8QIMqrooHZJJJNjmqcF4PiftT/HqD6TMuVim4e9jT5ulwfKBqRfs5if0Ckd8N09tmMCy6xhWQYyBs6CJBfV6IzmUSnSfJDn87z68knACK9Jtgi/s2kMgVW2xfqwpNaDwJGJgrsykwLussXuvKkxfKwNToKaLoS4Xt1nw2IXFsWfjntAUCRv0mA8pFJrYhk0WaTfrX5LjDyIiSq+WgtUAOUlH0CNhwEKKzZ3ECkc8BDUnGk6UwLSaSgg4Di13QTBV4WthKbge2rhcrbz5t8FwCyYd4KmThS8RK6azqB1Ss/7A6Qk6ZXWgEkq4Bq+FF0DhX4boIOABSa5AfJMBW2+xxGVEuJp1fv/zawrStu1hWPyKdJ32tQRY+zeN6b+wPk2rxcbXHyNlSXu7tPLtMC95Te/oBsMkWWFwVrsebFjiYI1m2ZDgK6zoFR5MbhR58vdKWJdCRM6mPA7OuVJ9d8tCj6Xq+i+CSuOh8G+BbAkzQJjK2ZSuMsxnWXjwJIp5tFIyPJfM1BgsNag32NON4Him+BIS4XxtCMrt9mzhO9jHRvQFrMaMeEbCG7rXK7yLkEbC8L2h0Qp10sF7dmY22ZTWJ8D5jcrxXvDBB5JLEgfU90UisQx2wtcXHPUc/bgLS5oOLWujC67EFJcUQ8U/EBgCrkwfS9L5JmENjKbOqfwd3eAE26BR5bjfaBdiFCd2J8T+l9AKDZJ6Do9krFkPYPsO41uNsdGKEwQMJ4YNlkiH0ijYhfbe4NjLh4o63oOxhoBhLYGi3c1W+e3BeQuLhcGW2WY5LgOnpeE3/aqA8ATddgpQEJdjy6PTp5qbzDgNFjspThuF+1RLV+FqdV35faAcD4CkPcdb4YVtuKdBtqBG/b72ea94BCEoG7yz5ZyaImorhm8Bv+9wfEuZm6Qx3zk2qg8LVKE/Tn88QRAHcthttdo8DoI1S9avIgADxpORk5phgeKL6anwzzPjC+qUF9SSKVBoSu3YnI+aWLAwDpfiLccLnTRCaNHIUK91u0OwP/1v/P+l8AAAD//4gWpbFrY3nEAAAAAElFTkSuQmCC"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("data")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("二维码Base64")])])])]),t._v(" "),s("h3",{attrs:{id:"复制url"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#复制url"}},[t._v("#")]),t._v(" 复制URL")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/node/nodeURL")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vless://7a57ec2e-bb05-5544-9c30-05814b376eba@trojanpanel.github.io:443?type=tcp\\u0026security=reality\\u0026flow=xtls-rprx-vision\\u0026pbk=JraCqHw8lrQ-YdgrBSpBVTA4fhqHLfTUpZiP45x5gRI\\u0026fp=chrome\\u0026spx=%2FSCalpsSw\\u0026sid=c6b6b5bf30c98f05\\u0026sni=trojanpanel.github.io#vless-reality"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("data")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("分享链接")])])])]),t._v(" "),s("h3",{attrs:{id:"节点部分属性的默认值"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#节点部分属性的默认值"}},[t._v("#")]),t._v(" 节点部分属性的默认值")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/node/nodeDefault")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"publicKey"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"JraCqHw8lrQ-YdgrBSpBVTA4fhqHLfTUpZiP45x5gRI"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"privateKey"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"GCRTXDZm1zuBdsQSM3Up9awTqxuzNwF6yXr5kxVT11w"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"shortId"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"c6b6b5bf30c98f05"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"spiderX"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/SCalpsSw"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("publicKey")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray reality公钥")])]),t._v(" "),s("tr",[s("td",[t._v("privateKey")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray reality私钥")])]),t._v(" "),s("tr",[s("td",[t._v("shortId")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray reality shortId")])]),t._v(" "),s("tr",[s("td",[t._v("spiderX")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray reality spiderX")])])])]),t._v(" "),s("h2",{attrs:{id:"节点类型"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#节点类型"}},[t._v("#")]),t._v(" 节点类型")]),t._v(" "),s("h3",{attrs:{id:"查询节点类型列表"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#查询节点类型列表"}},[t._v("#")]),t._v(" 查询节点类型列表")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/nodeType/selectNodeTypeList")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"xray"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"trojan-go"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("3")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"hysteria"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("4")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"naiveproxy"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("名称")])])])]),t._v(" "),s("h2",{attrs:{id:"系统设置"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#系统设置"}},[t._v("#")]),t._v(" 系统设置")]),t._v(" "),s("h3",{attrs:{id:"查询系统设置"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#查询系统设置"}},[t._v("#")]),t._v(" 查询系统设置")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/system/selectSystemByName")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"registerEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"registerQuota"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1024")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"registerExpireDays"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"resetDownloadAndUploadMonth"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trafficRankEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"captchaEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"expireWarnEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"expireWarnDay"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"emailEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"emailHost"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"emailPort"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"emailUsername"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"emailPassword"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"systemName"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Trojan Panel"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"clashRule"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"rules:\\n - RULE-SET,applications,DIRECT\\n - DOMAIN,clash.razord.top,DIRECT\\n - DOMAIN,yacd.haishan.me,DIRECT\\n - RULE-SET,private,DIRECT\\n - RULE-SET,reject,REJECT\\n - RULE-SET,icloud,DIRECT\\n - RULE-SET,apple,DIRECT\\n - RULE-SET,google,DIRECT\\n - RULE-SET,proxy,PROXY\\n - RULE-SET,direct,DIRECT\\n - RULE-SET,lancidr,DIRECT\\n - RULE-SET,cncidr,DIRECT\\n - RULE-SET,telegramcidr,PROXY\\n - GEOIP,,DIRECT\\n - GEOIP,CN,DIRECT\\n - MATCH,PROXY\\n\\nrule-providers:\\n reject:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt\\"\\n path: ./ruleset/reject.yaml\\n interval: 86400\\n\\n icloud:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/icloud.txt\\"\\n path: ./ruleset/icloud.yaml\\n interval: 86400\\n\\n apple:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/apple.txt\\"\\n path: ./ruleset/apple.yaml\\n interval: 86400\\n\\n google:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt\\"\\n path: ./ruleset/google.yaml\\n interval: 86400\\n\\n proxy:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt\\"\\n path: ./ruleset/proxy.yaml\\n interval: 86400\\n\\n direct:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt\\"\\n path: ./ruleset/direct.yaml\\n interval: 86400\\n\\n private:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/private.txt\\"\\n path: ./ruleset/private.yaml\\n interval: 86400\\n\\n gfw:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/gfw.txt\\"\\n path: ./ruleset/gfw.yaml\\n interval: 86400\\n\\n greatfire:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/greatfire.txt\\"\\n path: ./ruleset/greatfire.yaml\\n interval: 86400\\n\\n tld-not-cn:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/tld-not-cn.txt\\"\\n path: ./ruleset/tld-not-cn.yaml\\n interval: 86400\\n\\n telegramcidr:\\n type: http\\n behavior: ipcidr\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/telegramcidr.txt\\"\\n path: ./ruleset/telegramcidr.yaml\\n interval: 86400\\n\\n cncidr:\\n type: http\\n behavior: ipcidr\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/cncidr.txt\\"\\n path: ./ruleset/cncidr.yaml\\n interval: 86400\\n\\n lancidr:\\n type: http\\n behavior: ipcidr\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/lancidr.txt\\"\\n path: ./ruleset/lancidr.yaml\\n interval: 86400\\n\\n applications:\\n type: http\\n behavior: classical\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/applications.txt\\"\\n path: ./ruleset/applications.yaml\\n interval: 86400"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayTemplate"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"{\\n \\"log\\": {\\n \\"loglevel\\": \\"warning\\"\\n },\\n \\"api\\": {\\n \\"tag\\": \\"api\\",\\n \\"services\\": [\\n \\"HandlerService\\",\\n \\"LoggerService\\",\\n \\"StatsService\\"\\n ]\\n },\\n \\"dns\\": null,\\n \\"routing\\": {\\n \\"rules\\": [\\n {\\n \\"inboundTag\\": [\\n \\"api\\"\\n ],\\n \\"outboundTag\\": \\"api\\",\\n \\"type\\": \\"field\\"\\n }\\n ]\\n },\\n \\"policy\\": {\\n \\"levels\\": {\\n \\"0\\": {\\n \\"statsUserUplink\\": true,\\n \\"statsUserDownlink\\": true\\n }\\n },\\n \\"system\\": {\\n \\"statsInboundUplink\\": true,\\n \\"statsInboundDownlink\\": true\\n }\\n },\\n \\"inbounds\\": [],\\n \\"outbounds\\": [\\n {\\n \\"protocol\\": \\"freedom\\"\\n }\\n ],\\n \\"transport\\": null,\\n \\"stats\\": {},\\n \\"reverse\\": null,\\n \\"fakeDns\\": null\\n}"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("registerEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开放注册 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("registerQuota")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("注册用户默认配额 单位/MB")])]),t._v(" "),s("tr",[s("td",[t._v("registerExpireDays")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("注册用户过期天数 单位/天")])]),t._v(" "),s("tr",[s("td",[t._v("resetDownloadAndUploadMonth")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否每月重设下载和上传流量")])]),t._v(" "),s("tr",[s("td",[t._v("trafficRankEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开启流量排行 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("captchaEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开启验证码登录 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("expireWarnEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开启到期警告 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("expireWarnDay")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("到期警告 单位/天")])]),t._v(" "),s("tr",[s("td",[t._v("emailEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开启邮箱功能 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("emailHost")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("系统邮箱设置 host")])]),t._v(" "),s("tr",[s("td",[t._v("emailPort")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("系统邮箱设置 port")])]),t._v(" "),s("tr",[s("td",[t._v("emailUsername")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("系统邮箱设置 username")])]),t._v(" "),s("tr",[s("td",[t._v("emailPassword")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("系统邮箱设置 password")])]),t._v(" "),s("tr",[s("td",[t._v("systemName")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("系统名称")])]),t._v(" "),s("tr",[s("td",[t._v("clashRule")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Clash模板")])]),t._v(" "),s("tr",[s("td",[t._v("xrayTemplate")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray模板")])])])]),t._v(" "),s("h3",{attrs:{id:"更新系统配置"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#更新系统配置"}},[t._v("#")]),t._v(" 更新系统配置")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/system/updateSystemById")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"registerEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"registerQuota"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1024")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"registerExpireDays"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"resetDownloadAndUploadMonth"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"trafficRankEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"captchaEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"expireWarnEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"expireWarnDay"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"emailEnable"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"emailHost"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"emailPort"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"emailUsername"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"emailPassword"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"systemName"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"Trojan Panel"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"clashRule"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"rules:\\n - RULE-SET,applications,DIRECT\\n - DOMAIN,clash.razord.top,DIRECT\\n - DOMAIN,yacd.haishan.me,DIRECT\\n - RULE-SET,private,DIRECT\\n - RULE-SET,reject,REJECT\\n - RULE-SET,icloud,DIRECT\\n - RULE-SET,apple,DIRECT\\n - RULE-SET,google,DIRECT\\n - RULE-SET,proxy,PROXY\\n - RULE-SET,direct,DIRECT\\n - RULE-SET,lancidr,DIRECT\\n - RULE-SET,cncidr,DIRECT\\n - RULE-SET,telegramcidr,PROXY\\n - GEOIP,,DIRECT\\n - GEOIP,CN,DIRECT\\n - MATCH,PROXY\\n\\nrule-providers:\\n reject:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/reject.txt\\"\\n path: ./ruleset/reject.yaml\\n interval: 86400\\n\\n icloud:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/icloud.txt\\"\\n path: ./ruleset/icloud.yaml\\n interval: 86400\\n\\n apple:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/apple.txt\\"\\n path: ./ruleset/apple.yaml\\n interval: 86400\\n\\n google:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/google.txt\\"\\n path: ./ruleset/google.yaml\\n interval: 86400\\n\\n proxy:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/proxy.txt\\"\\n path: ./ruleset/proxy.yaml\\n interval: 86400\\n\\n direct:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/direct.txt\\"\\n path: ./ruleset/direct.yaml\\n interval: 86400\\n\\n private:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/private.txt\\"\\n path: ./ruleset/private.yaml\\n interval: 86400\\n\\n gfw:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/gfw.txt\\"\\n path: ./ruleset/gfw.yaml\\n interval: 86400\\n\\n greatfire:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/greatfire.txt\\"\\n path: ./ruleset/greatfire.yaml\\n interval: 86400\\n\\n tld-not-cn:\\n type: http\\n behavior: domain\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/tld-not-cn.txt\\"\\n path: ./ruleset/tld-not-cn.yaml\\n interval: 86400\\n\\n telegramcidr:\\n type: http\\n behavior: ipcidr\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/telegramcidr.txt\\"\\n path: ./ruleset/telegramcidr.yaml\\n interval: 86400\\n\\n cncidr:\\n type: http\\n behavior: ipcidr\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/cncidr.txt\\"\\n path: ./ruleset/cncidr.yaml\\n interval: 86400\\n\\n lancidr:\\n type: http\\n behavior: ipcidr\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/lancidr.txt\\"\\n path: ./ruleset/lancidr.yaml\\n interval: 86400\\n\\n applications:\\n type: http\\n behavior: classical\\n url: \\"https://cdn.jsdelivr.net/gh/Loyalsoldier/clash-rules@release/applications.txt\\"\\n path: ./ruleset/applications.yaml\\n interval: 86400"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"xrayTemplate"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"{\\n \\"log\\": {\\n \\"loglevel\\": \\"warning\\"\\n },\\n \\"api\\": {\\n \\"tag\\": \\"api\\",\\n \\"services\\": [\\n \\"HandlerService\\",\\n \\"LoggerService\\",\\n \\"StatsService\\"\\n ]\\n },\\n \\"dns\\": null,\\n \\"routing\\": {\\n \\"rules\\": [\\n {\\n \\"inboundTag\\": [\\n \\"api\\"\\n ],\\n \\"outboundTag\\": \\"api\\",\\n \\"type\\": \\"field\\"\\n }\\n ]\\n },\\n \\"policy\\": {\\n \\"levels\\": {\\n \\"0\\": {\\n \\"statsUserUplink\\": true,\\n \\"statsUserDownlink\\": true\\n }\\n },\\n \\"system\\": {\\n \\"statsInboundUplink\\": true,\\n \\"statsInboundDownlink\\": true\\n }\\n },\\n \\"inbounds\\": [],\\n \\"outbounds\\": [\\n {\\n \\"protocol\\": \\"freedom\\"\\n }\\n ],\\n \\"transport\\": null,\\n \\"stats\\": {},\\n \\"reverse\\": null,\\n \\"fakeDns\\": null\\n}"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("registerEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开放注册 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("registerQuota")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("注册用户默认配额 单位/MB")])]),t._v(" "),s("tr",[s("td",[t._v("registerExpireDays")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("注册用户过期天数 单位/天")])]),t._v(" "),s("tr",[s("td",[t._v("resetDownloadAndUploadMonth")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否每月重设下载和上传流量")])]),t._v(" "),s("tr",[s("td",[t._v("trafficRankEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开启流量排行 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("captchaEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开启验证码登录 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("expireWarnEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开启到期警告 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("expireWarnDay")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("到期警告 单位/天")])]),t._v(" "),s("tr",[s("td",[t._v("emailEnable")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("是否开启邮箱功能 0/否 1/是")])]),t._v(" "),s("tr",[s("td",[t._v("emailHost")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("系统邮箱设置 host")])]),t._v(" "),s("tr",[s("td",[t._v("emailPort")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("系统邮箱设置 port")])]),t._v(" "),s("tr",[s("td",[t._v("emailUsername")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("系统邮箱设置 username")])]),t._v(" "),s("tr",[s("td",[t._v("emailPassword")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("系统邮箱设置 password")])]),t._v(" "),s("tr",[s("td",[t._v("systemName")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("系统名称")])]),t._v(" "),s("tr",[s("td",[t._v("clashRule")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Clash模板")])]),t._v(" "),s("tr",[s("td",[t._v("xrayTemplate")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("Xray模板")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"上传静态网站文件"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#上传静态网站文件"}},[t._v("#")]),t._v(" 上传静态网站文件")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/system/uploadWebFile")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("p",[t._v("Form Data")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("file: (binary)\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("file")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("文件二进制")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"上传logo"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#上传logo"}},[t._v("#")]),t._v(" 上传logo")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/system/uploadLogo")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("p",[t._v("Form Data")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("file: (binary)\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("file")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("文件二进制")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h2",{attrs:{id:"黑名单"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#黑名单"}},[t._v("#")]),t._v(" 黑名单")]),t._v(" "),s("h3",{attrs:{id:"分页查询黑名单"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#分页查询黑名单"}},[t._v("#")]),t._v(" 分页查询黑名单")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/blackList/selectBlackListPage")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("/api/blackList/selectBlackListPage?pageNum=1&pageSize=20&ip=143.201.86.91\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("pageNum")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页号")])]),t._v(" "),s("tr",[s("td",[t._v("pageSize")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页大小")])]),t._v(" "),s("tr",[s("td",[t._v("ip")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("IP地址")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pageNum"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pageSize"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"total"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"blackLists"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"ip"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"143.201.86.91"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"createTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"2023-08-19T16:24:58+08:00"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("pageNum")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页号")])]),t._v(" "),s("tr",[s("td",[t._v("pageSize")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页大小")])]),t._v(" "),s("tr",[s("td",[t._v("total")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("总数")])]),t._v(" "),s("tr",[s("td",[t._v("blackLists")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("黑名单")])]),t._v(" "),s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("ip")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("IP地址")])]),t._v(" "),s("tr",[s("td",[t._v("createTime")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("创建时间")])])])]),t._v(" "),s("h3",{attrs:{id:"删除黑名单"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#删除黑名单"}},[t._v("#")]),t._v(" 删除黑名单")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/blackList/deleteBlackListByIp")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"ip"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"143.201.86.91"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("IP")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("IP地址")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"创建黑名单"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#创建黑名单"}},[t._v("#")]),t._v(" 创建黑名单")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/blackList/createBlackList")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"ip"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"143.201.86.91"')]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("ip")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("IP地址")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h2",{attrs:{id:"邮件"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#邮件"}},[t._v("#")]),t._v(" 邮件")]),t._v(" "),s("h3",{attrs:{id:"查询邮件发送记录"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#查询邮件发送记录"}},[t._v("#")]),t._v(" 查询邮件发送记录")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/emailRecord/selectEmailRecordPage")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("/api/emailRecord/selectEmailRecordPage?pageNum=1&pageSize=20&toEmail=123&state=1\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("pageNum")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页号")])]),t._v(" "),s("tr",[s("td",[t._v("pageSize")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页大小")])]),t._v(" "),s("tr",[s("td",[t._v("toEmail")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("收件人")])]),t._v(" "),s("tr",[s("td",[t._v("state")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("状态")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"emailRecords"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pageNum"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pageSize"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"total"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("pageNum")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页号")])]),t._v(" "),s("tr",[s("td",[t._v("pageSize")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页大小")])]),t._v(" "),s("tr",[s("td",[t._v("total")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("总数")])]),t._v(" "),s("tr",[s("td",[t._v("emailRecords")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("发送记录")])]),t._v(" "),s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("toEmail")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("收件人邮箱")])]),t._v(" "),s("tr",[s("td",[t._v("subject")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("主题")])]),t._v(" "),s("tr",[s("td",[t._v("content")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("内容'")])]),t._v(" "),s("tr",[s("td",[t._v("state")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("状态 0/未发送 1/发送成功 -1/发送失败")])]),t._v(" "),s("tr",[s("td",[t._v("createTime")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("创建时间")])])])]),t._v(" "),s("h2",{attrs:{id:"文件任务"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#文件任务"}},[t._v("#")]),t._v(" 文件任务")]),t._v(" "),s("h3",{attrs:{id:"分页查询文件任务"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#分页查询文件任务"}},[t._v("#")]),t._v(" 分页查询文件任务")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/fileTask/selectFileTaskPage")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("GET")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v("/api/fileTask/selectFileTaskPage?pageNum=1&pageSize=20&accountUsername=sysadmin\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("pageNum")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页号")])]),t._v(" "),s("tr",[s("td",[t._v("pageSize")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页大小")])]),t._v(" "),s("tr",[s("td",[t._v("accountUsername")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("创建人")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"fileTasks"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"batchCreateAccountExport-20230819161912.json"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"status"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("2")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"errMsg"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"accountUsername"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"sysadmin"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"createTime"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"2023-08-19T16:19:12+08:00"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pageNum"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"pageSize"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"total"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("pageNum")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页号")])]),t._v(" "),s("tr",[s("td",[t._v("pageSize")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("页大小")])]),t._v(" "),s("tr",[s("td",[t._v("total")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("总数")])]),t._v(" "),s("tr",[s("td",[t._v("fileTasks")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("文件任务")])]),t._v(" "),s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("主键")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("文件名称")])]),t._v(" "),s("tr",[s("td",[t._v("type")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("类型 1/用户导入 2/服务器导入 3/用户导出 4/服务器导出")])]),t._v(" "),s("tr",[s("td",[t._v("status")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("状态 -1/失败 0/等待 1/正在执行 2/成功")])]),t._v(" "),s("tr",[s("td",[t._v("errMsg")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("错误信息")])]),t._v(" "),s("tr",[s("td",[t._v("accountUsername")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("登录用户名")])]),t._v(" "),s("tr",[s("td",[t._v("createTime")]),t._v(" "),s("td",[t._v("否")]),t._v(" "),s("td",[t._v("创建时间")])])])]),t._v(" "),s("h3",{attrs:{id:"删除文件任务"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#删除文件任务"}},[t._v("#")]),t._v(" 删除文件任务")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/fileTask/deleteFileTaskById")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"code"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("20000")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"success"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"message"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"data"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token null keyword"}},[t._v("null")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("h3",{attrs:{id:"下载文件任务的文件"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#下载文件任务的文件"}},[t._v("#")]),t._v(" 下载文件任务的文件")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/fileTask/downloadFileTask")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("p",[t._v("Content-Type: application/octet-stream")]),t._v(" "),s("div",{staticClass:"language- extra-class"},[s("pre",{pre:!0,attrs:{class:"language-text"}},[s("code",[t._v('[\n {\n "username": "83tBsbt6dJ0j",\n "pass": "83tBsbt6dJ0j"\n },\n {\n "username": "BxjLbz4rQyYd",\n "pass": "BxjLbz4rQyYd"\n },\n {\n "username": "XLtcPBGHMEJz",\n "pass": "XLtcPBGHMEJz"\n },\n {\n "username": "foxXLpN0KQkp",\n "pass": "foxXLpN0KQkp"\n },\n {\n "username": "bX3pahuM7Lma",\n "pass": "bX3pahuM7Lma"\n }\n]\n')])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("username")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录用户名")])]),t._v(" "),s("tr",[s("td",[t._v("pass")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("登录密码")])])])]),t._v(" "),s("h3",{attrs:{id:"获取文件模板"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#获取文件模板"}},[t._v("#")]),t._v(" 获取文件模板")]),t._v(" "),s("p",[t._v("接口地址: "),s("code",[t._v("/api/fileTask/downloadTemplate")])]),t._v(" "),s("p",[t._v("请求方式: "),s("code",[t._v("POST")])]),t._v(" "),s("p",[t._v("请求示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"id"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("id")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("主键")])])])]),t._v(" "),s("p",[t._v("返回示例:")]),t._v(" "),s("div",{staticClass:"language-json extra-class"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"grpc_port"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("8100")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"ip"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"127.0.0.1"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token property"}},[t._v('"name"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"example"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n")])])]),s("p",[t._v("参数说明:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("参数")]),t._v(" "),s("th",[t._v("必须")]),t._v(" "),s("th",[t._v("说明")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("ip")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("服务器IP")])]),t._v(" "),s("tr",[s("td",[t._v("name")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("服务器名称")])]),t._v(" "),s("tr",[s("td",[t._v("grpc_port")]),t._v(" "),s("td",[t._v("是")]),t._v(" "),s("td",[t._v("API端口")])])])])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/9.f3f6c149.js b/docs/assets/js/9.1d051ac0.js similarity index 99% rename from docs/assets/js/9.f3f6c149.js rename to docs/assets/js/9.1d051ac0.js index 6db8432..02803e4 100644 --- a/docs/assets/js/9.f3f6c149.js +++ b/docs/assets/js/9.1d051ac0.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{284:function(t,v,_){"use strict";_.r(v);var e=_(7),a=Object(e.a)({},(function(){var t=this,v=t._self._c;return v("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[v("h1",{attrs:{id:"更新日志"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#更新日志"}},[t._v("#")]),t._v(" 更新日志")]),t._v(" "),v("h2",{attrs:{id:"_2023-07-08-帝江"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#_2023-07-08-帝江"}},[t._v("#")]),t._v(" 2023.07.08 帝江"),v("Badge",{attrs:{type:"tip",text:"v2.1",vertical:"top"}})],1),t._v(" "),v("ol",[v("li",[t._v("新增Nginx反代")]),t._v(" "),v("li",[t._v("新增Xray reality 移除xtls")]),t._v(" "),v("li",[t._v("新增修改用户名")]),t._v(" "),v("li",[t._v("新增验证码登录,增强账户安全")]),t._v(" "),v("li",[t._v("新增密码输入三次后账户锁定30分钟,增强账户安全")]),t._v(" "),v("li",[t._v("新增Hysteria混淆密码")]),t._v(" "),v("li",[t._v("新增vless reality随机生成publicKey/privateKey/shortIds/spiderX")]),t._v(" "),v("li",[t._v("新增验证码登录开启和关闭选项")]),t._v(" "),v("li",[t._v("新增批量创建账户和导出未使用账户")]),t._v(" "),v("li",[t._v("新增账户最后一次登录时间")]),t._v(" "),v("li",[t._v("新增Hysteria wechat-video")]),t._v(" "),v("li",[t._v("新增前端单独部署、更新、卸载")]),t._v(" "),v("li",[t._v("新增自定义前端指定后端的IP和端口")]),t._v(" "),v("li",[t._v("新增自定义后端IP和端口")]),t._v(" "),v("li",[t._v("新增自定义内核的IP和端口")]),t._v(" "),v("li",[t._v("新增不设置证书选项")]),t._v(" "),v("li",[t._v("新增将后端和内核配置文件夹挂载到宿主机")]),t._v(" "),v("li",[t._v("新增前端版本号")]),t._v(" "),v("li",[t._v("新增自定义后端的服务端口")]),t._v(" "),v("li",[t._v("新增自定义内核的服务端口")]),t._v(" "),v("li",[t._v("新增在线更换证书选项")]),t._v(" "),v("li",[t._v("新增忘记密码选项")]),t._v(" "),v("li",[t._v("新增节点优先级")]),t._v(" "),v("li",[t._v("新增管理员复制指定账户订阅地址")]),t._v(" "),v("li",[t._v("新增账户列表排序查询")]),t._v(" "),v("li",[t._v("新增Hysteria支持SNI 允许不安全 快速打开")]),t._v(" "),v("li",[t._v("修改证书文件目录至/tpdta/cert/")]),t._v(" "),v("li",[t._v("修改伪装Web目录至/tpdate/web/")]),t._v(" "),v("li",[t._v("修改用户和服务器导出csv格式修改为json,格式更加通用")]),t._v(" "),v("li",[t._v("修改Xray和Clash规则模板长度调整至10240")]),t._v(" "),v("li",[t._v("移除Xray trojan 流控选项")]),t._v(" "),v("li",[t._v("修复Shadowsocks加密方式名称")]),t._v(" "),v("li",[t._v("修复Xray Trojan传输层加密的问题")]),t._v(" "),v("li",[t._v("修复Copy URL失效的问题")]),t._v(" "),v("li",[t._v("修复后端和内核更新不用输入数据库和Redis等相关信息")]),t._v(" "),v("li",[t._v("修复docker compose部署文件")]),t._v(" "),v("li",[t._v("修复Clash模板字符串长度限制提升到102400")]),t._v(" "),v("li",[t._v("修复自动化更新数据结构未变化的问题")]),t._v(" "),v("li",[t._v("升级Xray至v1.8.0,升级Hysteria至v1.3.4")]),t._v(" "),v("li",[t._v("组件化开发重构前端节点模块代码,对后端和内核代码进行优化,错误处理和必要的资源释放")]),t._v(" "),v("li",[t._v("优化Clash订阅")]),t._v(" "),v("li",[t._v("优化Xray分享链接")]),t._v(" "),v("li",[t._v("优化服务器状态检测逻辑")]),t._v(" "),v("li",[t._v("优化Xray reality serverNames编辑确认效果")]),t._v(" "),v("li",[t._v("优化Caddy2故障检测")]),t._v(" "),v("li",[t._v("将锁换成分布式锁,支持部署多个后端")]),t._v(" "),v("li",[t._v("优化代码,并发处理,提升系统性能")])]),t._v(" "),v("h4",{attrs:{id:"版本对应关系"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#版本对应关系"}},[t._v("#")]),t._v(" 版本对应关系")]),t._v(" "),v("table",[v("thead",[v("tr",[v("th",{staticStyle:{"text-align":"center"}},[t._v("Install Script")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan Panel UI")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan Panel")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan Panel Core")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Core SDK")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Xray")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan Go")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Hysteria")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Caddy(NaiveProxy)")])])]),t._v(" "),v("tbody",[v("tr",[v("td",{staticStyle:{"text-align":"center"}},[t._v("v2.1.8")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v2.1.6")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v2.1.5")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v2.1.2")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v0.0.1")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v1.8.0")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v0.10.6")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v1.3.4")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v2.6.4")])])])]),t._v(" "),v("h2",{attrs:{id:"_2023-03-31-穷奇"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#_2023-03-31-穷奇"}},[t._v("#")]),t._v(" 2023.03.31 穷奇"),v("Badge",{attrs:{type:"tip",text:"v2.0",vertical:"top"}})],1),t._v(" "),v("ol",[v("li",[t._v("新增自动化无损升级")]),t._v(" "),v("li",[t._v("新增Xray模板")]),t._v(" "),v("li",[t._v("新增Clash规则模板")]),t._v(" "),v("li",[t._v("新增节点详情")]),t._v(" "),v("li",[t._v("新增服务器详情")]),t._v(" "),v("li",[t._v("新增波斯语")]),t._v(" "),v("li",[t._v("新增节点守护进程")]),t._v(" "),v("li",[t._v("新增Shadowsocks协议")]),t._v(" "),v("li",[t._v("新增流控设置")]),t._v(" "),v("li",[t._v("新增Xray tcp+tls自定义回落")]),t._v(" "),v("li",[t._v("新增版本查询功能")]),t._v(" "),v("li",[t._v("新增自定义面板与节点的通信端口")]),t._v(" "),v("li",[t._v("新增自定义Caddy2端口")]),t._v(" "),v("li",[t._v("新增旧版本安装")]),t._v(" "),v("li",[t._v("新增服务器选项框跳转到服务器列表")]),t._v(" "),v("li",[t._v("新增SQLite作为持久化")]),t._v(" "),v("li",[t._v("新增服务器管理TP Core版本显示")]),t._v(" "),v("li",[t._v("新增用户导入和导出")]),t._v(" "),v("li",[t._v("新增服务器导入和导出")]),t._v(" "),v("li",[t._v("新增自定义系统名称")]),t._v(" "),v("li",[t._v("新增自定义Logo")]),t._v(" "),v("li",[t._v("设置Docker日志文件大小最大值为50m")]),t._v(" "),v("li",[t._v("设置故障监测默认日志查询级别为error")]),t._v(" "),v("li",[t._v("设置MariaDB数据库默认编码为utf8mb4")]),t._v(" "),v("li",[t._v("设置Nginx支持TLSv1.3")]),t._v(" "),v("li",[t._v("修复一些显示错误和控制台报错")]),t._v(" "),v("li",[t._v("修复Clash订阅地址 Hysteria连接密码字段错误")]),t._v(" "),v("li",[t._v("修复弹窗显示异常的Bug")]),t._v(" "),v("li",[t._v("优化系统归档和更新")]),t._v(" "),v("li",[t._v("优化节点状态展示")]),t._v(" "),v("li",[t._v("优化服务器和节点的状态检测逻辑")]),t._v(" "),v("li",[t._v("升级Xray至v1.7.5,升级Hysteria至v1.3.3,升级Caddy(NaiveProxy)至v2.6.4")])]),t._v(" "),v("h4",{attrs:{id:"版本对应关系-2"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#版本对应关系-2"}},[t._v("#")]),t._v(" 版本对应关系")]),t._v(" "),v("table",[v("thead",[v("tr",[v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan Panel")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan Panel Core")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Xray")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan Go")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Hysteria")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Caddy(NaiveProxy)")])])]),t._v(" "),v("tbody",[v("tr",[v("td",{staticStyle:{"text-align":"center"}},[t._v("v2.0.5")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v2.0.4")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v1.7.5")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v0.10.6")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v1.3.3")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v2.6.4")])])])]),t._v(" "),v("h2",{attrs:{id:"_2022-12-29-麒麟"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#_2022-12-29-麒麟"}},[t._v("#")]),t._v(" 2022.12.29 麒麟"),v("Badge",{attrs:{type:"tip",text:"v1.3",vertical:"top"}})],1),t._v(" "),v("ol",[v("li",[t._v("新增NaiveProxy节点类型")]),t._v(" "),v("li",[t._v("新增自定义数据库和Redis端口")]),t._v(" "),v("li",[t._v("新增重设用户下载和上传流量")]),t._v(" "),v("li",[t._v("新增关闭流量排行")]),t._v(" "),v("li",[t._v("新增服务器管理")]),t._v(" "),v("li",[t._v("新增韩语,更彻底的国际化")]),t._v(" "),v("li",[t._v("新增服务器信息显示")]),t._v(" "),v("li",[t._v("新增一键安装NaiveProxy单机版")]),t._v(" "),v("li",[t._v("新增Trojan Panel前端是否开启https选项")]),t._v(" "),v("li",[t._v("新增实时修改Trojan Panel前端端口")]),t._v(" "),v("li",[t._v("修复Trojan-Go复制URL的Bug")]),t._v(" "),v("li",[t._v("修复Xray tcp+tls 回落地址无法访问")]),t._v(" "),v("li",[t._v("修复Hysteria单客户端最大上传/下载速度上限为9999999999")]),t._v(" "),v("li",[t._v("优化订阅链接,支持导出Hysteria")]),t._v(" "),v("li",[t._v("升级Xray至v1.6.1,升级Hysteria至v1.3.2")]),t._v(" "),v("li",[t._v("使用Go 1.19.4编译")]),t._v(" "),v("li",[t._v("将一键安装脚本中Caddy升级至v2.6.2")]),t._v(" "),v("li",[t._v("优化一键安装脚本故障监测")]),t._v(" "),v("li",[t._v("新增一键安装脚本自动化升级")]),t._v(" "),v("li",[t._v("移除一键安装脚本本地IP检测")])]),t._v(" "),v("h4",{attrs:{id:"版本对应关系-3"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#版本对应关系-3"}},[t._v("#")]),t._v(" 版本对应关系")]),t._v(" "),v("table",[v("thead",[v("tr",[v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan Panel")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan Panel Core")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Xray")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan Go")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Hysteria")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Caddy(NaiveProxy)")])])]),t._v(" "),v("tbody",[v("tr",[v("td",{staticStyle:{"text-align":"center"}},[t._v("v1.3.1")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v1.3.2")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v1.6.1")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v0.10.6")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v1.3.2")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v2.6.2")])])])]),t._v(" "),v("div",{staticClass:"custom-block danger"},[v("p",{staticClass:"custom-block-title"},[t._v("注意")]),t._v(" "),v("p",[t._v("目前支持的NaiveProxy处于测试阶段,只支持用户认证不支持流量统计。")])]),t._v(" "),v("h2",{attrs:{id:"_2022-11-08-饕餮"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#_2022-11-08-饕餮"}},[t._v("#")]),t._v(" 2022.11.08 饕餮"),v("Badge",{attrs:{type:"tip",text:"v1.2",vertical:"top"}})],1),t._v(" "),v("ol",[v("li",[t._v("新增一键安装Trojan Panel Core,远程自动化部署和管理节点")]),t._v(" "),v("li",[t._v("新增自定义Trojan Panel前端端口")]),t._v(" "),v("li",[t._v("新增一键刷新Redis缓存")]),t._v(" "),v("li",[t._v("新增Xray节点类型")]),t._v(" "),v("li",[t._v("新增Clash订阅")]),t._v(" "),v("li",[t._v("修改用户密码加密方式")]),t._v(" "),v("li",[t._v("修改Docker网络模式为Host")]),t._v(" "),v("li",[t._v("修改日志输出级别")]),t._v(" "),v("li",[t._v("将单机版一键安装脚本从主脚本中分离")]),t._v(" "),v("li",[t._v("优化UI界面")])]),t._v(" "),v("h4",{attrs:{id:"版本对应关系-4"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#版本对应关系-4"}},[t._v("#")]),t._v(" 版本对应关系")]),t._v(" "),v("table",[v("thead",[v("tr",[v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan Panel")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan Panel Core")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Xray")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan-Go")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Hysteria")])])]),t._v(" "),v("tbody",[v("tr",[v("td",{staticStyle:{"text-align":"center"}},[t._v("v1.2.0")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v1.2.0")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v1.6.0")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v0.10.6")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v1.2.1")])])])]),t._v(" "),v("h2",{attrs:{id:"_2022-05-16-伏羲"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#_2022-05-16-伏羲"}},[t._v("#")]),t._v(" 2022.05.16 伏羲"),v("Badge",{attrs:{type:"tip",text:"v1.1",vertical:"top"}})],1),t._v(" "),v("ol",[v("li",[t._v("新增一键安装Redis")]),t._v(" "),v("li",[t._v("新增一键安装Hysteria")]),t._v(" "),v("li",[t._v("新增黑名单管理")]),t._v(" "),v("li",[t._v("新增邮件管理")]),t._v(" "),v("li",[t._v("新增流量排行")]),t._v(" "),v("li",[t._v("新增国际化,中/英文切换")]),t._v(" "),v("li",[t._v("新增系统字体大小设置")]),t._v(" "),v("li",[t._v("新增全屏显示")]),t._v(" "),v("li",[t._v("新增一键卸载Caddy TLS")]),t._v(" "),v("li",[t._v("新增一键卸载MariaDB")]),t._v(" "),v("li",[t._v("新增一键卸载Redis")]),t._v(" "),v("li",[t._v("新增一键故障检测")]),t._v(" "),v("li",[t._v("移除Trojan GFW,支持Hysteria")]),t._v(" "),v("li",[t._v("优化Trojan-Go,新增Websocket+SS配置")]),t._v(" "),v("li",[t._v("优化Trojan-Go节点生成的URL")]),t._v(" "),v("li",[t._v("优化Hysteria,新增单客户端最大上传/下载速度")]),t._v(" "),v("li",[t._v("引入Redis作为缓存")]),t._v(" "),v("li",[t._v("支持arm64架构")]),t._v(" "),v("li",[t._v("使用Docker Hub镜像:"),v("a",{attrs:{href:"https://hub.docker.com/r/jonssonyan/trojan-panel-ui",target:"_blank",rel:"noopener noreferrer"}},[t._v("trojan-panel-ui"),v("OutboundLink")],1),t._v("\n& "),v("a",{attrs:{href:"https://hub.docker.com/r/jonssonyan/trojan-panel",target:"_blank",rel:"noopener noreferrer"}},[t._v("trojan-panel"),v("OutboundLink")],1)])]),t._v(" "),v("div",{staticClass:"custom-block danger"},[v("p",{staticClass:"custom-block-title"},[t._v("注意")]),t._v(" "),v("p",[t._v("目前支持的Hysteria处于测试阶段,只支持用户认证不支持流量统计。")])]),t._v(" "),v("h2",{attrs:{id:"_2022-02-10-盘古"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#_2022-02-10-盘古"}},[t._v("#")]),t._v(" 2022.02.10 盘古"),v("Badge",{attrs:{type:"tip",text:"v1.0",vertical:"top"}})],1),t._v(" "),v("p",[t._v("Hello Trojan Panel")])])}),[],!1,null,null,null);v.default=a.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{291:function(t,v,_){"use strict";_.r(v);var e=_(7),a=Object(e.a)({},(function(){var t=this,v=t._self._c;return v("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[v("h1",{attrs:{id:"更新日志"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#更新日志"}},[t._v("#")]),t._v(" 更新日志")]),t._v(" "),v("h2",{attrs:{id:"_2023-07-08-帝江"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#_2023-07-08-帝江"}},[t._v("#")]),t._v(" 2023.07.08 帝江"),v("Badge",{attrs:{type:"tip",text:"v2.1",vertical:"top"}})],1),t._v(" "),v("ol",[v("li",[t._v("新增Nginx反代")]),t._v(" "),v("li",[t._v("新增Xray reality 移除xtls")]),t._v(" "),v("li",[t._v("新增修改用户名")]),t._v(" "),v("li",[t._v("新增验证码登录,增强账户安全")]),t._v(" "),v("li",[t._v("新增密码输入三次后账户锁定30分钟,增强账户安全")]),t._v(" "),v("li",[t._v("新增Hysteria混淆密码")]),t._v(" "),v("li",[t._v("新增vless reality随机生成publicKey/privateKey/shortIds/spiderX")]),t._v(" "),v("li",[t._v("新增验证码登录开启和关闭选项")]),t._v(" "),v("li",[t._v("新增批量创建账户和导出未使用账户")]),t._v(" "),v("li",[t._v("新增账户最后一次登录时间")]),t._v(" "),v("li",[t._v("新增Hysteria wechat-video")]),t._v(" "),v("li",[t._v("新增前端单独部署、更新、卸载")]),t._v(" "),v("li",[t._v("新增自定义前端指定后端的IP和端口")]),t._v(" "),v("li",[t._v("新增自定义后端IP和端口")]),t._v(" "),v("li",[t._v("新增自定义内核的IP和端口")]),t._v(" "),v("li",[t._v("新增不设置证书选项")]),t._v(" "),v("li",[t._v("新增将后端和内核配置文件夹挂载到宿主机")]),t._v(" "),v("li",[t._v("新增前端版本号")]),t._v(" "),v("li",[t._v("新增自定义后端的服务端口")]),t._v(" "),v("li",[t._v("新增自定义内核的服务端口")]),t._v(" "),v("li",[t._v("新增在线更换证书选项")]),t._v(" "),v("li",[t._v("新增忘记密码选项")]),t._v(" "),v("li",[t._v("新增节点优先级")]),t._v(" "),v("li",[t._v("新增管理员复制指定账户订阅地址")]),t._v(" "),v("li",[t._v("新增账户列表排序查询")]),t._v(" "),v("li",[t._v("新增Hysteria支持SNI 允许不安全 快速打开")]),t._v(" "),v("li",[t._v("修改证书文件目录至/tpdta/cert/")]),t._v(" "),v("li",[t._v("修改伪装Web目录至/tpdate/web/")]),t._v(" "),v("li",[t._v("修改用户和服务器导出csv格式修改为json,格式更加通用")]),t._v(" "),v("li",[t._v("修改Xray和Clash规则模板长度调整至10240")]),t._v(" "),v("li",[t._v("移除Xray trojan 流控选项")]),t._v(" "),v("li",[t._v("修复Shadowsocks加密方式名称")]),t._v(" "),v("li",[t._v("修复Xray Trojan传输层加密的问题")]),t._v(" "),v("li",[t._v("修复Copy URL失效的问题")]),t._v(" "),v("li",[t._v("修复后端和内核更新不用输入数据库和Redis等相关信息")]),t._v(" "),v("li",[t._v("修复docker compose部署文件")]),t._v(" "),v("li",[t._v("修复Clash模板字符串长度限制提升到102400")]),t._v(" "),v("li",[t._v("修复自动化更新数据结构未变化的问题")]),t._v(" "),v("li",[t._v("升级Xray至v1.8.0,升级Hysteria至v1.3.4")]),t._v(" "),v("li",[t._v("组件化开发重构前端节点模块代码,对后端和内核代码进行优化,错误处理和必要的资源释放")]),t._v(" "),v("li",[t._v("优化Clash订阅")]),t._v(" "),v("li",[t._v("优化Xray分享链接")]),t._v(" "),v("li",[t._v("优化服务器状态检测逻辑")]),t._v(" "),v("li",[t._v("优化Xray reality serverNames编辑确认效果")]),t._v(" "),v("li",[t._v("优化Caddy2故障检测")]),t._v(" "),v("li",[t._v("将锁换成分布式锁,支持部署多个后端")]),t._v(" "),v("li",[t._v("优化代码,并发处理,提升系统性能")])]),t._v(" "),v("h4",{attrs:{id:"版本对应关系"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#版本对应关系"}},[t._v("#")]),t._v(" 版本对应关系")]),t._v(" "),v("table",[v("thead",[v("tr",[v("th",{staticStyle:{"text-align":"center"}},[t._v("Install Script")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan Panel UI")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan Panel")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan Panel Core")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Core SDK")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Xray")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan Go")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Hysteria")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Caddy(NaiveProxy)")])])]),t._v(" "),v("tbody",[v("tr",[v("td",{staticStyle:{"text-align":"center"}},[t._v("v2.1.8")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v2.1.6")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v2.1.5")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v2.1.2")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v0.0.1")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v1.8.0")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v0.10.6")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v1.3.4")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v2.6.4")])])])]),t._v(" "),v("h2",{attrs:{id:"_2023-03-31-穷奇"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#_2023-03-31-穷奇"}},[t._v("#")]),t._v(" 2023.03.31 穷奇"),v("Badge",{attrs:{type:"tip",text:"v2.0",vertical:"top"}})],1),t._v(" "),v("ol",[v("li",[t._v("新增自动化无损升级")]),t._v(" "),v("li",[t._v("新增Xray模板")]),t._v(" "),v("li",[t._v("新增Clash规则模板")]),t._v(" "),v("li",[t._v("新增节点详情")]),t._v(" "),v("li",[t._v("新增服务器详情")]),t._v(" "),v("li",[t._v("新增波斯语")]),t._v(" "),v("li",[t._v("新增节点守护进程")]),t._v(" "),v("li",[t._v("新增Shadowsocks协议")]),t._v(" "),v("li",[t._v("新增流控设置")]),t._v(" "),v("li",[t._v("新增Xray tcp+tls自定义回落")]),t._v(" "),v("li",[t._v("新增版本查询功能")]),t._v(" "),v("li",[t._v("新增自定义面板与节点的通信端口")]),t._v(" "),v("li",[t._v("新增自定义Caddy2端口")]),t._v(" "),v("li",[t._v("新增旧版本安装")]),t._v(" "),v("li",[t._v("新增服务器选项框跳转到服务器列表")]),t._v(" "),v("li",[t._v("新增SQLite作为持久化")]),t._v(" "),v("li",[t._v("新增服务器管理TP Core版本显示")]),t._v(" "),v("li",[t._v("新增用户导入和导出")]),t._v(" "),v("li",[t._v("新增服务器导入和导出")]),t._v(" "),v("li",[t._v("新增自定义系统名称")]),t._v(" "),v("li",[t._v("新增自定义Logo")]),t._v(" "),v("li",[t._v("设置Docker日志文件大小最大值为50m")]),t._v(" "),v("li",[t._v("设置故障监测默认日志查询级别为error")]),t._v(" "),v("li",[t._v("设置MariaDB数据库默认编码为utf8mb4")]),t._v(" "),v("li",[t._v("设置Nginx支持TLSv1.3")]),t._v(" "),v("li",[t._v("修复一些显示错误和控制台报错")]),t._v(" "),v("li",[t._v("修复Clash订阅地址 Hysteria连接密码字段错误")]),t._v(" "),v("li",[t._v("修复弹窗显示异常的Bug")]),t._v(" "),v("li",[t._v("优化系统归档和更新")]),t._v(" "),v("li",[t._v("优化节点状态展示")]),t._v(" "),v("li",[t._v("优化服务器和节点的状态检测逻辑")]),t._v(" "),v("li",[t._v("升级Xray至v1.7.5,升级Hysteria至v1.3.3,升级Caddy(NaiveProxy)至v2.6.4")])]),t._v(" "),v("h4",{attrs:{id:"版本对应关系-2"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#版本对应关系-2"}},[t._v("#")]),t._v(" 版本对应关系")]),t._v(" "),v("table",[v("thead",[v("tr",[v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan Panel")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan Panel Core")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Xray")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan Go")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Hysteria")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Caddy(NaiveProxy)")])])]),t._v(" "),v("tbody",[v("tr",[v("td",{staticStyle:{"text-align":"center"}},[t._v("v2.0.5")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v2.0.4")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v1.7.5")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v0.10.6")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v1.3.3")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v2.6.4")])])])]),t._v(" "),v("h2",{attrs:{id:"_2022-12-29-麒麟"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#_2022-12-29-麒麟"}},[t._v("#")]),t._v(" 2022.12.29 麒麟"),v("Badge",{attrs:{type:"tip",text:"v1.3",vertical:"top"}})],1),t._v(" "),v("ol",[v("li",[t._v("新增NaiveProxy节点类型")]),t._v(" "),v("li",[t._v("新增自定义数据库和Redis端口")]),t._v(" "),v("li",[t._v("新增重设用户下载和上传流量")]),t._v(" "),v("li",[t._v("新增关闭流量排行")]),t._v(" "),v("li",[t._v("新增服务器管理")]),t._v(" "),v("li",[t._v("新增韩语,更彻底的国际化")]),t._v(" "),v("li",[t._v("新增服务器信息显示")]),t._v(" "),v("li",[t._v("新增一键安装NaiveProxy单机版")]),t._v(" "),v("li",[t._v("新增Trojan Panel前端是否开启https选项")]),t._v(" "),v("li",[t._v("新增实时修改Trojan Panel前端端口")]),t._v(" "),v("li",[t._v("修复Trojan-Go复制URL的Bug")]),t._v(" "),v("li",[t._v("修复Xray tcp+tls 回落地址无法访问")]),t._v(" "),v("li",[t._v("修复Hysteria单客户端最大上传/下载速度上限为9999999999")]),t._v(" "),v("li",[t._v("优化订阅链接,支持导出Hysteria")]),t._v(" "),v("li",[t._v("升级Xray至v1.6.1,升级Hysteria至v1.3.2")]),t._v(" "),v("li",[t._v("使用Go 1.19.4编译")]),t._v(" "),v("li",[t._v("将一键安装脚本中Caddy升级至v2.6.2")]),t._v(" "),v("li",[t._v("优化一键安装脚本故障监测")]),t._v(" "),v("li",[t._v("新增一键安装脚本自动化升级")]),t._v(" "),v("li",[t._v("移除一键安装脚本本地IP检测")])]),t._v(" "),v("h4",{attrs:{id:"版本对应关系-3"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#版本对应关系-3"}},[t._v("#")]),t._v(" 版本对应关系")]),t._v(" "),v("table",[v("thead",[v("tr",[v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan Panel")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan Panel Core")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Xray")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan Go")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Hysteria")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Caddy(NaiveProxy)")])])]),t._v(" "),v("tbody",[v("tr",[v("td",{staticStyle:{"text-align":"center"}},[t._v("v1.3.1")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v1.3.2")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v1.6.1")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v0.10.6")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v1.3.2")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v2.6.2")])])])]),t._v(" "),v("div",{staticClass:"custom-block danger"},[v("p",{staticClass:"custom-block-title"},[t._v("注意")]),t._v(" "),v("p",[t._v("目前支持的NaiveProxy处于测试阶段,只支持用户认证不支持流量统计。")])]),t._v(" "),v("h2",{attrs:{id:"_2022-11-08-饕餮"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#_2022-11-08-饕餮"}},[t._v("#")]),t._v(" 2022.11.08 饕餮"),v("Badge",{attrs:{type:"tip",text:"v1.2",vertical:"top"}})],1),t._v(" "),v("ol",[v("li",[t._v("新增一键安装Trojan Panel Core,远程自动化部署和管理节点")]),t._v(" "),v("li",[t._v("新增自定义Trojan Panel前端端口")]),t._v(" "),v("li",[t._v("新增一键刷新Redis缓存")]),t._v(" "),v("li",[t._v("新增Xray节点类型")]),t._v(" "),v("li",[t._v("新增Clash订阅")]),t._v(" "),v("li",[t._v("修改用户密码加密方式")]),t._v(" "),v("li",[t._v("修改Docker网络模式为Host")]),t._v(" "),v("li",[t._v("修改日志输出级别")]),t._v(" "),v("li",[t._v("将单机版一键安装脚本从主脚本中分离")]),t._v(" "),v("li",[t._v("优化UI界面")])]),t._v(" "),v("h4",{attrs:{id:"版本对应关系-4"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#版本对应关系-4"}},[t._v("#")]),t._v(" 版本对应关系")]),t._v(" "),v("table",[v("thead",[v("tr",[v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan Panel")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan Panel Core")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Xray")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Trojan-Go")]),t._v(" "),v("th",{staticStyle:{"text-align":"center"}},[t._v("Hysteria")])])]),t._v(" "),v("tbody",[v("tr",[v("td",{staticStyle:{"text-align":"center"}},[t._v("v1.2.0")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v1.2.0")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v1.6.0")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v0.10.6")]),t._v(" "),v("td",{staticStyle:{"text-align":"center"}},[t._v("v1.2.1")])])])]),t._v(" "),v("h2",{attrs:{id:"_2022-05-16-伏羲"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#_2022-05-16-伏羲"}},[t._v("#")]),t._v(" 2022.05.16 伏羲"),v("Badge",{attrs:{type:"tip",text:"v1.1",vertical:"top"}})],1),t._v(" "),v("ol",[v("li",[t._v("新增一键安装Redis")]),t._v(" "),v("li",[t._v("新增一键安装Hysteria")]),t._v(" "),v("li",[t._v("新增黑名单管理")]),t._v(" "),v("li",[t._v("新增邮件管理")]),t._v(" "),v("li",[t._v("新增流量排行")]),t._v(" "),v("li",[t._v("新增国际化,中/英文切换")]),t._v(" "),v("li",[t._v("新增系统字体大小设置")]),t._v(" "),v("li",[t._v("新增全屏显示")]),t._v(" "),v("li",[t._v("新增一键卸载Caddy TLS")]),t._v(" "),v("li",[t._v("新增一键卸载MariaDB")]),t._v(" "),v("li",[t._v("新增一键卸载Redis")]),t._v(" "),v("li",[t._v("新增一键故障检测")]),t._v(" "),v("li",[t._v("移除Trojan GFW,支持Hysteria")]),t._v(" "),v("li",[t._v("优化Trojan-Go,新增Websocket+SS配置")]),t._v(" "),v("li",[t._v("优化Trojan-Go节点生成的URL")]),t._v(" "),v("li",[t._v("优化Hysteria,新增单客户端最大上传/下载速度")]),t._v(" "),v("li",[t._v("引入Redis作为缓存")]),t._v(" "),v("li",[t._v("支持arm64架构")]),t._v(" "),v("li",[t._v("使用Docker Hub镜像:"),v("a",{attrs:{href:"https://hub.docker.com/r/jonssonyan/trojan-panel-ui",target:"_blank",rel:"noopener noreferrer"}},[t._v("trojan-panel-ui"),v("OutboundLink")],1),t._v("\n& "),v("a",{attrs:{href:"https://hub.docker.com/r/jonssonyan/trojan-panel",target:"_blank",rel:"noopener noreferrer"}},[t._v("trojan-panel"),v("OutboundLink")],1)])]),t._v(" "),v("div",{staticClass:"custom-block danger"},[v("p",{staticClass:"custom-block-title"},[t._v("注意")]),t._v(" "),v("p",[t._v("目前支持的Hysteria处于测试阶段,只支持用户认证不支持流量统计。")])]),t._v(" "),v("h2",{attrs:{id:"_2022-02-10-盘古"}},[v("a",{staticClass:"header-anchor",attrs:{href:"#_2022-02-10-盘古"}},[t._v("#")]),t._v(" 2022.02.10 盘古"),v("Badge",{attrs:{type:"tip",text:"v1.0",vertical:"top"}})],1),t._v(" "),v("p",[t._v("Hello Trojan Panel")])])}),[],!1,null,null,null);v.default=a.exports}}]); \ No newline at end of file diff --git a/docs/assets/js/app.836c6f7c.js b/docs/assets/js/app.27e4f952.js similarity index 83% rename from docs/assets/js/app.836c6f7c.js rename to docs/assets/js/app.27e4f952.js index cb9d6fe..e64cf7d 100644 --- a/docs/assets/js/app.836c6f7c.js +++ b/docs/assets/js/app.27e4f952.js @@ -1,4 +1,4 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(t){function e(e){for(var r,a,s=e[0],u=e[1],c=e[2],f=0,p=[];f=e||n<0||m&&t-c>=i}function x(){var t=d();if(_(t))return w(t);s=setTimeout(x,function(t){var n=e-(t-u);return m?p(n,i-(t-c)):n}(t))}function w(t){return s=void 0,g&&r?y(t):(r=o=void 0,a)}function C(){var t=d(),n=_(t);if(r=arguments,o=this,u=t,n){if(void 0===s)return b(u);if(m)return s=setTimeout(x,e),y(u)}return void 0===s&&(s=setTimeout(x,e)),a}return e=v(e)||0,h(n)&&(l=!!n.leading,i=(m="maxWait"in n)?f(v(n.maxWait)||0,e):i,g="trailing"in n?!!n.trailing:g),C.cancel=function(){void 0!==s&&clearTimeout(s),c=0,r=u=o=s=void 0},C.flush=function(){return void 0===s?a:w(d())},C}},function(t,e,n){var r,o; +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(t){function e(e){for(var r,a,s=e[0],u=e[1],c=e[2],f=0,p=[];f=e||n<0||m&&t-c>=i}function x(){var t=d();if(_(t))return w(t);s=setTimeout(x,function(t){var n=e-(t-u);return m?p(n,i-(t-c)):n}(t))}function w(t){return s=void 0,g&&r?y(t):(r=o=void 0,a)}function k(){var t=d(),n=_(t);if(r=arguments,o=this,u=t,n){if(void 0===s)return b(u);if(m)return s=setTimeout(x,e),y(u)}return void 0===s&&(s=setTimeout(x,e)),a}return e=v(e)||0,h(n)&&(l=!!n.leading,i=(m="maxWait"in n)?f(v(n.maxWait)||0,e):i,g="trailing"in n?!!n.trailing:g),k.cancel=function(){void 0!==s&&clearTimeout(s),c=0,r=u=o=s=void 0},k.flush=function(){return void 0===s?a:w(d())},k}},function(t,e,n){var r,o; /* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress * @license MIT */void 0===(o="function"==typeof(r=function(){var t,e,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function o(t,e,n){return tn?n:t}function i(t){return 100*(-1+t)}n.configure=function(t){var e,n;for(e in t)void 0!==(n=t[e])&&t.hasOwnProperty(e)&&(r[e]=n);return this},n.status=null,n.set=function(t){var e=n.isStarted();t=o(t,r.minimum,1),n.status=1===t?null:t;var u=n.render(!e),c=u.querySelector(r.barSelector),l=r.speed,f=r.easing;return u.offsetWidth,a((function(e){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(c,function(t,e,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+i(t)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(t)+"%,0)"}:{"margin-left":i(t)+"%"}).transition="all "+e+"ms "+n,o}(t,l,f)),1===t?(s(u,{transition:"none",opacity:1}),u.offsetWidth,setTimeout((function(){s(u,{transition:"all "+l+"ms linear",opacity:0}),setTimeout((function(){n.remove(),e()}),l)}),l)):setTimeout(e,l)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var t=function(){setTimeout((function(){n.status&&(n.trickle(),t())}),r.trickleSpeed)};return r.trickle&&t(),this},n.done=function(t){return t||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(t){var e=n.status;return e?("number"!=typeof t&&(t=(1-e)*o(Math.random()*e,.1,.95)),e=o(e+t,0,.994),n.set(e)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},t=0,e=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===e&&n.start(),t++,e++,r.always((function(){0==--e?(t=0,n.done()):n.set((t-e)/t)})),this):this},n.render=function(t){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var e=document.createElement("div");e.id="nprogress",e.innerHTML=r.template;var o,a=e.querySelector(r.barSelector),u=t?"-100":i(n.status||0),l=document.querySelector(r.parent);return s(a,{transition:"all 0 linear",transform:"translate3d("+u+"%,0,0)"}),r.showSpinner||(o=e.querySelector(r.spinnerSelector))&&p(o),l!=document.body&&c(l,"nprogress-custom-parent"),l.appendChild(e),e},n.remove=function(){l(document.documentElement,"nprogress-busy"),l(document.querySelector(r.parent),"nprogress-custom-parent");var t=document.getElementById("nprogress");t&&p(t)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var t=document.body.style,e="WebkitTransform"in t?"Webkit":"MozTransform"in t?"Moz":"msTransform"in t?"ms":"OTransform"in t?"O":"";return e+"Perspective"in t?"translate3d":e+"Transform"in t?"translate":"margin"};var a=function(){var t=[];function e(){var n=t.shift();n&&n(e)}return function(n){t.push(n),1==t.length&&e()}}(),s=function(){var t=["Webkit","O","Moz","ms"],e={};function n(n){return n=n.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(t,e){return e.toUpperCase()})),e[n]||(e[n]=function(e){var n=document.body.style;if(e in n)return e;for(var r,o=t.length,i=e.charAt(0).toUpperCase()+e.slice(1);o--;)if((r=t[o]+i)in n)return r;return e}(n))}function r(t,e,r){e=n(e),t.style[e]=r}return function(t,e){var n,o,i=arguments;if(2==i.length)for(n in e)void 0!==(o=e[n])&&e.hasOwnProperty(n)&&r(t,n,o);else r(t,i[1],i[2])}}();function u(t,e){return("string"==typeof t?t:f(t)).indexOf(" "+e+" ")>=0}function c(t,e){var n=f(t),r=n+e;u(n,e)||(t.className=r.substring(1))}function l(t,e){var n,r=f(t);u(t,e)&&(n=r.replace(" "+e+" "," "),t.className=n.substring(1,n.length-1))}function f(t){return(" "+(t.className||"")+" ").replace(/\s+/gi," ")}function p(t){t&&t.parentNode&&t.parentNode.removeChild(t)}return n})?r.call(e,n,e,t):r)||(t.exports=o)},function(t,e,n){var r=n(1),o=n(45).f,i=n(16),a=n(105),s=n(32),u=n(62),c=n(121);t.exports=function(t,e){var n,l,f,p,d,h=t.target,v=t.global,m=t.stat;if(n=v?r:m?r[h]||s(h,{}):(r[h]||{}).prototype)for(l in e){if(p=e[l],f=t.dontCallGetSet?(d=o(n,l))&&d.value:n[l],!c(v?l:h+(m?".":"#")+l,t.forced)&&void 0!==f){if(typeof p==typeof f)continue;u(p,f)}(t.sham||f&&f.sham)&&i(p,"sham",!0),a(n,l,p,t)}}},function(t,e,n){var r=n(27),o=Function.prototype.call;t.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},function(t,e,n){var r=n(2);t.exports=!r((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var r=n(46),o=n(47);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(1),o=n(57),i=n(8),a=n(59),s=n(54),u=n(53),c=o("wks"),l=r.Symbol,f=l&&l.for,p=u?l:l&&l.withoutSetter||a;t.exports=function(t){if(!i(c,t)||!s&&"string"!=typeof c[t]){var e="Symbol."+t;s&&i(l,t)?c[t]=l[t]:c[t]=u&&f?f(e):p(e)}return c[t]}},function(t,e,n){var r=n(1),o=n(32),i=r["__core-js_shared__"]||o("__core-js_shared__",{});t.exports=i},function(t,e,n){var r=n(1),o=Object.defineProperty;t.exports=function(t,e){try{o(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}},function(t,e,n){var r=n(47),o=Object;t.exports=function(t){return o(r(t))}},function(t,e,n){var r=n(9),o=String,i=TypeError;t.exports=function(t){if(r(t))return t;throw i(o(t)+" is not an object")}},function(t,e,n){var r=n(118);t.exports=function(t){return r(t.length)}},function(t,e,n){var r=n(143),o=n(11),i=Object.prototype,a=i.hasOwnProperty,s=i.propertyIsEnumerable,u=r(function(){return arguments}())?r:function(t){return o(t)&&a.call(t,"callee")&&!s.call(t,"callee")};t.exports=u},function(t,e,n){var r=n(10)(n(6),"Map");t.exports=r},function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},function(t,e,n){var r=n(163),o=n(170),i=n(172),a=n(173),s=n(174);function u(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e-1&&t%1==0&&t<=9007199254740991}},function(t,e,n){var r=n(4),o=n(43),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;t.exports=function(t,e){if(r(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!o(t))||(a.test(t)||!i.test(t)||null!=e&&t in Object(e))}},function(t,e,n){var r=n(12),o=n(11);t.exports=function(t){return"symbol"==typeof t||o(t)&&"[object Symbol]"==r(t)}},function(t,e){t.exports=function(t){return t}},function(t,e,n){var r=n(5),o=n(26),i=n(97),a=n(28),s=n(29),u=n(49),c=n(8),l=n(60),f=Object.getOwnPropertyDescriptor;e.f=r?f:function(t,e){if(t=s(t),e=u(e),l)try{return f(t,e)}catch(t){}if(c(t,e))return a(!o(i.f,t,e),t[e])}},function(t,e,n){var r=n(3),o=n(2),i=n(14),a=Object,s=r("".split);t.exports=o((function(){return!a("z").propertyIsEnumerable(0)}))?function(t){return"String"==i(t)?s(t,""):a(t)}:a},function(t,e,n){var r=n(48),o=TypeError;t.exports=function(t){if(r(t))throw o("Can't call method on "+t);return t}},function(t,e){t.exports=function(t){return null==t}},function(t,e,n){var r=n(98),o=n(51);t.exports=function(t){var e=r(t,"string");return o(e)?e:e+""}},function(t,e){var n="object"==typeof document&&document.all,r=void 0===n&&void 0!==n;t.exports={all:n,IS_HTMLDDA:r}},function(t,e,n){var r=n(15),o=n(0),i=n(52),a=n(53),s=Object;t.exports=a?function(t){return"symbol"==typeof t}:function(t){var e=r("Symbol");return o(e)&&i(e.prototype,s(t))}},function(t,e,n){var r=n(3);t.exports=r({}.isPrototypeOf)},function(t,e,n){var r=n(54);t.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(t,e,n){var r=n(55),o=n(2);t.exports=!!Object.getOwnPropertySymbols&&!o((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},function(t,e,n){var r,o,i=n(1),a=n(99),s=i.process,u=i.Deno,c=s&&s.versions||u&&u.version,l=c&&c.v8;l&&(o=(r=l.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(o=+r[1]),t.exports=o},function(t,e,n){var r=n(0),o=n(101),i=TypeError;t.exports=function(t){if(r(t))return t;throw i(o(t)+" is not a function")}},function(t,e,n){var r=n(58),o=n(31);(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.26.1",mode:r?"pure":"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.26.1/LICENSE",source:"https://github.com/zloirock/core-js"})},function(t,e){t.exports=!1},function(t,e,n){var r=n(3),o=0,i=Math.random(),a=r(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+a(++o+i,36)}},function(t,e,n){var r=n(5),o=n(2),i=n(103);t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},function(t,e){t.exports={}},function(t,e,n){var r=n(8),o=n(112),i=n(45),a=n(17);t.exports=function(t,e,n){for(var s=o(e),u=a.f,c=i.f,l=0;ll))return!1;var p=u.get(t),d=u.get(e);if(p&&d)return p==e&&d==t;var h=-1,v=!0,m=2&n?new r:void 0;for(u.set(t,e),u.set(e,t);++h-1&&t%1==0&&t]/;t.exports=function(t){var e,n=""+t,o=r.exec(n);if(!o)return n;var i="",a=0,s=0;for(a=o.index;a79&&a<83},{reduce:function(t){var e=arguments.length;return o(this,t,e,e>1?arguments[1]:void 0)}})},function(t,e,n){"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},function(t,e,n){var r=n(26),o=n(9),i=n(51),a=n(100),s=n(102),u=n(30),c=TypeError,l=u("toPrimitive");t.exports=function(t,e){if(!o(t)||i(t))return t;var n,u=a(t,l);if(u){if(void 0===e&&(e="default"),n=r(u,t,e),!o(n)||i(n))return n;throw c("Can't convert object to primitive value")}return void 0===e&&(e="number"),s(t,e)}},function(t,e,n){var r=n(15);t.exports=r("navigator","userAgent")||""},function(t,e,n){var r=n(56),o=n(48);t.exports=function(t,e){var n=t[e];return o(n)?void 0:r(n)}},function(t,e){var n=String;t.exports=function(t){try{return n(t)}catch(t){return"Object"}}},function(t,e,n){var r=n(26),o=n(0),i=n(9),a=TypeError;t.exports=function(t,e){var n,s;if("string"===e&&o(n=t.toString)&&!i(s=r(n,t)))return s;if(o(n=t.valueOf)&&!i(s=r(n,t)))return s;if("string"!==e&&o(n=t.toString)&&!i(s=r(n,t)))return s;throw a("Can't convert object to primitive value")}},function(t,e,n){var r=n(1),o=n(9),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},function(t,e,n){var r=n(5),o=n(2);t.exports=r&&o((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},function(t,e,n){var r=n(0),o=n(17),i=n(106),a=n(32);t.exports=function(t,e,n,s){s||(s={});var u=s.enumerable,c=void 0!==s.name?s.name:e;if(r(n)&&i(n,c,s),s.global)u?t[e]=n:a(e,n);else{try{s.unsafe?t[e]&&(u=!0):delete t[e]}catch(t){}u?t[e]=n:o.f(t,e,{value:n,enumerable:!1,configurable:!s.nonConfigurable,writable:!s.nonWritable})}return t}},function(t,e,n){var r=n(2),o=n(0),i=n(8),a=n(5),s=n(107).CONFIGURABLE,u=n(108),c=n(109),l=c.enforce,f=c.get,p=Object.defineProperty,d=a&&!r((function(){return 8!==p((function(){}),"length",{value:8}).length})),h=String(String).split("String"),v=t.exports=function(t,e,n){"Symbol("===String(e).slice(0,7)&&(e="["+String(e).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!i(t,"name")||s&&t.name!==e)&&(a?p(t,"name",{value:e,configurable:!0}):t.name=e),d&&n&&i(n,"arity")&&t.length!==n.arity&&p(t,"length",{value:n.arity});try{n&&i(n,"constructor")&&n.constructor?a&&p(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var r=l(t);return i(r,"source")||(r.source=h.join("string"==typeof e?e:"")),t};Function.prototype.toString=v((function(){return o(this)&&f(this).source||u(this)}),"toString")},function(t,e,n){var r=n(5),o=n(8),i=Function.prototype,a=r&&Object.getOwnPropertyDescriptor,s=o(i,"name"),u=s&&"something"===function(){}.name,c=s&&(!r||r&&a(i,"name").configurable);t.exports={EXISTS:s,PROPER:u,CONFIGURABLE:c}},function(t,e,n){var r=n(3),o=n(0),i=n(31),a=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(t){return a(t)}),t.exports=i.inspectSource},function(t,e,n){var r,o,i,a=n(110),s=n(1),u=n(9),c=n(16),l=n(8),f=n(31),p=n(111),d=n(61),h=s.TypeError,v=s.WeakMap;if(a||f.state){var m=f.state||(f.state=new v);m.get=m.get,m.has=m.has,m.set=m.set,r=function(t,e){if(m.has(t))throw h("Object already initialized");return e.facade=t,m.set(t,e),e},o=function(t){return m.get(t)||{}},i=function(t){return m.has(t)}}else{var g=p("state");d[g]=!0,r=function(t,e){if(l(t,g))throw h("Object already initialized");return e.facade=t,c(t,g,e),e},o=function(t){return l(t,g)?t[g]:{}},i=function(t){return l(t,g)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw h("Incompatible receiver, "+t+" required");return n}}}},function(t,e,n){var r=n(1),o=n(0),i=r.WeakMap;t.exports=o(i)&&/native code/.test(String(i))},function(t,e,n){var r=n(57),o=n(59),i=r("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},function(t,e,n){var r=n(15),o=n(3),i=n(113),a=n(120),s=n(34),u=o([].concat);t.exports=r("Reflect","ownKeys")||function(t){var e=i.f(s(t)),n=a.f;return n?u(e,n(t)):e}},function(t,e,n){var r=n(114),o=n(119).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},function(t,e,n){var r=n(3),o=n(8),i=n(29),a=n(115).indexOf,s=n(61),u=r([].push);t.exports=function(t,e){var n,r=i(t),c=0,l=[];for(n in r)!o(s,n)&&o(r,n)&&u(l,n);for(;e.length>c;)o(r,n=e[c++])&&(~a(l,n)||u(l,n));return l}},function(t,e,n){var r=n(29),o=n(116),i=n(35),a=function(t){return function(e,n,a){var s,u=r(e),c=i(u),l=o(a,c);if(t&&n!=n){for(;c>l;)if((s=u[l++])!=s)return!0}else for(;c>l;l++)if((t||l in u)&&u[l]===n)return t||l||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},function(t,e,n){var r=n(63),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=Math.trunc||function(t){var e=+t;return(e>0?r:n)(e)}},function(t,e,n){var r=n(63),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var r=n(2),o=n(0),i=/#|\.prototype\./,a=function(t,e){var n=u[s(t)];return n==l||n!=c&&(o(e)?r(e):!!e)},s=a.normalize=function(t){return String(t).replace(i,".").toLowerCase()},u=a.data={},c=a.NATIVE="N",l=a.POLYFILL="P";t.exports=a},function(t,e,n){var r=n(56),o=n(33),i=n(46),a=n(35),s=TypeError,u=function(t){return function(e,n,u,c){r(n);var l=o(e),f=i(l),p=a(l),d=t?p-1:0,h=t?-1:1;if(u<2)for(;;){if(d in f){c=f[d],d+=h;break}if(d+=h,t?d<0:p<=d)throw s("Reduce of empty array with no initial value")}for(;t?d>=0:p>d;d+=h)d in f&&(c=n(c,f[d],d,l));return c}};t.exports={left:u(!1),right:u(!0)}},function(t,e,n){"use strict";var r=n(2);t.exports=function(t,e){var n=[][t];return!!n&&r((function(){n.call(null,e||function(){return 1},1)}))}},function(t,e,n){var r=n(14),o=n(1);t.exports="process"==r(o.process)},function(t,e,n){"use strict";var r=n(5),o=n(126),i=TypeError,a=Object.getOwnPropertyDescriptor,s=r&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}();t.exports=s?function(t,e){if(o(t)&&!a(t,"length").writable)throw i("Cannot set read only .length");return t.length=e}:function(t,e){return t.length=e}},function(t,e,n){var r=n(14);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e){var n=TypeError;t.exports=function(t){if(t>9007199254740991)throw n("Maximum allowed index exceeded");return t}},function(t,e,n){var r=n(25),o=n(1),i=n(129),a=n(130),s=o.WebAssembly,u=7!==Error("e",{cause:7}).cause,c=function(t,e){var n={};n[t]=a(t,e,u),r({global:!0,constructor:!0,arity:1,forced:u},n)},l=function(t,e){if(s&&s[t]){var n={};n[t]=a("WebAssembly."+t,e,u),r({target:"WebAssembly",stat:!0,constructor:!0,arity:1,forced:u},n)}};c("Error",(function(t){return function(e){return i(t,this,arguments)}})),c("EvalError",(function(t){return function(e){return i(t,this,arguments)}})),c("RangeError",(function(t){return function(e){return i(t,this,arguments)}})),c("ReferenceError",(function(t){return function(e){return i(t,this,arguments)}})),c("SyntaxError",(function(t){return function(e){return i(t,this,arguments)}})),c("TypeError",(function(t){return function(e){return i(t,this,arguments)}})),c("URIError",(function(t){return function(e){return i(t,this,arguments)}})),l("CompileError",(function(t){return function(e){return i(t,this,arguments)}})),l("LinkError",(function(t){return function(e){return i(t,this,arguments)}})),l("RuntimeError",(function(t){return function(e){return i(t,this,arguments)}}))},function(t,e,n){var r=n(27),o=Function.prototype,i=o.apply,a=o.call;t.exports="object"==typeof Reflect&&Reflect.apply||(r?a.bind(i):function(){return a.apply(i,arguments)})},function(t,e,n){"use strict";var r=n(15),o=n(8),i=n(16),a=n(52),s=n(64),u=n(62),c=n(132),l=n(133),f=n(134),p=n(138),d=n(139),h=n(140),v=n(5),m=n(58);t.exports=function(t,e,n,g){var y=g?2:1,b=t.split("."),_=b[b.length-1],x=r.apply(null,b);if(x){var w=x.prototype;if(!m&&o(w,"cause")&&delete w.cause,!n)return x;var C=r("Error"),k=e((function(t,e){var n=f(g?e:t,void 0),r=g?new x(t):new x;return void 0!==n&&i(r,"message",n),h&&i(r,"stack",d(r.stack,2)),this&&a(w,this)&&l(r,this,k),arguments.length>y&&p(r,arguments[y]),r}));if(k.prototype=w,"Error"!==_?s?s(k,C):u(k,C,{name:!0}):v&&"stackTraceLimit"in x&&(c(k,x,"stackTraceLimit"),c(k,x,"prepareStackTrace")),u(k,x),!m)try{w.name!==_&&i(w,"name",_),w.constructor=k}catch(t){}return k}}},function(t,e,n){var r=n(0),o=String,i=TypeError;t.exports=function(t){if("object"==typeof t||r(t))return t;throw i("Can't set "+o(t)+" as a prototype")}},function(t,e,n){var r=n(17).f;t.exports=function(t,e,n){n in t||r(t,n,{configurable:!0,get:function(){return e[n]},set:function(t){e[n]=t}})}},function(t,e,n){var r=n(0),o=n(9),i=n(64);t.exports=function(t,e,n){var a,s;return i&&r(a=e.constructor)&&a!==n&&o(s=a.prototype)&&s!==n.prototype&&i(t,s),t}},function(t,e,n){var r=n(135);t.exports=function(t,e){return void 0===t?arguments.length<2?"":e:r(t)}},function(t,e,n){var r=n(136),o=String;t.exports=function(t){if("Symbol"===r(t))throw TypeError("Cannot convert a Symbol value to a string");return o(t)}},function(t,e,n){var r=n(137),o=n(0),i=n(14),a=n(30)("toStringTag"),s=Object,u="Arguments"==i(function(){return arguments}());t.exports=r?i:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=s(t),a))?n:u?i(e):"Object"==(r=i(e))&&o(e.callee)?"Arguments":r}},function(t,e,n){var r={};r[n(30)("toStringTag")]="z",t.exports="[object z]"===String(r)},function(t,e,n){var r=n(9),o=n(16);t.exports=function(t,e){r(e)&&"cause"in e&&o(t,"cause",e.cause)}},function(t,e,n){var r=n(3),o=Error,i=r("".replace),a=String(o("zxcasd").stack),s=/\n\s*at [^:]*:[^\n]*/,u=s.test(a);t.exports=function(t,e){if(u&&"string"==typeof t&&!o.prepareStackTrace)for(;e--;)t=i(t,s,"");return t}},function(t,e,n){var r=n(2),o=n(28);t.exports=!r((function(){var t=Error("a");return!("stack"in t)||(Object.defineProperty(t,"stack",o(1,7)),7!==t.stack)}))},function(t,e,n){var r=n(65),o=n(142);t.exports=function t(e,n,i,a,s){var u=-1,c=e.length;for(i||(i=o),s||(s=[]);++u0&&i(l)?n>1?t(l,n-1,i,a,s):r(s,l):a||(s[s.length]=l)}return s}},function(t,e,n){var r=n(13),o=n(36),i=n(4),a=r?r.isConcatSpreadable:void 0;t.exports=function(t){return i(t)||o(t)||!!(a&&t&&t[a])}},function(t,e,n){var r=n(12),o=n(11);t.exports=function(t){return o(t)&&"[object Arguments]"==r(t)}},function(t,e,n){var r=n(13),o=Object.prototype,i=o.hasOwnProperty,a=o.toString,s=r?r.toStringTag:void 0;t.exports=function(t){var e=i.call(t,s),n=t[s];try{t[s]=void 0;var r=!0}catch(t){}var o=a.call(t);return r&&(e?t[s]=n:delete t[s]),o}},function(t,e){var n=Object.prototype.toString;t.exports=function(t){return n.call(t)}},function(t,e,n){var r=n(147),o=n(203),i=n(44),a=n(4),s=n(213);t.exports=function(t){return"function"==typeof t?t:null==t?i:"object"==typeof t?a(t)?o(t[0],t[1]):r(t):s(t)}},function(t,e,n){var r=n(148),o=n(202),i=n(83);t.exports=function(t){var e=o(t);return 1==e.length&&e[0][2]?i(e[0][0],e[0][1]):function(n){return n===t||r(n,t,e)}}},function(t,e,n){var r=n(67),o=n(71);t.exports=function(t,e,n,i){var a=n.length,s=a,u=!i;if(null==t)return!s;for(t=Object(t);a--;){var c=n[a];if(u&&c[2]?c[1]!==t[c[0]]:!(c[0]in t))return!1}for(;++a-1}},function(t,e,n){var r=n(19);t.exports=function(t,e){var n=this.__data__,o=r(n,t);return o<0?(++this.size,n.push([t,e])):n[o][1]=e,this}},function(t,e,n){var r=n(18);t.exports=function(){this.__data__=new r,this.size=0}},function(t,e){t.exports=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}},function(t,e){t.exports=function(t){return this.__data__.get(t)}},function(t,e){t.exports=function(t){return this.__data__.has(t)}},function(t,e,n){var r=n(18),o=n(37),i=n(39);t.exports=function(t,e){var n=this.__data__;if(n instanceof r){var a=n.__data__;if(!o||a.length<199)return a.push([t,e]),this.size=++n.size,this;n=this.__data__=new i(a)}return n.set(t,e),this.size=n.size,this}},function(t,e,n){var r=n(69),o=n(160),i=n(38),a=n(70),s=/^\[object .+?Constructor\]$/,u=Function.prototype,c=Object.prototype,l=u.toString,f=c.hasOwnProperty,p=RegExp("^"+l.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(t){return!(!i(t)||o(t))&&(r(t)?p:s).test(a(t))}},function(t,e,n){var r,o=n(161),i=(r=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";t.exports=function(t){return!!i&&i in t}},function(t,e,n){var r=n(6)["__core-js_shared__"];t.exports=r},function(t,e){t.exports=function(t,e){return null==t?void 0:t[e]}},function(t,e,n){var r=n(164),o=n(18),i=n(37);t.exports=function(){this.size=0,this.__data__={hash:new r,map:new(i||o),string:new r}}},function(t,e,n){var r=n(165),o=n(166),i=n(167),a=n(168),s=n(169);function u(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}},function(t,e,n){var r=n(73),o=n(225),i=n(230),a=n(74),s=n(231),u=n(40);t.exports=function(t,e,n){var c=-1,l=o,f=t.length,p=!0,d=[],h=d;if(n)p=!1,l=i;else if(f>=200){var v=e?null:s(t);if(v)return u(v);p=!1,l=a,h=new r}else h=e?[]:d;t:for(;++c-1}},function(t,e,n){var r=n(227),o=n(228),i=n(229);t.exports=function(t,e,n){return e==e?i(t,e,n):r(t,o,n)}},function(t,e){t.exports=function(t,e,n,r){for(var o=t.length,i=n+(r?1:-1);r?i--:++i]/;t.exports=function(t){var e,n=""+t,o=r.exec(n);if(!o)return n;var i="",a=0,s=0;for(a=o.index;a79&&a<83},{reduce:function(t){var e=arguments.length;return o(this,t,e,e>1?arguments[1]:void 0)}})},function(t,e,n){"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},function(t,e,n){var r=n(26),o=n(9),i=n(51),a=n(100),s=n(102),u=n(30),c=TypeError,l=u("toPrimitive");t.exports=function(t,e){if(!o(t)||i(t))return t;var n,u=a(t,l);if(u){if(void 0===e&&(e="default"),n=r(u,t,e),!o(n)||i(n))return n;throw c("Can't convert object to primitive value")}return void 0===e&&(e="number"),s(t,e)}},function(t,e,n){var r=n(15);t.exports=r("navigator","userAgent")||""},function(t,e,n){var r=n(56),o=n(48);t.exports=function(t,e){var n=t[e];return o(n)?void 0:r(n)}},function(t,e){var n=String;t.exports=function(t){try{return n(t)}catch(t){return"Object"}}},function(t,e,n){var r=n(26),o=n(0),i=n(9),a=TypeError;t.exports=function(t,e){var n,s;if("string"===e&&o(n=t.toString)&&!i(s=r(n,t)))return s;if(o(n=t.valueOf)&&!i(s=r(n,t)))return s;if("string"!==e&&o(n=t.toString)&&!i(s=r(n,t)))return s;throw a("Can't convert object to primitive value")}},function(t,e,n){var r=n(1),o=n(9),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},function(t,e,n){var r=n(5),o=n(2);t.exports=r&&o((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},function(t,e,n){var r=n(0),o=n(17),i=n(106),a=n(32);t.exports=function(t,e,n,s){s||(s={});var u=s.enumerable,c=void 0!==s.name?s.name:e;if(r(n)&&i(n,c,s),s.global)u?t[e]=n:a(e,n);else{try{s.unsafe?t[e]&&(u=!0):delete t[e]}catch(t){}u?t[e]=n:o.f(t,e,{value:n,enumerable:!1,configurable:!s.nonConfigurable,writable:!s.nonWritable})}return t}},function(t,e,n){var r=n(2),o=n(0),i=n(8),a=n(5),s=n(107).CONFIGURABLE,u=n(108),c=n(109),l=c.enforce,f=c.get,p=Object.defineProperty,d=a&&!r((function(){return 8!==p((function(){}),"length",{value:8}).length})),h=String(String).split("String"),v=t.exports=function(t,e,n){"Symbol("===String(e).slice(0,7)&&(e="["+String(e).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!i(t,"name")||s&&t.name!==e)&&(a?p(t,"name",{value:e,configurable:!0}):t.name=e),d&&n&&i(n,"arity")&&t.length!==n.arity&&p(t,"length",{value:n.arity});try{n&&i(n,"constructor")&&n.constructor?a&&p(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var r=l(t);return i(r,"source")||(r.source=h.join("string"==typeof e?e:"")),t};Function.prototype.toString=v((function(){return o(this)&&f(this).source||u(this)}),"toString")},function(t,e,n){var r=n(5),o=n(8),i=Function.prototype,a=r&&Object.getOwnPropertyDescriptor,s=o(i,"name"),u=s&&"something"===function(){}.name,c=s&&(!r||r&&a(i,"name").configurable);t.exports={EXISTS:s,PROPER:u,CONFIGURABLE:c}},function(t,e,n){var r=n(3),o=n(0),i=n(31),a=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(t){return a(t)}),t.exports=i.inspectSource},function(t,e,n){var r,o,i,a=n(110),s=n(1),u=n(9),c=n(16),l=n(8),f=n(31),p=n(111),d=n(61),h=s.TypeError,v=s.WeakMap;if(a||f.state){var m=f.state||(f.state=new v);m.get=m.get,m.has=m.has,m.set=m.set,r=function(t,e){if(m.has(t))throw h("Object already initialized");return e.facade=t,m.set(t,e),e},o=function(t){return m.get(t)||{}},i=function(t){return m.has(t)}}else{var g=p("state");d[g]=!0,r=function(t,e){if(l(t,g))throw h("Object already initialized");return e.facade=t,c(t,g,e),e},o=function(t){return l(t,g)?t[g]:{}},i=function(t){return l(t,g)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw h("Incompatible receiver, "+t+" required");return n}}}},function(t,e,n){var r=n(1),o=n(0),i=r.WeakMap;t.exports=o(i)&&/native code/.test(String(i))},function(t,e,n){var r=n(57),o=n(59),i=r("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},function(t,e,n){var r=n(15),o=n(3),i=n(113),a=n(120),s=n(34),u=o([].concat);t.exports=r("Reflect","ownKeys")||function(t){var e=i.f(s(t)),n=a.f;return n?u(e,n(t)):e}},function(t,e,n){var r=n(114),o=n(119).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},function(t,e,n){var r=n(3),o=n(8),i=n(29),a=n(115).indexOf,s=n(61),u=r([].push);t.exports=function(t,e){var n,r=i(t),c=0,l=[];for(n in r)!o(s,n)&&o(r,n)&&u(l,n);for(;e.length>c;)o(r,n=e[c++])&&(~a(l,n)||u(l,n));return l}},function(t,e,n){var r=n(29),o=n(116),i=n(35),a=function(t){return function(e,n,a){var s,u=r(e),c=i(u),l=o(a,c);if(t&&n!=n){for(;c>l;)if((s=u[l++])!=s)return!0}else for(;c>l;l++)if((t||l in u)&&u[l]===n)return t||l||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},function(t,e,n){var r=n(63),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=Math.trunc||function(t){var e=+t;return(e>0?r:n)(e)}},function(t,e,n){var r=n(63),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var r=n(2),o=n(0),i=/#|\.prototype\./,a=function(t,e){var n=u[s(t)];return n==l||n!=c&&(o(e)?r(e):!!e)},s=a.normalize=function(t){return String(t).replace(i,".").toLowerCase()},u=a.data={},c=a.NATIVE="N",l=a.POLYFILL="P";t.exports=a},function(t,e,n){var r=n(56),o=n(33),i=n(46),a=n(35),s=TypeError,u=function(t){return function(e,n,u,c){r(n);var l=o(e),f=i(l),p=a(l),d=t?p-1:0,h=t?-1:1;if(u<2)for(;;){if(d in f){c=f[d],d+=h;break}if(d+=h,t?d<0:p<=d)throw s("Reduce of empty array with no initial value")}for(;t?d>=0:p>d;d+=h)d in f&&(c=n(c,f[d],d,l));return c}};t.exports={left:u(!1),right:u(!0)}},function(t,e,n){"use strict";var r=n(2);t.exports=function(t,e){var n=[][t];return!!n&&r((function(){n.call(null,e||function(){return 1},1)}))}},function(t,e,n){var r=n(14),o=n(1);t.exports="process"==r(o.process)},function(t,e,n){"use strict";var r=n(5),o=n(126),i=TypeError,a=Object.getOwnPropertyDescriptor,s=r&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}();t.exports=s?function(t,e){if(o(t)&&!a(t,"length").writable)throw i("Cannot set read only .length");return t.length=e}:function(t,e){return t.length=e}},function(t,e,n){var r=n(14);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e){var n=TypeError;t.exports=function(t){if(t>9007199254740991)throw n("Maximum allowed index exceeded");return t}},function(t,e,n){var r=n(25),o=n(1),i=n(129),a=n(130),s=o.WebAssembly,u=7!==Error("e",{cause:7}).cause,c=function(t,e){var n={};n[t]=a(t,e,u),r({global:!0,constructor:!0,arity:1,forced:u},n)},l=function(t,e){if(s&&s[t]){var n={};n[t]=a("WebAssembly."+t,e,u),r({target:"WebAssembly",stat:!0,constructor:!0,arity:1,forced:u},n)}};c("Error",(function(t){return function(e){return i(t,this,arguments)}})),c("EvalError",(function(t){return function(e){return i(t,this,arguments)}})),c("RangeError",(function(t){return function(e){return i(t,this,arguments)}})),c("ReferenceError",(function(t){return function(e){return i(t,this,arguments)}})),c("SyntaxError",(function(t){return function(e){return i(t,this,arguments)}})),c("TypeError",(function(t){return function(e){return i(t,this,arguments)}})),c("URIError",(function(t){return function(e){return i(t,this,arguments)}})),l("CompileError",(function(t){return function(e){return i(t,this,arguments)}})),l("LinkError",(function(t){return function(e){return i(t,this,arguments)}})),l("RuntimeError",(function(t){return function(e){return i(t,this,arguments)}}))},function(t,e,n){var r=n(27),o=Function.prototype,i=o.apply,a=o.call;t.exports="object"==typeof Reflect&&Reflect.apply||(r?a.bind(i):function(){return a.apply(i,arguments)})},function(t,e,n){"use strict";var r=n(15),o=n(8),i=n(16),a=n(52),s=n(64),u=n(62),c=n(132),l=n(133),f=n(134),p=n(138),d=n(139),h=n(140),v=n(5),m=n(58);t.exports=function(t,e,n,g){var y=g?2:1,b=t.split("."),_=b[b.length-1],x=r.apply(null,b);if(x){var w=x.prototype;if(!m&&o(w,"cause")&&delete w.cause,!n)return x;var k=r("Error"),C=e((function(t,e){var n=f(g?e:t,void 0),r=g?new x(t):new x;return void 0!==n&&i(r,"message",n),h&&i(r,"stack",d(r.stack,2)),this&&a(w,this)&&l(r,this,C),arguments.length>y&&p(r,arguments[y]),r}));if(C.prototype=w,"Error"!==_?s?s(C,k):u(C,k,{name:!0}):v&&"stackTraceLimit"in x&&(c(C,x,"stackTraceLimit"),c(C,x,"prepareStackTrace")),u(C,x),!m)try{w.name!==_&&i(w,"name",_),w.constructor=C}catch(t){}return C}}},function(t,e,n){var r=n(0),o=String,i=TypeError;t.exports=function(t){if("object"==typeof t||r(t))return t;throw i("Can't set "+o(t)+" as a prototype")}},function(t,e,n){var r=n(17).f;t.exports=function(t,e,n){n in t||r(t,n,{configurable:!0,get:function(){return e[n]},set:function(t){e[n]=t}})}},function(t,e,n){var r=n(0),o=n(9),i=n(64);t.exports=function(t,e,n){var a,s;return i&&r(a=e.constructor)&&a!==n&&o(s=a.prototype)&&s!==n.prototype&&i(t,s),t}},function(t,e,n){var r=n(135);t.exports=function(t,e){return void 0===t?arguments.length<2?"":e:r(t)}},function(t,e,n){var r=n(136),o=String;t.exports=function(t){if("Symbol"===r(t))throw TypeError("Cannot convert a Symbol value to a string");return o(t)}},function(t,e,n){var r=n(137),o=n(0),i=n(14),a=n(30)("toStringTag"),s=Object,u="Arguments"==i(function(){return arguments}());t.exports=r?i:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=s(t),a))?n:u?i(e):"Object"==(r=i(e))&&o(e.callee)?"Arguments":r}},function(t,e,n){var r={};r[n(30)("toStringTag")]="z",t.exports="[object z]"===String(r)},function(t,e,n){var r=n(9),o=n(16);t.exports=function(t,e){r(e)&&"cause"in e&&o(t,"cause",e.cause)}},function(t,e,n){var r=n(3),o=Error,i=r("".replace),a=String(o("zxcasd").stack),s=/\n\s*at [^:]*:[^\n]*/,u=s.test(a);t.exports=function(t,e){if(u&&"string"==typeof t&&!o.prepareStackTrace)for(;e--;)t=i(t,s,"");return t}},function(t,e,n){var r=n(2),o=n(28);t.exports=!r((function(){var t=Error("a");return!("stack"in t)||(Object.defineProperty(t,"stack",o(1,7)),7!==t.stack)}))},function(t,e,n){var r=n(65),o=n(142);t.exports=function t(e,n,i,a,s){var u=-1,c=e.length;for(i||(i=o),s||(s=[]);++u0&&i(l)?n>1?t(l,n-1,i,a,s):r(s,l):a||(s[s.length]=l)}return s}},function(t,e,n){var r=n(13),o=n(36),i=n(4),a=r?r.isConcatSpreadable:void 0;t.exports=function(t){return i(t)||o(t)||!!(a&&t&&t[a])}},function(t,e,n){var r=n(12),o=n(11);t.exports=function(t){return o(t)&&"[object Arguments]"==r(t)}},function(t,e,n){var r=n(13),o=Object.prototype,i=o.hasOwnProperty,a=o.toString,s=r?r.toStringTag:void 0;t.exports=function(t){var e=i.call(t,s),n=t[s];try{t[s]=void 0;var r=!0}catch(t){}var o=a.call(t);return r&&(e?t[s]=n:delete t[s]),o}},function(t,e){var n=Object.prototype.toString;t.exports=function(t){return n.call(t)}},function(t,e,n){var r=n(147),o=n(203),i=n(44),a=n(4),s=n(213);t.exports=function(t){return"function"==typeof t?t:null==t?i:"object"==typeof t?a(t)?o(t[0],t[1]):r(t):s(t)}},function(t,e,n){var r=n(148),o=n(202),i=n(83);t.exports=function(t){var e=o(t);return 1==e.length&&e[0][2]?i(e[0][0],e[0][1]):function(n){return n===t||r(n,t,e)}}},function(t,e,n){var r=n(67),o=n(71);t.exports=function(t,e,n,i){var a=n.length,s=a,u=!i;if(null==t)return!s;for(t=Object(t);a--;){var c=n[a];if(u&&c[2]?c[1]!==t[c[0]]:!(c[0]in t))return!1}for(;++a-1}},function(t,e,n){var r=n(19);t.exports=function(t,e){var n=this.__data__,o=r(n,t);return o<0?(++this.size,n.push([t,e])):n[o][1]=e,this}},function(t,e,n){var r=n(18);t.exports=function(){this.__data__=new r,this.size=0}},function(t,e){t.exports=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}},function(t,e){t.exports=function(t){return this.__data__.get(t)}},function(t,e){t.exports=function(t){return this.__data__.has(t)}},function(t,e,n){var r=n(18),o=n(37),i=n(39);t.exports=function(t,e){var n=this.__data__;if(n instanceof r){var a=n.__data__;if(!o||a.length<199)return a.push([t,e]),this.size=++n.size,this;n=this.__data__=new i(a)}return n.set(t,e),this.size=n.size,this}},function(t,e,n){var r=n(69),o=n(160),i=n(38),a=n(70),s=/^\[object .+?Constructor\]$/,u=Function.prototype,c=Object.prototype,l=u.toString,f=c.hasOwnProperty,p=RegExp("^"+l.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(t){return!(!i(t)||o(t))&&(r(t)?p:s).test(a(t))}},function(t,e,n){var r,o=n(161),i=(r=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";t.exports=function(t){return!!i&&i in t}},function(t,e,n){var r=n(6)["__core-js_shared__"];t.exports=r},function(t,e){t.exports=function(t,e){return null==t?void 0:t[e]}},function(t,e,n){var r=n(164),o=n(18),i=n(37);t.exports=function(){this.size=0,this.__data__={hash:new r,map:new(i||o),string:new r}}},function(t,e,n){var r=n(165),o=n(166),i=n(167),a=n(168),s=n(169);function u(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}},function(t,e,n){var r=n(73),o=n(225),i=n(230),a=n(74),s=n(231),u=n(40);t.exports=function(t,e,n){var c=-1,l=o,f=t.length,p=!0,d=[],h=d;if(n)p=!1,l=i;else if(f>=200){var v=e?null:s(t);if(v)return u(v);p=!1,l=a,h=new r}else h=e?[]:d;t:for(;++c-1}},function(t,e,n){var r=n(227),o=n(228),i=n(229);t.exports=function(t,e,n){return e==e?i(t,e,n):r(t,o,n)}},function(t,e){t.exports=function(t,e,n,r){for(var o=t.length,i=n+(r?1:-1);r?i--:++i=0&&Math.floor(e)===e&&isFinite(t)}function v(t){return a(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function m(t){return null==t?"":Array.isArray(t)||p(t)&&t.toString===f?JSON.stringify(t,null,2):String(t)}function g(t){var e=parseFloat(t);return isNaN(e)?t:e}function y(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o-1)return t.splice(r,1)}}var x=Object.prototype.hasOwnProperty;function w(t,e){return x.call(t,e)}function C(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var k=/-(\w)/g,O=C((function(t){return t.replace(k,(function(t,e){return e?e.toUpperCase():""}))})),$=C((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),j=/\B([A-Z])/g,S=C((function(t){return t.replace(j,"-$1").toLowerCase()}));var T=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function E(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function P(t,e){for(var n in e)t[n]=e[n];return t}function A(t){for(var e={},n=0;n0,Y=X&&X.indexOf("edge/")>0;X&&X.indexOf("android");var Z=X&&/iphone|ipad|ipod|ios/.test(X);X&&/chrome\/\d+/.test(X),X&&/phantomjs/.test(X);var tt,et=X&&X.match(/firefox\/(\d+)/),nt={}.watch,rt=!1;if(G)try{var ot={};Object.defineProperty(ot,"passive",{get:function(){rt=!0}}),window.addEventListener("test-passive",null,ot)}catch(t){}var it=function(){return void 0===tt&&(tt=!G&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),tt},at=G&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function st(t){return"function"==typeof t&&/native code/.test(t.toString())}var ut,ct="undefined"!=typeof Symbol&&st(Symbol)&&"undefined"!=typeof Reflect&&st(Reflect.ownKeys);ut="undefined"!=typeof Set&&st(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var lt=null;function ft(t){void 0===t&&(t=null),t||lt&<._scope.off(),lt=t,t&&t._scope.on()}var pt=function(){function t(t,e,n,r,o,i,a,s){this.tag=t,this.data=e,this.children=n,this.text=r,this.elm=o,this.ns=void 0,this.context=i,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=e&&e.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1}return Object.defineProperty(t.prototype,"child",{get:function(){return this.componentInstance},enumerable:!1,configurable:!0}),t}(),dt=function(t){void 0===t&&(t="");var e=new pt;return e.text=t,e.isComment=!0,e};function ht(t){return new pt(void 0,void 0,void 0,String(t))}function vt(t){var e=new pt(t.tag,t.data,t.children&&t.children.slice(),t.text,t.elm,t.context,t.componentOptions,t.asyncFactory);return e.ns=t.ns,e.isStatic=t.isStatic,e.key=t.key,e.isComment=t.isComment,e.fnContext=t.fnContext,e.fnOptions=t.fnOptions,e.fnScopeId=t.fnScopeId,e.asyncMeta=t.asyncMeta,e.isCloned=!0,e}var mt=0,gt=[],yt=function(){function t(){this._pending=!1,this.id=mt++,this.subs=[]}return t.prototype.addSub=function(t){this.subs.push(t)},t.prototype.removeSub=function(t){this.subs[this.subs.indexOf(t)]=null,this._pending||(this._pending=!0,gt.push(this))},t.prototype.depend=function(e){t.target&&t.target.addDep(this)},t.prototype.notify=function(t){var e=this.subs.filter((function(t){return t}));for(var n=0,r=e.length;n0&&(Xt((c=t(c,"".concat(n||"","_").concat(r)))[0])&&Xt(f)&&(p[l]=ht(f.text+c[0].text),c.shift()),p.push.apply(p,c)):u(c)?Xt(f)?p[l]=ht(f.text+c):""!==c&&p.push(ht(c)):Xt(c)&&Xt(f)?p[l]=ht(f.text+c.text):(s(e._isVList)&&a(c.tag)&&i(c.key)&&a(n)&&(c.key="__vlist".concat(n,"_").concat(r,"__")),p.push(c)));return p}(t):void 0}function Xt(t){return a(t)&&a(t.text)&&!1===t.isComment}function Jt(t,e){var n,r,i,s,u=null;if(o(t)||"string"==typeof t)for(u=new Array(t.length),n=0,r=t.length;n0,s=e?!!e.$stable:!a,u=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(s&&o&&o!==r&&u===o.$key&&!a&&!o.$hasNormal)return o;for(var c in i={},e)e[c]&&"$"!==c[0]&&(i[c]=ve(t,n,c,e[c]))}else i={};for(var l in n)l in i||(i[l]=me(n,l));return e&&Object.isExtensible(e)&&(e._normalized=i),H(i,"$stable",s),H(i,"$key",u),H(i,"$hasNormal",a),i}function ve(t,e,n,r){var i=function(){var e=lt;ft(t);var n=arguments.length?r.apply(null,arguments):r({}),i=(n=n&&"object"==typeof n&&!o(n)?[n]:Gt(n))&&n[0];return ft(e),n&&(!i||1===n.length&&i.isComment&&!de(i))?void 0:n};return r.proxy&&Object.defineProperty(e,n,{get:i,enumerable:!0,configurable:!0}),i}function me(t,e){return function(){return t[e]}}function ge(t){return{get attrs(){if(!t._attrsProxy){var e=t._attrsProxy={};H(e,"_v_attr_proxy",!0),ye(e,t.$attrs,r,t,"$attrs")}return t._attrsProxy},get listeners(){t._listenersProxy||ye(t._listenersProxy={},t.$listeners,r,t,"$listeners");return t._listenersProxy},get slots(){return function(t){t._slotsProxy||_e(t._slotsProxy={},t.$scopedSlots);return t._slotsProxy}(t)},emit:T(t.$emit,t),expose:function(e){e&&Object.keys(e).forEach((function(n){return Nt(t,e,n)}))}}}function ye(t,e,n,r,o){var i=!1;for(var a in e)a in t?e[a]!==n[a]&&(i=!0):(i=!0,be(t,a,r,o));for(var a in t)a in e||(i=!0,delete t[a]);return i}function be(t,e,n,r){Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){return n[r][e]}})}function _e(t,e){for(var n in e)t[n]=e[n];for(var n in t)n in e||delete t[n]}var xe=null;function we(t,e){return(t.__esModule||ct&&"Module"===t[Symbol.toStringTag])&&(t=t.default),l(t)?e.extend(t):t}function Ce(t){if(o(t))for(var e=0;edocument.createEvent("Event").timeStamp&&(un=function(){return cn.now()})}var ln=function(t,e){if(t.post){if(!e.post)return 1}else if(e.post)return-1;return t.id-e.id};function fn(){var t,e;for(sn=un(),on=!0,tn.sort(ln),an=0;anan&&tn[n].id>t.id;)n--;tn.splice(n+1,0,t)}else tn.push(t);rn||(rn=!0,De(fn))}}function dn(t,e){if(t){for(var n=Object.create(null),r=ct?Reflect.ownKeys(t):Object.keys(t),o=0;o-1)if(i&&!w(o,"default"))a=!1;else if(""===a||a===S(t)){var u=Rn(String,o.type);(u<0||s-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!d(t)&&t.test(e)}function Jn(t,e){var n=t.cache,r=t.keys,o=t._vnode;for(var i in n){var a=n[i];if(a){var s=a.name;s&&!e(s)&&Qn(n,i,r,o)}}}function Qn(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,_(n,e)}Wn.prototype._init=function(t){var e=this;e._uid=Vn++,e._isVue=!0,e.__v_skip=!0,e._scope=new Bt(!0),e._scope._vm=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=Tn(Hn(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._provided=n?n._provided:Object.create(null),t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&Ge(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,o=n&&n.context;t.$slots=fe(e._renderChildren,o),t.$scopedSlots=n?he(t.$parent,n.data.scopedSlots,t.$slots):r,t._c=function(e,n,r,o){return ke(t,e,n,r,o,!1)},t.$createElement=function(e,n,r,o){return ke(t,e,n,r,o,!0)};var i=n&&n.data;Pt(t,"$attrs",i&&i.attrs||r,null,!0),Pt(t,"$listeners",e._parentListeners||r,null,!0)}(e),Ze(e,"beforeCreate",void 0,!1),function(t){var e=dn(t.$options.inject,t);e&&(jt(!1),Object.keys(e).forEach((function(n){Pt(t,n,e[n])})),jt(!0))}(e),Dn(e),function(t){var e=t.$options.provide;if(e){var n=c(e)?e.call(t):e;if(!l(n))return;for(var r=zt(t),o=ct?Reflect.ownKeys(n):Object.keys(n),i=0;i1?E(n):n;for(var r=E(arguments,1),o='event handler for "'.concat(t,'"'),i=0,a=n.length;iparseInt(this.max)&&Qn(t,e[0],e,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)Qn(this.cache,t,this.keys)},mounted:function(){var t=this;this.cacheVNode(),this.$watch("include",(function(e){Jn(t,(function(t){return Xn(e,t)}))})),this.$watch("exclude",(function(e){Jn(t,(function(t){return!Xn(e,t)}))}))},updated:function(){this.cacheVNode()},render:function(){var t=this.$slots.default,e=Ce(t),n=e&&e.componentOptions;if(n){var r=Gn(n),o=this.include,i=this.exclude;if(o&&(!r||!Xn(o,r))||i&&r&&Xn(i,r))return e;var a=this.cache,s=this.keys,u=null==e.key?n.Ctor.cid+(n.tag?"::".concat(n.tag):""):e.key;a[u]?(e.componentInstance=a[u].componentInstance,_(s,u),s.push(u)):(this.vnodeToCache=e,this.keyToCache=u),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return z}};Object.defineProperty(t,"config",e),t.util={warn:wn,extend:P,mergeOptions:Tn,defineReactive:Pt},t.set=At,t.delete=Lt,t.nextTick=De,t.observable=function(t){return Et(t),t},t.options=Object.create(null),F.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,P(t.options.components,Zn),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=E(arguments,1);return n.unshift(this),c(t.install)?t.install.apply(t,n):c(t)&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Tn(this.options,t),this}}(t),Kn(t),function(t){F.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&p(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&c(n)&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}(t)}(Wn),Object.defineProperty(Wn.prototype,"$isServer",{get:it}),Object.defineProperty(Wn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Wn,"FunctionalRenderContext",{value:hn}),Wn.version="2.7.14";var tr=y("style,class"),er=y("input,textarea,option,select,progress"),nr=y("contenteditable,draggable,spellcheck"),rr=y("events,caret,typing,plaintext-only"),or=y("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),ir="http://www.w3.org/1999/xlink",ar=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},sr=function(t){return ar(t)?t.slice(6,t.length):""},ur=function(t){return null==t||!1===t};function cr(t){for(var e=t.data,n=t,r=t;a(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=lr(r.data,e));for(;a(n=n.parent);)n&&n.data&&(e=lr(e,n.data));return function(t,e){if(a(t)||a(e))return fr(t,pr(e));return""}(e.staticClass,e.class)}function lr(t,e){return{staticClass:fr(t.staticClass,e.staticClass),class:a(t.class)?[t.class,e.class]:e.class}}function fr(t,e){return t?e?t+" "+e:t:e||""}function pr(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,o=t.length;r-1?Ir(t,e,n):or(e)?ur(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):nr(e)?t.setAttribute(e,function(t,e){return ur(e)||"false"===e?"false":"contenteditable"===t&&rr(e)?e:"true"}(e,n)):ar(e)?ur(n)?t.removeAttributeNS(ir,sr(e)):t.setAttributeNS(ir,e,n):Ir(t,e,n)}function Ir(t,e,n){if(ur(n))t.removeAttribute(e);else{if(J&&!Q&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var Ur={create:Mr,update:Mr};function Dr(t,e){var n=e.elm,r=e.data,o=t.data;if(!(i(r.staticClass)&&i(r.class)&&(i(o)||i(o.staticClass)&&i(o.class)))){var s=cr(e),u=n._transitionClasses;a(u)&&(s=fr(s,pr(u))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var Nr,Fr={create:Dr,update:Dr};function Br(t,e,n){var r=Nr;return function o(){var i=e.apply(null,arguments);null!==i&&Vr(t,o,n,r)}}var zr=Ee&&!(et&&Number(et[1])<=53);function qr(t,e,n,r){if(zr){var o=sn,i=e;e=i._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=o||t.timeStamp<=0||t.target.ownerDocument!==document)return i.apply(this,arguments)}}Nr.addEventListener(t,e,rt?{capture:n,passive:r}:n)}function Vr(t,e,n,r){(r||Nr).removeEventListener(t,e._wrapper||e,n)}function Hr(t,e){if(!i(t.data.on)||!i(e.data.on)){var n=e.data.on||{},r=t.data.on||{};Nr=e.elm||t.elm,function(t){if(a(t.__r)){var e=J?"change":"input";t[e]=[].concat(t.__r,t[e]||[]),delete t.__r}a(t.__c)&&(t.change=[].concat(t.__c,t.change||[]),delete t.__c)}(n),Ht(n,r,qr,Vr,Br,e.context),Nr=void 0}}var Wr,Kr={create:Hr,update:Hr,destroy:function(t){return Hr(t,Cr)}};function Gr(t,e){if(!i(t.data.domProps)||!i(e.data.domProps)){var n,r,o=e.elm,u=t.data.domProps||{},c=e.data.domProps||{};for(n in(a(c.__ob__)||s(c._v_attr_proxy))&&(c=e.data.domProps=P({},c)),u)n in c||(o[n]="");for(n in c){if(r=c[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===u[n])continue;1===o.childNodes.length&&o.removeChild(o.childNodes[0])}if("value"===n&&"PROGRESS"!==o.tagName){o._value=r;var l=i(r)?"":String(r);Xr(o,l)&&(o.value=l)}else if("innerHTML"===n&&vr(o.tagName)&&i(o.innerHTML)){(Wr=Wr||document.createElement("div")).innerHTML="".concat(r,"");for(var f=Wr.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;f.firstChild;)o.appendChild(f.firstChild)}else if(r!==u[n])try{o[n]=r}catch(t){}}}}function Xr(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,r=t._vModifiers;if(a(r)){if(r.number)return g(n)!==g(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var Jr={create:Gr,update:Gr},Qr=C((function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach((function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}})),e}));function Yr(t){var e=Zr(t.style);return t.staticStyle?P(t.staticStyle,e):e}function Zr(t){return Array.isArray(t)?A(t):"string"==typeof t?Qr(t):t}var to,eo=/^--/,no=/\s*!important$/,ro=function(t,e,n){if(eo.test(e))t.style.setProperty(e,n);else if(no.test(n))t.style.setProperty(S(e),n.replace(no,""),"important");else{var r=io(e);if(Array.isArray(n))for(var o=0,i=n.length;o-1?e.split(uo).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var n=" ".concat(t.getAttribute("class")||""," ");n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function lo(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(uo).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" ".concat(t.getAttribute("class")||""," "),r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function fo(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&P(e,po(t.name||"v")),P(e,t),e}return"string"==typeof t?po(t):void 0}}var po=C((function(t){return{enterClass:"".concat(t,"-enter"),enterToClass:"".concat(t,"-enter-to"),enterActiveClass:"".concat(t,"-enter-active"),leaveClass:"".concat(t,"-leave"),leaveToClass:"".concat(t,"-leave-to"),leaveActiveClass:"".concat(t,"-leave-active")}})),ho=G&&!Q,vo="transition",mo="transitionend",go="animation",yo="animationend";ho&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(vo="WebkitTransition",mo="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(go="WebkitAnimation",yo="webkitAnimationEnd"));var bo=G?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function _o(t){bo((function(){bo(t)}))}function xo(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),co(t,e))}function wo(t,e){t._transitionClasses&&_(t._transitionClasses,e),lo(t,e)}function Co(t,e,n){var r=Oo(t,e),o=r.type,i=r.timeout,a=r.propCount;if(!o)return n();var s="transition"===o?mo:yo,u=0,c=function(){t.removeEventListener(s,l),n()},l=function(e){e.target===t&&++u>=a&&c()};setTimeout((function(){u0&&(n="transition",l=a,f=i.length):"animation"===e?c>0&&(n="animation",l=c,f=u.length):f=(n=(l=Math.max(a,c))>0?a>c?"transition":"animation":null)?"transition"===n?i.length:u.length:0,{type:n,timeout:l,propCount:f,hasTransform:"transition"===n&&ko.test(r[vo+"Property"])}}function $o(t,e){for(;t.length1}function Ao(t,e){!0!==e.data.show&&So(e)}var Lo=function(t){var e,n,r={},c=t.modules,l=t.nodeOps;for(e=0;eh?_(t,i(n[g+1])?null:n[g+1].elm,n,d,g,r):d>g&&w(e,f,h)}(f,v,g,n,c):a(g)?(a(t.text)&&l.setTextContent(f,""),_(f,null,g,0,g.length-1,n)):a(v)?w(v,0,v.length-1):a(t.text)&&l.setTextContent(f,""):t.text!==e.text&&l.setTextContent(f,e.text),a(h)&&a(d=h.hook)&&a(d=d.postpatch)&&d(t,e)}}}function $(t,e,n){if(s(n)&&a(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r-1,a.selected!==i&&(a.selected=i);else if(I(Do(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));o||(t.selectedIndex=-1)}}function Uo(t,e){return e.every((function(e){return!I(e,t)}))}function Do(t){return"_value"in t?t._value:t.value}function No(t){t.target.composing=!0}function Fo(t){t.target.composing&&(t.target.composing=!1,Bo(t.target,"input"))}function Bo(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function zo(t){return!t.componentInstance||t.data&&t.data.transition?t:zo(t.componentInstance._vnode)}var qo={model:Mo,show:{bind:function(t,e,n){var r=e.value,o=(n=zo(n)).data&&n.data.transition,i=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&o?(n.data.show=!0,So(n,(function(){t.style.display=i}))):t.style.display=r?i:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=zo(n)).data&&n.data.transition?(n.data.show=!0,r?So(n,(function(){t.style.display=t.__vOriginalDisplay})):To(n,(function(){t.style.display="none"}))):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,o){o||(t.style.display=t.__vOriginalDisplay)}}},Vo={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Ho(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Ho(Ce(e.children)):t}function Wo(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var o=n._parentListeners;for(var r in o)e[O(r)]=o[r];return e}function Ko(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var Go=function(t){return t.tag||de(t)},Xo=function(t){return"show"===t.name},Jo={name:"transition",props:Vo,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(Go)).length){0;var r=this.mode;0;var o=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return o;var i=Ho(o);if(!i)return o;if(this._leaving)return Ko(t,o);var a="__transition-".concat(this._uid,"-");i.key=null==i.key?i.isComment?a+"comment":a+i.tag:u(i.key)?0===String(i.key).indexOf(a)?i.key:a+i.key:i.key;var s=(i.data||(i.data={})).transition=Wo(this),c=this._vnode,l=Ho(c);if(i.data.directives&&i.data.directives.some(Xo)&&(i.data.show=!0),l&&l.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(i,l)&&!de(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var f=l.data.transition=P({},s);if("out-in"===r)return this._leaving=!0,Wt(f,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),Ko(t,o);if("in-out"===r){if(de(i))return c;var p,d=function(){p()};Wt(s,"afterEnter",d),Wt(s,"enterCancelled",d),Wt(f,"delayLeave",(function(t){p=t}))}}return o}}},Qo=P({tag:String,moveClass:String},Vo);function Yo(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function Zo(t){t.data.newPos=t.elm.getBoundingClientRect()}function ti(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,o=e.top-n.top;if(r||o){t.data.moved=!0;var i=t.elm.style;i.transform=i.WebkitTransform="translate(".concat(r,"px,").concat(o,"px)"),i.transitionDuration="0s"}}delete Qo.mode;var ei={Transition:Jo,TransitionGroup:{props:Qo,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var o=Je(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,o(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],i=this.children=[],a=Wo(this),s=0;s-1?gr[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:gr[t]=/HTMLUnknownElement/.test(e.toString())},P(Wn.options.directives,qo),P(Wn.options.components,ei),Wn.prototype.__patch__=G?Lo:L,Wn.prototype.$mount=function(t,e){return function(t,e,n){var r;t.$el=e,t.$options.render||(t.$options.render=dt),Ze(t,"beforeMount"),r=function(){t._update(t._render(),n)},new Ve(t,r,L,{before:function(){t._isMounted&&!t._isDestroyed&&Ze(t,"beforeUpdate")}},!0),n=!1;var o=t._preWatchers;if(o)for(var i=0;i=0&&(e=t.slice(r),t=t.slice(0,r));var o=t.indexOf("?");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{path:t,query:n,hash:e}}(o.path||""),c=e&&e.path||"/",l=u.path?wi(u.path,c,n||o.append):c,f=function(t,e,n){void 0===e&&(e={});var r,o=n||ci;try{r=o(t||"")}catch(t){r={}}for(var i in e){var a=e[i];r[i]=Array.isArray(a)?a.map(ui):ui(a)}return r}(u.query,o.query,r&&r.options.parseQuery),p=o.hash||u.hash;return p&&"#"!==p.charAt(0)&&(p="#"+p),{_normalized:!0,path:l,query:f,hash:p}}var qi,Vi=function(){},Hi={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(t){var e=this,n=this.$router,r=this.$route,o=n.resolve(this.to,r,this.append),i=o.location,a=o.route,s=o.href,u={},c=n.options.linkActiveClass,l=n.options.linkExactActiveClass,f=null==c?"router-link-active":c,p=null==l?"router-link-exact-active":l,d=null==this.activeClass?f:this.activeClass,h=null==this.exactActiveClass?p:this.exactActiveClass,v=a.redirectedFrom?pi(null,zi(a.redirectedFrom),null,n):a;u[h]=gi(r,v,this.exactPath),u[d]=this.exact||this.exactPath?u[h]:function(t,e){return 0===t.path.replace(fi,"/").indexOf(e.path.replace(fi,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var n in e)if(!(n in t))return!1;return!0}(t.query,e.query)}(r,v);var m=u[h]?this.ariaCurrentValue:null,g=function(t){Wi(t)&&(e.replace?n.replace(i,Vi):n.push(i,Vi))},y={click:Wi};Array.isArray(this.event)?this.event.forEach((function(t){y[t]=g})):y[this.event]=g;var b={class:u},_=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:s,route:a,navigate:g,isActive:u[d],isExactActive:u[h]});if(_){if(1===_.length)return _[0];if(_.length>1||!_.length)return 0===_.length?t():t("span",{},_)}if("a"===this.tag)b.on=y,b.attrs={href:s,"aria-current":m};else{var x=function t(e){var n;if(e)for(var r=0;r-1&&(s.params[p]=n.params[p]);return s.path=Bi(l.path,s.params),u(l,s,a)}if(s.path){s.params={};for(var d=0;d-1}function Ca(t,e){return wa(t)&&t._isRouter&&(null==e||t.type===e)}function ka(t,e,n){var r=function(o){o>=t.length?n():t[o]?e(t[o],(function(){r(o+1)})):r(o+1)};r(0)}function Oa(t){return function(e,n,r){var o=!1,i=0,a=null;$a(t,(function(t,e,n,s){if("function"==typeof t&&void 0===t.cid){o=!0,i++;var u,c=Ta((function(e){var o;((o=e).__esModule||Sa&&"Module"===o[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:qi.extend(e),n.components[s]=e,--i<=0&&r()})),l=Ta((function(t){var e="Failed to resolve async component "+s+": "+t;a||(a=wa(t)?t:new Error(e),r(a))}));try{u=t(c,l)}catch(t){l(t)}if(u)if("function"==typeof u.then)u.then(c,l);else{var f=u.component;f&&"function"==typeof f.then&&f.then(c,l)}}})),o||r()}}function $a(t,e){return ja(t.map((function(t){return Object.keys(t.components).map((function(n){return e(t.components[n],t.instances[n],t,n)}))})))}function ja(t){return Array.prototype.concat.apply([],t)}var Sa="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function Ta(t){var e=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var Ea=function(t,e){this.router=t,this.base=function(t){if(!t)if(Ki){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";"/"!==t.charAt(0)&&(t="/"+t);return t.replace(/\/$/,"")}(e),this.current=hi,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function Pa(t,e,n,r){var o=$a(t,(function(t,r,o,i){var a=function(t,e){"function"!=typeof t&&(t=qi.extend(t));return t.options[e]}(t,e);if(a)return Array.isArray(a)?a.map((function(t){return n(t,r,o,i)})):n(a,r,o,i)}));return ja(r?o.reverse():o)}function Aa(t,e){if(e)return function(){return t.apply(e,arguments)}}Ea.prototype.listen=function(t){this.cb=t},Ea.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},Ea.prototype.onError=function(t){this.errorCbs.push(t)},Ea.prototype.transitionTo=function(t,e,n){var r,o=this;try{r=this.router.match(t,this.current)}catch(t){throw this.errorCbs.forEach((function(e){e(t)})),t}var i=this.current;this.confirmTransition(r,(function(){o.updateRoute(r),e&&e(r),o.ensureURL(),o.router.afterHooks.forEach((function(t){t&&t(r,i)})),o.ready||(o.ready=!0,o.readyCbs.forEach((function(t){t(r)})))}),(function(t){n&&n(t),t&&!o.ready&&(Ca(t,ga.redirected)&&i===hi||(o.ready=!0,o.readyErrorCbs.forEach((function(e){e(t)}))))}))},Ea.prototype.confirmTransition=function(t,e,n){var r=this,o=this.current;this.pending=t;var i,a,s=function(t){!Ca(t)&&wa(t)&&(r.errorCbs.length?r.errorCbs.forEach((function(e){e(t)})):console.error(t)),n&&n(t)},u=t.matched.length-1,c=o.matched.length-1;if(gi(t,o)&&u===c&&t.matched[u]===o.matched[c])return this.ensureURL(),t.hash&&ia(this.router,o,t,!1),s(((a=_a(i=o,t,ga.duplicated,'Avoided redundant navigation to current location: "'+i.fullPath+'".')).name="NavigationDuplicated",a));var l=function(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n0)){var e=this.router,n=e.options.scrollBehavior,r=ha&&n;r&&this.listeners.push(oa());var o=function(){var n=t.current,o=Ma(t.base);t.current===hi&&o===t._startLocation||t.transitionTo(o,(function(t){r&&ia(e,t,n,!0)}))};window.addEventListener("popstate",o),this.listeners.push((function(){window.removeEventListener("popstate",o)}))}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){va(Ci(r.base+t.fullPath)),ia(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){ma(Ci(r.base+t.fullPath)),ia(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.ensureURL=function(t){if(Ma(this.base)!==this.current.fullPath){var e=Ci(this.base+this.current.fullPath);t?va(e):ma(e)}},e.prototype.getCurrentLocation=function(){return Ma(this.base)},e}(Ea);function Ma(t){var e=window.location.pathname,n=e.toLowerCase(),r=t.toLowerCase();return!t||n!==r&&0!==n.indexOf(Ci(r+"/"))||(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var Ra=function(t){function e(e,n,r){t.call(this,e,n),r&&function(t){var e=Ma(t);if(!/^\/#/.test(e))return window.location.replace(Ci(t+"/#"+e)),!0}(this.base)||Ia()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router.options.scrollBehavior,n=ha&&e;n&&this.listeners.push(oa());var r=function(){var e=t.current;Ia()&&t.transitionTo(Ua(),(function(r){n&&ia(t.router,r,e,!0),ha||Fa(r.fullPath)}))},o=ha?"popstate":"hashchange";window.addEventListener(o,r),this.listeners.push((function(){window.removeEventListener(o,r)}))}},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){Na(t.fullPath),ia(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){Fa(t.fullPath),ia(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;Ua()!==e&&(t?Na(e):Fa(e))},e.prototype.getCurrentLocation=function(){return Ua()},e}(Ea);function Ia(){var t=Ua();return"/"===t.charAt(0)||(Fa("/"+t),!1)}function Ua(){var t=window.location.href,e=t.indexOf("#");return e<0?"":t=t.slice(e+1)}function Da(t){var e=window.location.href,n=e.indexOf("#");return(n>=0?e.slice(0,n):e)+"#"+t}function Na(t){ha?va(Da(t)):window.location.hash=t}function Fa(t){ha?ma(Da(t)):window.location.replace(Da(t))}var Ba=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)}),n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,(function(){var t=e.current;e.index=n,e.updateRoute(r),e.router.afterHooks.forEach((function(e){e&&e(r,t)}))}),(function(t){Ca(t,ga.duplicated)&&(e.index=n)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(Ea),za=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Ji(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!ha&&!1!==t.fallback,this.fallback&&(e="hash"),Ki||(e="abstract"),this.mode=e,e){case"history":this.history=new La(this,t.base);break;case"hash":this.history=new Ra(this,t.base,this.fallback);break;case"abstract":this.history=new Ba(this,t.base);break;default:0}},qa={currentRoute:{configurable:!0}};za.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},qa.currentRoute.get=function(){return this.history&&this.history.current},za.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",(function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null),e.app||e.history.teardown()})),!this.app){this.app=t;var n=this.history;if(n instanceof La||n instanceof Ra){var r=function(t){n.setupListeners(),function(t){var r=n.current,o=e.options.scrollBehavior;ha&&o&&"fullPath"in t&&ia(e,t,r,!1)}(t)};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},za.prototype.beforeEach=function(t){return Ha(this.beforeHooks,t)},za.prototype.beforeResolve=function(t){return Ha(this.resolveHooks,t)},za.prototype.afterEach=function(t){return Ha(this.afterHooks,t)},za.prototype.onReady=function(t,e){this.history.onReady(t,e)},za.prototype.onError=function(t){this.history.onError(t)},za.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise((function(e,n){r.history.push(t,e,n)}));this.history.push(t,e,n)},za.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise((function(e,n){r.history.replace(t,e,n)}));this.history.replace(t,e,n)},za.prototype.go=function(t){this.history.go(t)},za.prototype.back=function(){this.go(-1)},za.prototype.forward=function(){this.go(1)},za.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},za.prototype.resolve=function(t,e,n){var r=zi(t,e=e||this.history.current,n,this),o=this.match(r,e),i=o.redirectedFrom||o.fullPath;return{location:r,route:o,href:function(t,e,n){var r="hash"===n?"#"+e:e;return t?Ci(t+"/"+r):r}(this.history.base,i,this.mode),normalizedTo:r,resolved:o}},za.prototype.getRoutes=function(){return this.matcher.getRoutes()},za.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==hi&&this.history.transitionTo(this.history.getCurrentLocation())},za.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==hi&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(za.prototype,qa);var Va=za;function Ha(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}za.install=function t(e){if(!t.installed||qi!==e){t.installed=!0,qi=e;var n=function(t){return void 0!==t},r=function(t,e){var r=t.$options._parentVnode;n(r)&&n(r=r.data)&&n(r=r.registerRouteInstance)&&r(t,e)};e.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,r(this,this)},destroyed:function(){r(this)}}),Object.defineProperty(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("RouterView",_i),e.component("RouterLink",Hi);var o=e.config.optionMergeStrategies;o.beforeRouteEnter=o.beforeRouteLeave=o.beforeRouteUpdate=o.created}},za.version="3.6.5",za.isNavigationFailure=Ca,za.NavigationFailureType=ga,za.START_LOCATION=hi,Ki&&window.Vue&&window.Vue.use(za);n(96);n(92),n(128);var Wa={NotFound:()=>n.e(6).then(n.bind(null,280)),Layout:()=>Promise.all([n.e(0),n.e(2)]).then(n.bind(null,279))},Ka={"v-49ef63ff":()=>n.e(10).then(n.bind(null,283)),"v-031147ce":()=>n.e(9).then(n.bind(null,284)),"v-440298ff":()=>n.e(8).then(n.bind(null,285)),"v-65455d52":()=>n.e(11).then(n.bind(null,286)),"v-5f99fff9":()=>n.e(13).then(n.bind(null,287)),"v-7813dc19":()=>n.e(12).then(n.bind(null,288)),"v-cf184462":()=>n.e(7).then(n.bind(null,289)),"v-75b0c0ff":()=>n.e(14).then(n.bind(null,290)),"v-61821d87":()=>n.e(16).then(n.bind(null,291)),"v-2a284842":()=>n.e(15).then(n.bind(null,292)),"v-7e7f881f":()=>n.e(17).then(n.bind(null,293)),"v-4371f14e":()=>n.e(18).then(n.bind(null,294)),"v-3f415241":()=>n.e(20).then(n.bind(null,295)),"v-01c7100e":()=>n.e(21).then(n.bind(null,296)),"v-570f3d19":()=>n.e(19).then(n.bind(null,297)),"v-ff770e42":()=>n.e(23).then(n.bind(null,298)),"v-8a6ff24e":()=>n.e(22).then(n.bind(null,299)),"v-82155162":()=>n.e(24).then(n.bind(null,300))};function Ga(t){const e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}const Xa=/-(\w)/g,Ja=Ga(t=>t.replace(Xa,(t,e)=>e?e.toUpperCase():"")),Qa=/\B([A-Z])/g,Ya=Ga(t=>t.replace(Qa,"-$1").toLowerCase()),Za=Ga(t=>t.charAt(0).toUpperCase()+t.slice(1));function ts(t,e){if(!e)return;if(t(e))return t(e);return e.includes("-")?t(Za(Ja(e))):t(Za(e))||t(Ya(e))}const es=Object.assign({},Wa,Ka),ns=t=>es[t],rs=t=>Ka[t],os=t=>Wa[t],is=t=>Wn.component(t);function as(t){return ts(rs,t)}function ss(t){return ts(os,t)}function us(t){return ts(ns,t)}function cs(t){return ts(is,t)}function ls(...t){return Promise.all(t.filter(t=>t).map(async t=>{if(!cs(t)&&us(t)){const e=await us(t)();Wn.component(t,e.default)}}))}function fs(t,e){"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[t]=e)}var ps=n(90),ds=n.n(ps),hs=n(91),vs=n.n(hs),ms={created(){if(this.siteMeta=this.$site.headTags.filter(([t])=>"meta"===t).map(([t,e])=>e),this.$ssrContext){const e=this.getMergedMetaTags();this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.pageMeta=(t=e)?t.map(t=>{let e="{e+=` ${n}="${vs()(t[n])}"`}),e+">"}).join("\n "):"",this.$ssrContext.canonicalLink=ys(this.$canonicalUrl)}var t},mounted(){this.currentMetaTags=[...document.querySelectorAll("meta")],this.updateMeta(),this.updateCanonicalLink()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const t=this.getMergedMetaTags();this.currentMetaTags=bs(t,this.currentMetaTags)},getMergedMetaTags(){const t=this.$page.frontmatter.meta||[];return ds()([{name:"description",content:this.$description}],t,this.siteMeta,_s)},updateCanonicalLink(){gs(),this.$canonicalUrl&&document.head.insertAdjacentHTML("beforeend",ys(this.$canonicalUrl))}},watch:{$page(){this.updateMeta(),this.updateCanonicalLink()}},beforeDestroy(){bs(null,this.currentMetaTags),gs()}};function gs(){const t=document.querySelector("link[rel='canonical']");t&&t.remove()}function ys(t=""){return t?``:""}function bs(t,e){if(e&&[...e].filter(t=>t.parentNode===document.head).forEach(t=>document.head.removeChild(t)),t)return t.map(t=>{const e=document.createElement("meta");return Object.keys(t).forEach(n=>{e.setAttribute(n,t[n])}),document.head.appendChild(e),e})}function _s(t){for(const e of["name","property","itemprop"])if(t.hasOwnProperty(e))return t[e]+e;return JSON.stringify(t)}var xs=n(23),ws=n.n(xs),Cs={mounted(){window.addEventListener("scroll",this.onScroll)},methods:{onScroll:ws()((function(){this.setActiveHash()}),300),setActiveHash(){const t=[].slice.call(document.querySelectorAll(".sidebar-link")),e=[].slice.call(document.querySelectorAll(".header-anchor")).filter(e=>t.some(t=>t.hash===e.hash)),n=Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop),r=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),o=window.innerHeight+n;for(let t=0;t=i.parentElement.offsetTop+10&&(!a||n{this.$nextTick(()=>{this.$vuepress.$set("disableScrollBehavior",!1)})})}}}},beforeDestroy(){window.removeEventListener("scroll",this.onScroll)}},ks=n(24),Os=n.n(ks),$s={mounted(){Os.a.configure({showSpinner:!1}),this.$router.beforeEach((t,e,n)=>{t.path===e.path||Wn.component(t.name)||Os.a.start(),n()}),this.$router.afterEach(()=>{Os.a.done(),this.isSidebarOpen=!1})}},js={props:{parent:Object,code:String,options:{align:String,color:String,backgroundTransition:Boolean,backgroundColor:String,successText:String,staticIcon:Boolean}},data:()=>({success:!1,originalBackground:null,originalTransition:null}),computed:{alignStyle(){let t={};return t[this.options.align]="7.5px",t},iconClass(){return this.options.staticIcon?"":"hover"}},mounted(){this.originalTransition=this.parent.style.transition,this.originalBackground=this.parent.style.background},beforeDestroy(){this.parent.style.transition=this.originalTransition,this.parent.style.background=this.originalBackground},methods:{hexToRgb(t){let e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return e?{r:parseInt(e[1],16),g:parseInt(e[2],16),b:parseInt(e[3],16)}:null},copyToClipboard(t){if(navigator.clipboard)navigator.clipboard.writeText(this.code).then(()=>{this.setSuccessTransitions()},()=>{});else{let t=document.createElement("textarea");document.body.appendChild(t),t.value=this.code,t.select(),document.execCommand("Copy"),t.remove(),this.setSuccessTransitions()}},setSuccessTransitions(){if(clearTimeout(this.successTimeout),this.options.backgroundTransition){this.parent.style.transition="background 350ms";let t=this.hexToRgb(this.options.backgroundColor);this.parent.style.background=`rgba(${t.r}, ${t.g}, ${t.b}, 0.1)`}this.success=!0,this.successTimeout=setTimeout(()=>{this.options.backgroundTransition&&(this.parent.style.background=this.originalBackground,this.parent.style.transition=this.originalTransition),this.success=!1},500)}}},Ss=(n(234),n(7)),Ts=Object(Ss.a)(js,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"code-copy"},[e("svg",{class:t.iconClass,style:t.alignStyle,attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},on:{click:t.copyToClipboard}},[e("path",{attrs:{fill:"none",d:"M0 0h24v24H0z"}}),t._v(" "),e("path",{attrs:{fill:t.options.color,d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm-1 4l6 6v10c0 1.1-.9 2-2 2H7.99C6.89 23 6 22.1 6 21l.01-14c0-1.1.89-2 1.99-2h7zm-1 7h5.5L14 6.5V12z"}})]),t._v(" "),e("span",{class:t.success?"success":"",style:t.alignStyle},[t._v("\n "+t._s(t.options.successText)+"\n ")])])}),[],!1,null,"56cbd8b4",null).exports,Es=(n(235),[ms,Cs,$s,{updated(){this.update()},methods:{update(){setTimeout(()=>{document.querySelectorAll('div[class*="language-"] pre').forEach(t=>{if(t.classList.contains("code-copy-added"))return;let e=new(Wn.extend(Ts));e.options={align:"bottom",color:"#27b1ff",backgroundTransition:!0,backgroundColor:"#0075b8",successText:"Copied!",staticIcon:!1},e.code=t.innerText,e.parent=t,e.$mount(),t.classList.add("code-copy-added"),t.appendChild(e.$el)})},100)}}}]),Ps={name:"GlobalLayout",computed:{layout(){const t=this.getLayout();return fs("layout",t),Wn.component(t)}},methods:{getLayout(){if(this.$page.path){const t=this.$page.frontmatter.layout;return t&&(this.$vuepress.getLayoutAsyncComponent(t)||this.$vuepress.getVueComponent(t))?t:"Layout"}return"NotFound"}}},As=Object(Ss.a)(Ps,(function(){return(0,this._self._c)(this.layout,{tag:"component"})}),[],!1,null,null,null).exports;!function(t,e,n){switch(e){case"components":t[e]||(t[e]={}),Object.assign(t[e],n);break;case"mixins":t[e]||(t[e]=[]),t[e].push(...n);break;default:throw new Error("Unknown option name.")}}(As,"mixins",Es);const Ls=[{name:"v-49ef63ff",path:"/faq/faq.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-49ef63ff").then(n)}},{name:"v-031147ce",path:"/change/change-log.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-031147ce").then(n)}},{name:"v-440298ff",path:"/api/api.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-440298ff").then(n)}},{name:"v-65455d52",path:"/install-tutorial/custom-installation.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-65455d52").then(n)}},{name:"v-5f99fff9",path:"/install-tutorial/installation.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-5f99fff9").then(n)}},{name:"v-7813dc19",path:"/install-tutorial/docker-compose.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-7813dc19").then(n)}},{name:"v-cf184462",path:"/",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-cf184462").then(n)}},{path:"/index.html",redirect:"/"},{name:"v-75b0c0ff",path:"/sdk/sdk.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-75b0c0ff").then(n)}},{name:"v-61821d87",path:"/start/system-structure.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-61821d87").then(n)}},{name:"v-2a284842",path:"/start/introduce.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-2a284842").then(n)}},{name:"v-7e7f881f",path:"/tutorial/client-config.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-7e7f881f").then(n)}},{name:"v-4371f14e",path:"/tutorial/common-problem.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-4371f14e").then(n)}},{name:"v-3f415241",path:"/tutorial/performance-testing.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-3f415241").then(n)}},{name:"v-01c7100e",path:"/tutorial/performance-tuning.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-01c7100e").then(n)}},{name:"v-570f3d19",path:"/tutorial/des-of-related-doc.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-570f3d19").then(n)}},{name:"v-ff770e42",path:"/tutorial/using-cdn.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-ff770e42").then(n)}},{name:"v-8a6ff24e",path:"/tutorial/recommend-tool.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-8a6ff24e").then(n)}},{name:"v-82155162",path:"/tutorial/using-tutorials.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-82155162").then(n)}},{path:"*",component:As}],Ms={title:"Trojan Panel",description:"支持Xray/Trojan-Go/Hysteria/NaiveProxy的多用户Web管理面板",base:"/",headTags:[["link",{rel:"icon",href:"logo.png"}],["script",{},'\n var _hmt = _hmt || [];\n(function() {\n var hm = document.createElement("script");\n hm.src = "https://hm.baidu.com/hm.js?37275f991707c27db91dbb6f668ee1c6";\n var s = document.getElementsByTagName("script")[0]; \n s.parentNode.insertBefore(hm, s);\n})();\n'],["script",{async:!0,src:"https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9763379843362753",crossorigin:"anonymous"}]],pages:[{title:"FAQ",frontmatter:{},regularPath:"/faq/faq.html",relativePath:"faq/faq.md",key:"v-49ef63ff",path:"/faq/faq.html",headers:[{level:2,title:"联机和单机有什么区别?",slug:"联机和单机有什么区别"},{level:2,title:"是否考虑支持商业化功能?",slug:"是否考虑支持商业化功能"},{level:2,title:"会收费么?",slug:"会收费么"},{level:2,title:"是否开源?",slug:"是否开源"}],lastUpdated:"8/6/2023, 12:08:11 AM",lastUpdatedTimestamp:1691251691e3},{title:"更新日志",frontmatter:{},regularPath:"/change/change-log.html",relativePath:"change/change-log.md",key:"v-031147ce",path:"/change/change-log.html",headers:[{level:2,title:"2023.07.08 帝江",slug:"_2023-07-08-帝江"},{level:2,title:"2023.03.31 穷奇",slug:"_2023-03-31-穷奇"},{level:2,title:"2022.12.29 麒麟",slug:"_2022-12-29-麒麟"},{level:2,title:"2022.11.08 饕餮",slug:"_2022-11-08-饕餮"},{level:2,title:"2022.05.16 伏羲",slug:"_2022-05-16-伏羲"},{level:2,title:"2022.02.10 盘古",slug:"_2022-02-10-盘古"}],lastUpdated:"8/6/2023, 12:39:47 AM",lastUpdatedTimestamp:1691253587e3},{title:"API文档",frontmatter:{},regularPath:"/api/api.html",relativePath:"api/api.md",key:"v-440298ff",path:"/api/api.html",headers:[{level:2,title:"开发前必读",slug:"开发前必读"},{level:2,title:"开放接口",slug:"开放接口"},{level:3,title:"验证码",slug:"验证码"},{level:3,title:"登录",slug:"登录"},{level:3,title:"注册",slug:"注册"},{level:3,title:"系统默认设置",slug:"系统默认设置"},{level:3,title:"订阅",slug:"订阅"},{level:3,title:"logo",slug:"logo"},{level:2,title:"首页",slug:"首页"},{level:3,title:"仪表板",slug:"仪表板"},{level:3,title:"流量排行榜",slug:"流量排行榜"},{level:2,title:"账户",slug:"账户"},{level:3,title:"注销",slug:"注销"},{level:3,title:"查询单个账户",slug:"查询单个账户"},{level:3,title:"创建账户",slug:"创建账户"},{level:3,title:"获取当前账户信息",slug:"获取当前账户信息"},{level:3,title:"分页查询账户",slug:"分页查询账户"},{level:3,title:"通过id删除账户",slug:"通过id删除账户"},{level:3,title:"修改密码",slug:"修改密码"},{level:3,title:"修改用户名或者邮箱",slug:"修改用户名或者邮箱"},{level:3,title:"修改账户",slug:"修改账户"},{level:3,title:"获取Clash订阅地址",slug:"获取clash订阅地址"},{level:3,title:"获取指定账户的Clash订阅地址",slug:"获取指定账户的clash订阅地址"},{level:3,title:"重设下载和上传流量",slug:"重设下载和上传流量"},{level:3,title:"导出账户",slug:"导出账户"},{level:3,title:"导入账户",slug:"导入账户"},{level:3,title:"批量创建账户",slug:"批量创建账户"},{level:3,title:"导出未使用的账户",slug:"导出未使用的账户"},{level:2,title:"角色",slug:"角色"},{level:3,title:"查询角色列表",slug:"查询角色列表"},{level:2,title:"服务器",slug:"服务器"},{level:3,title:"根据id查询服务器",slug:"根据id查询服务器"},{level:3,title:"创建服务器",slug:"创建服务器"},{level:3,title:"分页查询服务器",slug:"分页查询服务器"},{level:3,title:"删除服务器",slug:"删除服务器"},{level:3,title:"更新服务器",slug:"更新服务器"},{level:3,title:"查询服务器列表",slug:"查询服务器列表"},{level:3,title:"查询服务器状态",slug:"查询服务器状态"},{level:3,title:"导出服务器",slug:"导出服务器"},{level:3,title:"导入服务器",slug:"导入服务器"},{level:2,title:"节点",slug:"节点"},{level:3,title:"根据id查询节点",slug:"根据id查询节点"},{level:3,title:"查询节点连接信息",slug:"查询节点连接信息"},{level:3,title:"创建节点",slug:"创建节点"},{level:3,title:"分页查询节点",slug:"分页查询节点"},{level:3,title:"删除节点",slug:"删除节点"},{level:3,title:"更新节点",slug:"更新节点"},{level:3,title:"获取节点二维码",slug:"获取节点二维码"},{level:3,title:"复制URL",slug:"复制url"},{level:3,title:"节点部分属性的默认值",slug:"节点部分属性的默认值"},{level:2,title:"节点类型",slug:"节点类型"},{level:3,title:"查询节点类型列表",slug:"查询节点类型列表"},{level:2,title:"系统设置",slug:"系统设置"},{level:3,title:"查询系统设置",slug:"查询系统设置"},{level:3,title:"更新系统配置",slug:"更新系统配置"},{level:3,title:"上传静态网站文件",slug:"上传静态网站文件"},{level:3,title:"上传logo",slug:"上传logo"},{level:2,title:"黑名单",slug:"黑名单"},{level:3,title:"分页查询黑名单",slug:"分页查询黑名单"},{level:3,title:"删除黑名单",slug:"删除黑名单"},{level:3,title:"创建黑名单",slug:"创建黑名单"},{level:2,title:"邮件",slug:"邮件"},{level:3,title:"查询邮件发送记录",slug:"查询邮件发送记录"},{level:2,title:"文件任务",slug:"文件任务"},{level:3,title:"分页查询文件任务",slug:"分页查询文件任务"},{level:3,title:"删除文件任务",slug:"删除文件任务"},{level:3,title:"下载文件任务的文件",slug:"下载文件任务的文件"},{level:3,title:"获取文件模板",slug:"获取文件模板"}],lastUpdated:"8/20/2023, 12:24:00 AM",lastUpdatedTimestamp:169246224e4},{title:"手动安装教程",frontmatter:{},regularPath:"/install-tutorial/custom-installation.html",relativePath:"install-tutorial/custom-installation.md",key:"v-65455d52",path:"/install-tutorial/custom-installation.html",headers:[{level:2,title:"准备",slug:"准备"},{level:2,title:"安装Docker",slug:"安装docker"},{level:2,title:"安装Caddy",slug:"安装caddy"},{level:2,title:"安装MariaDB",slug:"安装mariadb"},{level:2,title:"安装Redis",slug:"安装redis"},{level:2,title:"安装Trojan Panel",slug:"安装trojan-panel"},{level:2,title:"安装Trojan Panel UI",slug:"安装trojan-panel-ui"},{level:2,title:"安装Trojan Panel Core",slug:"安装trojan-panel-core"}],lastUpdated:"5/8/2023, 1:32:06 PM",lastUpdatedTimestamp:1683523926e3},{title:"自动安装教程",frontmatter:{},regularPath:"/install-tutorial/installation.html",relativePath:"install-tutorial/installation.md",key:"v-5f99fff9",path:"/install-tutorial/installation.html",headers:[{level:2,title:"准备",slug:"准备"},{level:2,title:"一键安装脚本",slug:"一键安装脚本"},{level:2,title:"安装Trojan Panel",slug:"安装trojan-panel"},{level:2,title:"安装Trojan Panel Core",slug:"安装trojan-panel-core"}],lastUpdated:"6/3/2023, 1:56:56 AM",lastUpdatedTimestamp:1685728616e3},{title:"Docker Compose方式安装",frontmatter:{},regularPath:"/install-tutorial/docker-compose.html",relativePath:"install-tutorial/docker-compose.md",key:"v-7813dc19",path:"/install-tutorial/docker-compose.html",headers:[{level:2,title:"准备",slug:"准备"},{level:3,title:"设置伪装网站",slug:"设置伪装网站"},{level:3,title:"新建Caddy配置文件",slug:"新建caddy配置文件"},{level:3,title:"新建Nginx配置文件",slug:"新建nginx配置文件"},{level:2,title:"配置文件",slug:"配置文件"},{level:2,title:"部署",slug:"部署"}],lastUpdated:"8/11/2023, 5:04:23 PM",lastUpdatedTimestamp:1691744663e3},{title:"Home",frontmatter:{home:!0,heroImage:"/logo.png",heroText:"Trojan Panel",tagline:"支持Xray/Trojan-Go/Hysteria/NaiveProxy的多用户Web管理面板",actionText:"快速上手 →",actionLink:"./start/introduce",features:[{title:"极速搭建",details:"一键安装脚本,降低部署门槛,快速搭建系统"},{title:"国际化",details:"系统语言支持中文/English/한국인/فارسی"},{title:"多代理支持",details:"节点类型支持Xray/Trojan-Go/Hysteria/NaiveProxy"},{title:"分布式",details:"前后端分离开发,减少模块之间耦合度,可以自由组合部署在多个服务器"},{title:"功能强大",details:"支持登录注册/用户管理/节点管理/邮件管理/黑名单管理/自定义伪装网站/系统看板等"},{title:"所见即所得",details:"支持多节点管理,自动化管理远程节点,自动化申请/续签证书,面板内编辑节点,远程服务实时修改节点配置"}],footer:"Copyright © 2021-2023 Trojan Panel"},regularPath:"/",relativePath:"README.md",key:"v-cf184462",path:"/",headers:[{level:2,title:"🚀 安装",slug:"🚀-安装"},{level:2,title:"✨ Community",slug:"✨-community"},{level:2,title:"🔍 报告缺陷与问题",slug:"🔍-报告缺陷与问题"},{level:2,title:"💞 支持",slug:"💞-支持"},{level:2,title:"🌟 Star随时间变化",slug:"🌟-star随时间变化"}],lastUpdated:"8/6/2023, 12:39:47 AM",lastUpdatedTimestamp:1691253587e3},{title:"Core SDK",frontmatter:{},regularPath:"/sdk/sdk.html",relativePath:"sdk/sdk.md",key:"v-75b0c0ff",path:"/sdk/sdk.html",lastUpdated:"8/6/2023, 12:39:47 AM",lastUpdatedTimestamp:1691253587e3},{title:"架构设计",frontmatter:{},regularPath:"/start/system-structure.html",relativePath:"start/system-structure.md",key:"v-61821d87",path:"/start/system-structure.html",lastUpdated:"11/7/2022, 3:25:40 PM",lastUpdatedTimestamp:166780594e4},{title:"介绍",frontmatter:{},regularPath:"/start/introduce.html",relativePath:"start/introduce.md",key:"v-2a284842",path:"/start/introduce.html",lastUpdated:"12/4/2022, 12:16:18 AM",lastUpdatedTimestamp:1670084178e3},{title:"客户端配置",frontmatter:{},regularPath:"/tutorial/client-config.html",relativePath:"tutorial/client-config.md",key:"v-7e7f881f",path:"/tutorial/client-config.html",headers:[{level:2,title:"v2rayN",slug:"v2rayn"},{level:3,title:"配置Hysteria(Windows)",slug:"配置hysteria-windows"},{level:3,title:"配置NaiveProxy(Windows)",slug:"配置naiveproxy-windows"},{level:2,title:"Qv2ray",slug:"qv2ray"},{level:3,title:"配置Trojan-Go(Windows)",slug:"配置trojan-go-windows"},{level:3,title:"配置Trojan(Windows)",slug:"配置trojan-windows"},{level:3,title:"配置NaiveProxy(Windows)",slug:"配置naiveproxy-windows-2"},{level:3,title:"配置SS/SSR(Windows)",slug:"配置ss-ssr-windows"}],lastUpdated:"3/20/2023, 6:14:44 PM",lastUpdatedTimestamp:1679307284e3},{title:"常见问题",frontmatter:{},regularPath:"/tutorial/common-problem.html",relativePath:"tutorial/common-problem.md",key:"v-4371f14e",path:"/tutorial/common-problem.html",headers:[{level:2,title:"搭建失败或系统报错的常见解决方案",slug:"搭建失败或系统报错的常见解决方案"},{level:2,title:"证书申请失败",slug:"证书申请失败"}],lastUpdated:"6/10/2023, 11:41:05 PM",lastUpdatedTimestamp:1686411665e3},{title:"性能测试",frontmatter:{},regularPath:"/tutorial/performance-testing.html",relativePath:"tutorial/performance-testing.md",key:"v-3f415241",path:"/tutorial/performance-testing.html",lastUpdated:"11/7/2022, 3:25:40 PM",lastUpdatedTimestamp:166780594e4},{title:"性能调优",frontmatter:{},regularPath:"/tutorial/performance-tuning.html",relativePath:"tutorial/performance-tuning.md",key:"v-01c7100e",path:"/tutorial/performance-tuning.html",headers:[{level:2,title:"定时重启",slug:"定时重启"},{level:2,title:"网络加速",slug:"网络加速"}],lastUpdated:"11/25/2022, 10:44:51 AM",lastUpdatedTimestamp:1669344291e3},{title:"相关说明",frontmatter:{},regularPath:"/tutorial/des-of-related-doc.html",relativePath:"tutorial/des-of-related-doc.md",key:"v-570f3d19",path:"/tutorial/des-of-related-doc.html",headers:[{level:2,title:"文件路径",slug:"文件路径"},{level:2,title:"Xray",slug:"xray"},{level:2,title:"Clash",slug:"clash"}],lastUpdated:"5/8/2023, 11:21:24 AM",lastUpdatedTimestamp:1683516084e3},{title:"使用CDN",frontmatter:{},regularPath:"/tutorial/using-cdn.html",relativePath:"tutorial/using-cdn.md",key:"v-ff770e42",path:"/tutorial/using-cdn.html",headers:[{level:2,title:"Cloudflare",slug:"cloudflare"}],lastUpdated:"12/29/2022, 10:06:02 AM",lastUpdatedTimestamp:1672279562e3},{title:"工具推荐",frontmatter:{},regularPath:"/tutorial/recommend-tool.html",relativePath:"tutorial/recommend-tool.md",key:"v-8a6ff24e",path:"/tutorial/recommend-tool.html",headers:[{level:2,title:"客户端",slug:"客户端"},{level:3,title:"Xray",slug:"xray"},{level:3,title:"Trojan-gfw & Trojan-go",slug:"trojan-gfw-trojan-go"},{level:3,title:"Hysteria",slug:"hysteria"},{level:2,title:"申请免费证书",slug:"申请免费证书"}],lastUpdated:"5/26/2023, 10:20:32 AM",lastUpdatedTimestamp:1685067632e3},{title:"使用教程",frontmatter:{},regularPath:"/tutorial/using-tutorials.html",relativePath:"tutorial/using-tutorials.md",key:"v-82155162",path:"/tutorial/using-tutorials.html",headers:[{level:3,title:"登录/注册",slug:"登录-注册"},{level:2,title:"用户管理",slug:"用户管理"},{level:2,title:"节点管理",slug:"节点管理"},{level:2,title:"用户设置",slug:"用户设置"},{level:2,title:"服务器管理",slug:"服务器管理"},{level:2,title:"系统邮箱设置",slug:"系统邮箱设置"},{level:2,title:"自定义伪装网站",slug:"自定义伪装网站"},{level:2,title:"黑名单管理",slug:"黑名单管理"},{level:2,title:"模板设置",slug:"模板设置"},{level:2,title:"数据统计",slug:"数据统计"},{level:2,title:"小功能",slug:"小功能"}],lastUpdated:"2/16/2023, 11:25:26 AM",lastUpdatedTimestamp:1676517926e3}],themeConfig:{sidebarDepth:3,logo:"/logo.png",lastUpdated:"Last Updated",nav:[{text:"新手起步",link:"/start/introduce"},{text:"相关教程",items:[{text:"安装教程",link:"/install-tutorial/installation"},{text:"使用教程",link:"/tutorial/using-tutorials"}]},{text:"开发文档",items:[{text:"API文档",link:"/api/api"},{text:"Core SDK",link:"/sdk/sdk"}]},{text:"FAQ",link:"/faq/faq"},{text:"更新日志",link:"/change/change-log"},{text:"GitHub",link:"https://github.com/trojanpanel"}],sidebar:{"/start/":["introduce","system-structure"],"/tutorial/":["using-tutorials","des-of-related-doc","common-problem","using-cdn","client-config","recommend-tool","performance-tuning","performance-testing"],"/install-tutorial/":["installation","custom-installation","docker-compose"],"/api/":["api"],"/sdk/":["sdk"],"/faq/":["faq"],"/change/":["change-log"]}}};n(236);Wn.component("Badge",()=>Promise.all([n.e(0),n.e(3)]).then(n.bind(null,301))),Wn.component("CodeBlock",()=>Promise.all([n.e(0),n.e(4)]).then(n.bind(null,281))),Wn.component("CodeGroup",()=>Promise.all([n.e(0),n.e(5)]).then(n.bind(null,282)));n(237);var Rs={name:"BackToTop",props:{threshold:{type:Number,default:300}},data:()=>({scrollTop:null}),computed:{show(){return this.scrollTop>this.threshold}},mounted(){this.scrollTop=this.getScrollTop(),window.addEventListener("scroll",ws()(()=>{this.scrollTop=this.getScrollTop()},100))},methods:{getScrollTop:()=>window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,scrollToTop(){window.scrollTo({top:0,behavior:"smooth"}),this.scrollTop=0}}},Is=(n(238),Object(Ss.a)(Rs,(function(){var t=this._self._c;return t("transition",{attrs:{name:"fade"}},[this.show?t("svg",{staticClass:"go-to-top",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 49.484 28.284"},on:{click:this.scrollToTop}},[t("g",{attrs:{transform:"translate(-229 -126.358)"}},[t("rect",{attrs:{fill:"currentColor",width:"35",height:"5",rx:"2",transform:"translate(229 151.107) rotate(-45)"}}),this._v(" "),t("rect",{attrs:{fill:"currentColor",width:"35",height:"5",rx:"2",transform:"translate(274.949 154.642) rotate(-135)"}})])]):this._e()])}),[],!1,null,"1c80d7ad",null).exports),Us=[{},({Vue:t})=>{t.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},{},({Vue:t})=>{t.component("BackToTop",Is)},({Vue:t})=>{t.component("CodeCopy",Ts)}],Ds=["BackToTop"];class Ns extends class{constructor(){this.store=new Wn({data:{state:{}}})}$get(t){return this.store.state[t]}$set(t,e){Wn.set(this.store.state,t,e)}$emit(...t){this.store.$emit(...t)}$on(...t){this.store.$on(...t)}}{}Object.assign(Ns.prototype,{getPageAsyncComponent:as,getLayoutAsyncComponent:ss,getAsyncComponent:us,getVueComponent:cs});var Fs={install(t){const e=new Ns;t.$vuepress=e,t.prototype.$vuepress=e}};function Bs(t,e){const n=e.toLowerCase();return t.options.routes.some(t=>t.path.toLowerCase()===n)}var zs={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(t){const e=this.pageKey||this.$parent.$page.key;return fs("pageKey",e),Wn.component(e)||Wn.component(e,as(e)),Wn.component(e)?t(e):t("")}},qs={functional:!0,props:{slotKey:String,required:!0},render:(t,{props:e,slots:n})=>t("div",{class:["content__"+e.slotKey]},n()[e.slotKey])},Vs={computed:{openInNewWindowTitle(){return this.$themeLocaleConfig.openNewWindowText||"(opens new window)"}}},Hs=(n(239),n(240),Object(Ss.a)(Vs,(function(){var t=this._self._c;return t("span",[t("svg",{staticClass:"icon outbound",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"}},[t("path",{attrs:{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}}),this._v(" "),t("polygon",{attrs:{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"}})]),this._v(" "),t("span",{staticClass:"sr-only"},[this._v(this._s(this.openInNewWindowTitle))])])}),[],!1,null,null,null).exports),Ws={functional:!0,render(t,{parent:e,children:n}){if(e._isMounted)return n;e.$once("hook:mounted",()=>{e.$forceUpdate()})}};Wn.config.productionTip=!1,Wn.use(Va),Wn.use(Fs),Wn.mixin(function(t,e,n=Wn){!function(t){t.locales&&Object.keys(t.locales).forEach(e=>{t.locales[e].path=e});Object.freeze(t)}(e),n.$vuepress.$set("siteData",e);const r=new(t(n.$vuepress.$get("siteData"))),o=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),i={};return Object.keys(o).reduce((t,e)=>(e.startsWith("$")&&(t[e]=o[e].get),t),i),{computed:i}}(t=>class{setPage(t){this.__page=t}get $site(){return t}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:t={}}=this.$site;let e,n;for(const r in t)"/"===r?n=t[r]:0===this.$page.path.indexOf(r)&&(e=t[r]);return e||n||{}}get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $canonicalUrl(){const{canonicalUrl:t}=this.$page.frontmatter;return"string"==typeof t&&t}get $title(){const t=this.$page,{metaTitle:e}=this.$page.frontmatter;if("string"==typeof e)return e;const n=this.$siteTitle,r=t.frontmatter.home?null:t.frontmatter.title||t.title;return n?r?r+" | "+n:n:r||"VuePress"}get $description(){const t=function(t){if(t){const e=t.filter(t=>"description"===t.name)[0];if(e)return e.content}}(this.$page.frontmatter.meta);return t||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}get $lang(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}get $localePath(){return this.$localeConfig.path||"/"}get $themeLocaleConfig(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}get $page(){return this.__page?this.__page:function(t,e){for(let n=0;nn||(t.hash?!Wn.$vuepress.$get("disableScrollBehavior")&&{selector:decodeURIComponent(t.hash)}:{x:0,y:0})});!function(t){t.beforeEach((e,n,r)=>{if(Bs(t,e.path))r();else if(/(\/|\.html)$/.test(e.path))if(/\/$/.test(e.path)){const n=e.path.replace(/\/$/,"")+".html";Bs(t,n)?r(n):r()}else r();else{const n=e.path+"/",o=e.path+".html";Bs(t,o)?r(o):Bs(t,n)?r(n):r()}})}(n);const r={};try{await Promise.all(Us.filter(t=>"function"==typeof t).map(e=>e({Vue:Wn,options:r,router:n,siteData:Ms,isServer:t})))}catch(t){console.error(t)}return{app:new Wn(Object.assign(r,{router:n,render:t=>t("div",{attrs:{id:"app"}},[t("RouterView",{ref:"layout"}),t("div",{class:"global-ui"},Ds.map(e=>t(e)))])})),router:n}}(!1).then(({app:t,router:e})=>{e.onReady(()=>{t.$mount("#app")})})}]); \ No newline at end of file +var r=Object.freeze({}),o=Array.isArray;function i(t){return null==t}function a(t){return null!=t}function s(t){return!0===t}function u(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function c(t){return"function"==typeof t}function l(t){return null!==t&&"object"==typeof t}var f=Object.prototype.toString;function p(t){return"[object Object]"===f.call(t)}function d(t){return"[object RegExp]"===f.call(t)}function h(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function v(t){return a(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function m(t){return null==t?"":Array.isArray(t)||p(t)&&t.toString===f?JSON.stringify(t,null,2):String(t)}function g(t){var e=parseFloat(t);return isNaN(e)?t:e}function y(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o-1)return t.splice(r,1)}}var x=Object.prototype.hasOwnProperty;function w(t,e){return x.call(t,e)}function k(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var C=/-(\w)/g,O=k((function(t){return t.replace(C,(function(t,e){return e?e.toUpperCase():""}))})),$=k((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),j=/\B([A-Z])/g,S=k((function(t){return t.replace(j,"-$1").toLowerCase()}));var T=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function E(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function P(t,e){for(var n in e)t[n]=e[n];return t}function A(t){for(var e={},n=0;n0,Y=X&&X.indexOf("edge/")>0;X&&X.indexOf("android");var Z=X&&/iphone|ipad|ipod|ios/.test(X);X&&/chrome\/\d+/.test(X),X&&/phantomjs/.test(X);var tt,et=X&&X.match(/firefox\/(\d+)/),nt={}.watch,rt=!1;if(G)try{var ot={};Object.defineProperty(ot,"passive",{get:function(){rt=!0}}),window.addEventListener("test-passive",null,ot)}catch(t){}var it=function(){return void 0===tt&&(tt=!G&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),tt},at=G&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function st(t){return"function"==typeof t&&/native code/.test(t.toString())}var ut,ct="undefined"!=typeof Symbol&&st(Symbol)&&"undefined"!=typeof Reflect&&st(Reflect.ownKeys);ut="undefined"!=typeof Set&&st(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var lt=null;function ft(t){void 0===t&&(t=null),t||lt&<._scope.off(),lt=t,t&&t._scope.on()}var pt=function(){function t(t,e,n,r,o,i,a,s){this.tag=t,this.data=e,this.children=n,this.text=r,this.elm=o,this.ns=void 0,this.context=i,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=e&&e.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1}return Object.defineProperty(t.prototype,"child",{get:function(){return this.componentInstance},enumerable:!1,configurable:!0}),t}(),dt=function(t){void 0===t&&(t="");var e=new pt;return e.text=t,e.isComment=!0,e};function ht(t){return new pt(void 0,void 0,void 0,String(t))}function vt(t){var e=new pt(t.tag,t.data,t.children&&t.children.slice(),t.text,t.elm,t.context,t.componentOptions,t.asyncFactory);return e.ns=t.ns,e.isStatic=t.isStatic,e.key=t.key,e.isComment=t.isComment,e.fnContext=t.fnContext,e.fnOptions=t.fnOptions,e.fnScopeId=t.fnScopeId,e.asyncMeta=t.asyncMeta,e.isCloned=!0,e}var mt=0,gt=[],yt=function(){function t(){this._pending=!1,this.id=mt++,this.subs=[]}return t.prototype.addSub=function(t){this.subs.push(t)},t.prototype.removeSub=function(t){this.subs[this.subs.indexOf(t)]=null,this._pending||(this._pending=!0,gt.push(this))},t.prototype.depend=function(e){t.target&&t.target.addDep(this)},t.prototype.notify=function(t){var e=this.subs.filter((function(t){return t}));for(var n=0,r=e.length;n0&&(Xt((c=t(c,"".concat(n||"","_").concat(r)))[0])&&Xt(f)&&(p[l]=ht(f.text+c[0].text),c.shift()),p.push.apply(p,c)):u(c)?Xt(f)?p[l]=ht(f.text+c):""!==c&&p.push(ht(c)):Xt(c)&&Xt(f)?p[l]=ht(f.text+c.text):(s(e._isVList)&&a(c.tag)&&i(c.key)&&a(n)&&(c.key="__vlist".concat(n,"_").concat(r,"__")),p.push(c)));return p}(t):void 0}function Xt(t){return a(t)&&a(t.text)&&!1===t.isComment}function Jt(t,e){var n,r,i,s,u=null;if(o(t)||"string"==typeof t)for(u=new Array(t.length),n=0,r=t.length;n0,s=e?!!e.$stable:!a,u=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(s&&o&&o!==r&&u===o.$key&&!a&&!o.$hasNormal)return o;for(var c in i={},e)e[c]&&"$"!==c[0]&&(i[c]=ve(t,n,c,e[c]))}else i={};for(var l in n)l in i||(i[l]=me(n,l));return e&&Object.isExtensible(e)&&(e._normalized=i),H(i,"$stable",s),H(i,"$key",u),H(i,"$hasNormal",a),i}function ve(t,e,n,r){var i=function(){var e=lt;ft(t);var n=arguments.length?r.apply(null,arguments):r({}),i=(n=n&&"object"==typeof n&&!o(n)?[n]:Gt(n))&&n[0];return ft(e),n&&(!i||1===n.length&&i.isComment&&!de(i))?void 0:n};return r.proxy&&Object.defineProperty(e,n,{get:i,enumerable:!0,configurable:!0}),i}function me(t,e){return function(){return t[e]}}function ge(t){return{get attrs(){if(!t._attrsProxy){var e=t._attrsProxy={};H(e,"_v_attr_proxy",!0),ye(e,t.$attrs,r,t,"$attrs")}return t._attrsProxy},get listeners(){t._listenersProxy||ye(t._listenersProxy={},t.$listeners,r,t,"$listeners");return t._listenersProxy},get slots(){return function(t){t._slotsProxy||_e(t._slotsProxy={},t.$scopedSlots);return t._slotsProxy}(t)},emit:T(t.$emit,t),expose:function(e){e&&Object.keys(e).forEach((function(n){return Nt(t,e,n)}))}}}function ye(t,e,n,r,o){var i=!1;for(var a in e)a in t?e[a]!==n[a]&&(i=!0):(i=!0,be(t,a,r,o));for(var a in t)a in e||(i=!0,delete t[a]);return i}function be(t,e,n,r){Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){return n[r][e]}})}function _e(t,e){for(var n in e)t[n]=e[n];for(var n in t)n in e||delete t[n]}var xe=null;function we(t,e){return(t.__esModule||ct&&"Module"===t[Symbol.toStringTag])&&(t=t.default),l(t)?e.extend(t):t}function ke(t){if(o(t))for(var e=0;edocument.createEvent("Event").timeStamp&&(un=function(){return cn.now()})}var ln=function(t,e){if(t.post){if(!e.post)return 1}else if(e.post)return-1;return t.id-e.id};function fn(){var t,e;for(sn=un(),on=!0,tn.sort(ln),an=0;anan&&tn[n].id>t.id;)n--;tn.splice(n+1,0,t)}else tn.push(t);rn||(rn=!0,De(fn))}}function dn(t,e){if(t){for(var n=Object.create(null),r=ct?Reflect.ownKeys(t):Object.keys(t),o=0;o-1)if(i&&!w(o,"default"))a=!1;else if(""===a||a===S(t)){var u=Rn(String,o.type);(u<0||s-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!d(t)&&t.test(e)}function Jn(t,e){var n=t.cache,r=t.keys,o=t._vnode;for(var i in n){var a=n[i];if(a){var s=a.name;s&&!e(s)&&Qn(n,i,r,o)}}}function Qn(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,_(n,e)}Wn.prototype._init=function(t){var e=this;e._uid=Vn++,e._isVue=!0,e.__v_skip=!0,e._scope=new Bt(!0),e._scope._vm=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=Tn(Hn(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._provided=n?n._provided:Object.create(null),t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&Ge(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,o=n&&n.context;t.$slots=fe(e._renderChildren,o),t.$scopedSlots=n?he(t.$parent,n.data.scopedSlots,t.$slots):r,t._c=function(e,n,r,o){return Ce(t,e,n,r,o,!1)},t.$createElement=function(e,n,r,o){return Ce(t,e,n,r,o,!0)};var i=n&&n.data;Pt(t,"$attrs",i&&i.attrs||r,null,!0),Pt(t,"$listeners",e._parentListeners||r,null,!0)}(e),Ze(e,"beforeCreate",void 0,!1),function(t){var e=dn(t.$options.inject,t);e&&(jt(!1),Object.keys(e).forEach((function(n){Pt(t,n,e[n])})),jt(!0))}(e),Dn(e),function(t){var e=t.$options.provide;if(e){var n=c(e)?e.call(t):e;if(!l(n))return;for(var r=zt(t),o=ct?Reflect.ownKeys(n):Object.keys(n),i=0;i1?E(n):n;for(var r=E(arguments,1),o='event handler for "'.concat(t,'"'),i=0,a=n.length;iparseInt(this.max)&&Qn(t,e[0],e,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)Qn(this.cache,t,this.keys)},mounted:function(){var t=this;this.cacheVNode(),this.$watch("include",(function(e){Jn(t,(function(t){return Xn(e,t)}))})),this.$watch("exclude",(function(e){Jn(t,(function(t){return!Xn(e,t)}))}))},updated:function(){this.cacheVNode()},render:function(){var t=this.$slots.default,e=ke(t),n=e&&e.componentOptions;if(n){var r=Gn(n),o=this.include,i=this.exclude;if(o&&(!r||!Xn(o,r))||i&&r&&Xn(i,r))return e;var a=this.cache,s=this.keys,u=null==e.key?n.Ctor.cid+(n.tag?"::".concat(n.tag):""):e.key;a[u]?(e.componentInstance=a[u].componentInstance,_(s,u),s.push(u)):(this.vnodeToCache=e,this.keyToCache=u),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return z}};Object.defineProperty(t,"config",e),t.util={warn:wn,extend:P,mergeOptions:Tn,defineReactive:Pt},t.set=At,t.delete=Lt,t.nextTick=De,t.observable=function(t){return Et(t),t},t.options=Object.create(null),F.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,P(t.options.components,Zn),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=E(arguments,1);return n.unshift(this),c(t.install)?t.install.apply(t,n):c(t)&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Tn(this.options,t),this}}(t),Kn(t),function(t){F.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&p(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&c(n)&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}(t)}(Wn),Object.defineProperty(Wn.prototype,"$isServer",{get:it}),Object.defineProperty(Wn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Wn,"FunctionalRenderContext",{value:hn}),Wn.version="2.7.14";var tr=y("style,class"),er=y("input,textarea,option,select,progress"),nr=y("contenteditable,draggable,spellcheck"),rr=y("events,caret,typing,plaintext-only"),or=y("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),ir="http://www.w3.org/1999/xlink",ar=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},sr=function(t){return ar(t)?t.slice(6,t.length):""},ur=function(t){return null==t||!1===t};function cr(t){for(var e=t.data,n=t,r=t;a(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=lr(r.data,e));for(;a(n=n.parent);)n&&n.data&&(e=lr(e,n.data));return function(t,e){if(a(t)||a(e))return fr(t,pr(e));return""}(e.staticClass,e.class)}function lr(t,e){return{staticClass:fr(t.staticClass,e.staticClass),class:a(t.class)?[t.class,e.class]:e.class}}function fr(t,e){return t?e?t+" "+e:t:e||""}function pr(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,o=t.length;r-1?Ir(t,e,n):or(e)?ur(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):nr(e)?t.setAttribute(e,function(t,e){return ur(e)||"false"===e?"false":"contenteditable"===t&&rr(e)?e:"true"}(e,n)):ar(e)?ur(n)?t.removeAttributeNS(ir,sr(e)):t.setAttributeNS(ir,e,n):Ir(t,e,n)}function Ir(t,e,n){if(ur(n))t.removeAttribute(e);else{if(J&&!Q&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var Ur={create:Mr,update:Mr};function Dr(t,e){var n=e.elm,r=e.data,o=t.data;if(!(i(r.staticClass)&&i(r.class)&&(i(o)||i(o.staticClass)&&i(o.class)))){var s=cr(e),u=n._transitionClasses;a(u)&&(s=fr(s,pr(u))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var Nr,Fr={create:Dr,update:Dr};function Br(t,e,n){var r=Nr;return function o(){var i=e.apply(null,arguments);null!==i&&Vr(t,o,n,r)}}var zr=Ee&&!(et&&Number(et[1])<=53);function qr(t,e,n,r){if(zr){var o=sn,i=e;e=i._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=o||t.timeStamp<=0||t.target.ownerDocument!==document)return i.apply(this,arguments)}}Nr.addEventListener(t,e,rt?{capture:n,passive:r}:n)}function Vr(t,e,n,r){(r||Nr).removeEventListener(t,e._wrapper||e,n)}function Hr(t,e){if(!i(t.data.on)||!i(e.data.on)){var n=e.data.on||{},r=t.data.on||{};Nr=e.elm||t.elm,function(t){if(a(t.__r)){var e=J?"change":"input";t[e]=[].concat(t.__r,t[e]||[]),delete t.__r}a(t.__c)&&(t.change=[].concat(t.__c,t.change||[]),delete t.__c)}(n),Ht(n,r,qr,Vr,Br,e.context),Nr=void 0}}var Wr,Kr={create:Hr,update:Hr,destroy:function(t){return Hr(t,kr)}};function Gr(t,e){if(!i(t.data.domProps)||!i(e.data.domProps)){var n,r,o=e.elm,u=t.data.domProps||{},c=e.data.domProps||{};for(n in(a(c.__ob__)||s(c._v_attr_proxy))&&(c=e.data.domProps=P({},c)),u)n in c||(o[n]="");for(n in c){if(r=c[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===u[n])continue;1===o.childNodes.length&&o.removeChild(o.childNodes[0])}if("value"===n&&"PROGRESS"!==o.tagName){o._value=r;var l=i(r)?"":String(r);Xr(o,l)&&(o.value=l)}else if("innerHTML"===n&&vr(o.tagName)&&i(o.innerHTML)){(Wr=Wr||document.createElement("div")).innerHTML="".concat(r,"");for(var f=Wr.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;f.firstChild;)o.appendChild(f.firstChild)}else if(r!==u[n])try{o[n]=r}catch(t){}}}}function Xr(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,r=t._vModifiers;if(a(r)){if(r.number)return g(n)!==g(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var Jr={create:Gr,update:Gr},Qr=k((function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach((function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}})),e}));function Yr(t){var e=Zr(t.style);return t.staticStyle?P(t.staticStyle,e):e}function Zr(t){return Array.isArray(t)?A(t):"string"==typeof t?Qr(t):t}var to,eo=/^--/,no=/\s*!important$/,ro=function(t,e,n){if(eo.test(e))t.style.setProperty(e,n);else if(no.test(n))t.style.setProperty(S(e),n.replace(no,""),"important");else{var r=io(e);if(Array.isArray(n))for(var o=0,i=n.length;o-1?e.split(uo).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var n=" ".concat(t.getAttribute("class")||""," ");n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function lo(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(uo).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" ".concat(t.getAttribute("class")||""," "),r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function fo(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&P(e,po(t.name||"v")),P(e,t),e}return"string"==typeof t?po(t):void 0}}var po=k((function(t){return{enterClass:"".concat(t,"-enter"),enterToClass:"".concat(t,"-enter-to"),enterActiveClass:"".concat(t,"-enter-active"),leaveClass:"".concat(t,"-leave"),leaveToClass:"".concat(t,"-leave-to"),leaveActiveClass:"".concat(t,"-leave-active")}})),ho=G&&!Q,vo="transition",mo="transitionend",go="animation",yo="animationend";ho&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(vo="WebkitTransition",mo="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(go="WebkitAnimation",yo="webkitAnimationEnd"));var bo=G?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function _o(t){bo((function(){bo(t)}))}function xo(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),co(t,e))}function wo(t,e){t._transitionClasses&&_(t._transitionClasses,e),lo(t,e)}function ko(t,e,n){var r=Oo(t,e),o=r.type,i=r.timeout,a=r.propCount;if(!o)return n();var s="transition"===o?mo:yo,u=0,c=function(){t.removeEventListener(s,l),n()},l=function(e){e.target===t&&++u>=a&&c()};setTimeout((function(){u0&&(n="transition",l=a,f=i.length):"animation"===e?c>0&&(n="animation",l=c,f=u.length):f=(n=(l=Math.max(a,c))>0?a>c?"transition":"animation":null)?"transition"===n?i.length:u.length:0,{type:n,timeout:l,propCount:f,hasTransform:"transition"===n&&Co.test(r[vo+"Property"])}}function $o(t,e){for(;t.length1}function Ao(t,e){!0!==e.data.show&&So(e)}var Lo=function(t){var e,n,r={},c=t.modules,l=t.nodeOps;for(e=0;eh?_(t,i(n[g+1])?null:n[g+1].elm,n,d,g,r):d>g&&w(e,f,h)}(f,v,g,n,c):a(g)?(a(t.text)&&l.setTextContent(f,""),_(f,null,g,0,g.length-1,n)):a(v)?w(v,0,v.length-1):a(t.text)&&l.setTextContent(f,""):t.text!==e.text&&l.setTextContent(f,e.text),a(h)&&a(d=h.hook)&&a(d=d.postpatch)&&d(t,e)}}}function $(t,e,n){if(s(n)&&a(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r-1,a.selected!==i&&(a.selected=i);else if(I(Do(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));o||(t.selectedIndex=-1)}}function Uo(t,e){return e.every((function(e){return!I(e,t)}))}function Do(t){return"_value"in t?t._value:t.value}function No(t){t.target.composing=!0}function Fo(t){t.target.composing&&(t.target.composing=!1,Bo(t.target,"input"))}function Bo(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function zo(t){return!t.componentInstance||t.data&&t.data.transition?t:zo(t.componentInstance._vnode)}var qo={model:Mo,show:{bind:function(t,e,n){var r=e.value,o=(n=zo(n)).data&&n.data.transition,i=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&o?(n.data.show=!0,So(n,(function(){t.style.display=i}))):t.style.display=r?i:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=zo(n)).data&&n.data.transition?(n.data.show=!0,r?So(n,(function(){t.style.display=t.__vOriginalDisplay})):To(n,(function(){t.style.display="none"}))):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,o){o||(t.style.display=t.__vOriginalDisplay)}}},Vo={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Ho(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Ho(ke(e.children)):t}function Wo(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var o=n._parentListeners;for(var r in o)e[O(r)]=o[r];return e}function Ko(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var Go=function(t){return t.tag||de(t)},Xo=function(t){return"show"===t.name},Jo={name:"transition",props:Vo,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(Go)).length){0;var r=this.mode;0;var o=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return o;var i=Ho(o);if(!i)return o;if(this._leaving)return Ko(t,o);var a="__transition-".concat(this._uid,"-");i.key=null==i.key?i.isComment?a+"comment":a+i.tag:u(i.key)?0===String(i.key).indexOf(a)?i.key:a+i.key:i.key;var s=(i.data||(i.data={})).transition=Wo(this),c=this._vnode,l=Ho(c);if(i.data.directives&&i.data.directives.some(Xo)&&(i.data.show=!0),l&&l.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(i,l)&&!de(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var f=l.data.transition=P({},s);if("out-in"===r)return this._leaving=!0,Wt(f,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),Ko(t,o);if("in-out"===r){if(de(i))return c;var p,d=function(){p()};Wt(s,"afterEnter",d),Wt(s,"enterCancelled",d),Wt(f,"delayLeave",(function(t){p=t}))}}return o}}},Qo=P({tag:String,moveClass:String},Vo);function Yo(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function Zo(t){t.data.newPos=t.elm.getBoundingClientRect()}function ti(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,o=e.top-n.top;if(r||o){t.data.moved=!0;var i=t.elm.style;i.transform=i.WebkitTransform="translate(".concat(r,"px,").concat(o,"px)"),i.transitionDuration="0s"}}delete Qo.mode;var ei={Transition:Jo,TransitionGroup:{props:Qo,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var o=Je(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,o(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],i=this.children=[],a=Wo(this),s=0;s-1?gr[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:gr[t]=/HTMLUnknownElement/.test(e.toString())},P(Wn.options.directives,qo),P(Wn.options.components,ei),Wn.prototype.__patch__=G?Lo:L,Wn.prototype.$mount=function(t,e){return function(t,e,n){var r;t.$el=e,t.$options.render||(t.$options.render=dt),Ze(t,"beforeMount"),r=function(){t._update(t._render(),n)},new Ve(t,r,L,{before:function(){t._isMounted&&!t._isDestroyed&&Ze(t,"beforeUpdate")}},!0),n=!1;var o=t._preWatchers;if(o)for(var i=0;i=0&&(e=t.slice(r),t=t.slice(0,r));var o=t.indexOf("?");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{path:t,query:n,hash:e}}(o.path||""),c=e&&e.path||"/",l=u.path?wi(u.path,c,n||o.append):c,f=function(t,e,n){void 0===e&&(e={});var r,o=n||ci;try{r=o(t||"")}catch(t){r={}}for(var i in e){var a=e[i];r[i]=Array.isArray(a)?a.map(ui):ui(a)}return r}(u.query,o.query,r&&r.options.parseQuery),p=o.hash||u.hash;return p&&"#"!==p.charAt(0)&&(p="#"+p),{_normalized:!0,path:l,query:f,hash:p}}var qi,Vi=function(){},Hi={name:"RouterLink",props:{to:{type:[String,Object],required:!0},tag:{type:String,default:"a"},custom:Boolean,exact:Boolean,exactPath:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,ariaCurrentValue:{type:String,default:"page"},event:{type:[String,Array],default:"click"}},render:function(t){var e=this,n=this.$router,r=this.$route,o=n.resolve(this.to,r,this.append),i=o.location,a=o.route,s=o.href,u={},c=n.options.linkActiveClass,l=n.options.linkExactActiveClass,f=null==c?"router-link-active":c,p=null==l?"router-link-exact-active":l,d=null==this.activeClass?f:this.activeClass,h=null==this.exactActiveClass?p:this.exactActiveClass,v=a.redirectedFrom?pi(null,zi(a.redirectedFrom),null,n):a;u[h]=gi(r,v,this.exactPath),u[d]=this.exact||this.exactPath?u[h]:function(t,e){return 0===t.path.replace(fi,"/").indexOf(e.path.replace(fi,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var n in e)if(!(n in t))return!1;return!0}(t.query,e.query)}(r,v);var m=u[h]?this.ariaCurrentValue:null,g=function(t){Wi(t)&&(e.replace?n.replace(i,Vi):n.push(i,Vi))},y={click:Wi};Array.isArray(this.event)?this.event.forEach((function(t){y[t]=g})):y[this.event]=g;var b={class:u},_=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:s,route:a,navigate:g,isActive:u[d],isExactActive:u[h]});if(_){if(1===_.length)return _[0];if(_.length>1||!_.length)return 0===_.length?t():t("span",{},_)}if("a"===this.tag)b.on=y,b.attrs={href:s,"aria-current":m};else{var x=function t(e){var n;if(e)for(var r=0;r-1&&(s.params[p]=n.params[p]);return s.path=Bi(l.path,s.params),u(l,s,a)}if(s.path){s.params={};for(var d=0;d-1}function ka(t,e){return wa(t)&&t._isRouter&&(null==e||t.type===e)}function Ca(t,e,n){var r=function(o){o>=t.length?n():t[o]?e(t[o],(function(){r(o+1)})):r(o+1)};r(0)}function Oa(t){return function(e,n,r){var o=!1,i=0,a=null;$a(t,(function(t,e,n,s){if("function"==typeof t&&void 0===t.cid){o=!0,i++;var u,c=Ta((function(e){var o;((o=e).__esModule||Sa&&"Module"===o[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:qi.extend(e),n.components[s]=e,--i<=0&&r()})),l=Ta((function(t){var e="Failed to resolve async component "+s+": "+t;a||(a=wa(t)?t:new Error(e),r(a))}));try{u=t(c,l)}catch(t){l(t)}if(u)if("function"==typeof u.then)u.then(c,l);else{var f=u.component;f&&"function"==typeof f.then&&f.then(c,l)}}})),o||r()}}function $a(t,e){return ja(t.map((function(t){return Object.keys(t.components).map((function(n){return e(t.components[n],t.instances[n],t,n)}))})))}function ja(t){return Array.prototype.concat.apply([],t)}var Sa="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function Ta(t){var e=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var Ea=function(t,e){this.router=t,this.base=function(t){if(!t)if(Ki){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";"/"!==t.charAt(0)&&(t="/"+t);return t.replace(/\/$/,"")}(e),this.current=hi,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function Pa(t,e,n,r){var o=$a(t,(function(t,r,o,i){var a=function(t,e){"function"!=typeof t&&(t=qi.extend(t));return t.options[e]}(t,e);if(a)return Array.isArray(a)?a.map((function(t){return n(t,r,o,i)})):n(a,r,o,i)}));return ja(r?o.reverse():o)}function Aa(t,e){if(e)return function(){return t.apply(e,arguments)}}Ea.prototype.listen=function(t){this.cb=t},Ea.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},Ea.prototype.onError=function(t){this.errorCbs.push(t)},Ea.prototype.transitionTo=function(t,e,n){var r,o=this;try{r=this.router.match(t,this.current)}catch(t){throw this.errorCbs.forEach((function(e){e(t)})),t}var i=this.current;this.confirmTransition(r,(function(){o.updateRoute(r),e&&e(r),o.ensureURL(),o.router.afterHooks.forEach((function(t){t&&t(r,i)})),o.ready||(o.ready=!0,o.readyCbs.forEach((function(t){t(r)})))}),(function(t){n&&n(t),t&&!o.ready&&(ka(t,ga.redirected)&&i===hi||(o.ready=!0,o.readyErrorCbs.forEach((function(e){e(t)}))))}))},Ea.prototype.confirmTransition=function(t,e,n){var r=this,o=this.current;this.pending=t;var i,a,s=function(t){!ka(t)&&wa(t)&&(r.errorCbs.length?r.errorCbs.forEach((function(e){e(t)})):console.error(t)),n&&n(t)},u=t.matched.length-1,c=o.matched.length-1;if(gi(t,o)&&u===c&&t.matched[u]===o.matched[c])return this.ensureURL(),t.hash&&ia(this.router,o,t,!1),s(((a=_a(i=o,t,ga.duplicated,'Avoided redundant navigation to current location: "'+i.fullPath+'".')).name="NavigationDuplicated",a));var l=function(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n0)){var e=this.router,n=e.options.scrollBehavior,r=ha&&n;r&&this.listeners.push(oa());var o=function(){var n=t.current,o=Ma(t.base);t.current===hi&&o===t._startLocation||t.transitionTo(o,(function(t){r&&ia(e,t,n,!0)}))};window.addEventListener("popstate",o),this.listeners.push((function(){window.removeEventListener("popstate",o)}))}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){va(ki(r.base+t.fullPath)),ia(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){ma(ki(r.base+t.fullPath)),ia(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.ensureURL=function(t){if(Ma(this.base)!==this.current.fullPath){var e=ki(this.base+this.current.fullPath);t?va(e):ma(e)}},e.prototype.getCurrentLocation=function(){return Ma(this.base)},e}(Ea);function Ma(t){var e=window.location.pathname,n=e.toLowerCase(),r=t.toLowerCase();return!t||n!==r&&0!==n.indexOf(ki(r+"/"))||(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var Ra=function(t){function e(e,n,r){t.call(this,e,n),r&&function(t){var e=Ma(t);if(!/^\/#/.test(e))return window.location.replace(ki(t+"/#"+e)),!0}(this.base)||Ia()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router.options.scrollBehavior,n=ha&&e;n&&this.listeners.push(oa());var r=function(){var e=t.current;Ia()&&t.transitionTo(Ua(),(function(r){n&&ia(t.router,r,e,!0),ha||Fa(r.fullPath)}))},o=ha?"popstate":"hashchange";window.addEventListener(o,r),this.listeners.push((function(){window.removeEventListener(o,r)}))}},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){Na(t.fullPath),ia(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,(function(t){Fa(t.fullPath),ia(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;Ua()!==e&&(t?Na(e):Fa(e))},e.prototype.getCurrentLocation=function(){return Ua()},e}(Ea);function Ia(){var t=Ua();return"/"===t.charAt(0)||(Fa("/"+t),!1)}function Ua(){var t=window.location.href,e=t.indexOf("#");return e<0?"":t=t.slice(e+1)}function Da(t){var e=window.location.href,n=e.indexOf("#");return(n>=0?e.slice(0,n):e)+"#"+t}function Na(t){ha?va(Da(t)):window.location.hash=t}function Fa(t){ha?ma(Da(t)):window.location.replace(Da(t))}var Ba=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)}),n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,(function(){var t=e.current;e.index=n,e.updateRoute(r),e.router.afterHooks.forEach((function(e){e&&e(r,t)}))}),(function(t){ka(t,ga.duplicated)&&(e.index=n)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(Ea),za=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Ji(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!ha&&!1!==t.fallback,this.fallback&&(e="hash"),Ki||(e="abstract"),this.mode=e,e){case"history":this.history=new La(this,t.base);break;case"hash":this.history=new Ra(this,t.base,this.fallback);break;case"abstract":this.history=new Ba(this,t.base);break;default:0}},qa={currentRoute:{configurable:!0}};za.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},qa.currentRoute.get=function(){return this.history&&this.history.current},za.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",(function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null),e.app||e.history.teardown()})),!this.app){this.app=t;var n=this.history;if(n instanceof La||n instanceof Ra){var r=function(t){n.setupListeners(),function(t){var r=n.current,o=e.options.scrollBehavior;ha&&o&&"fullPath"in t&&ia(e,t,r,!1)}(t)};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},za.prototype.beforeEach=function(t){return Ha(this.beforeHooks,t)},za.prototype.beforeResolve=function(t){return Ha(this.resolveHooks,t)},za.prototype.afterEach=function(t){return Ha(this.afterHooks,t)},za.prototype.onReady=function(t,e){this.history.onReady(t,e)},za.prototype.onError=function(t){this.history.onError(t)},za.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise((function(e,n){r.history.push(t,e,n)}));this.history.push(t,e,n)},za.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise((function(e,n){r.history.replace(t,e,n)}));this.history.replace(t,e,n)},za.prototype.go=function(t){this.history.go(t)},za.prototype.back=function(){this.go(-1)},za.prototype.forward=function(){this.go(1)},za.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},za.prototype.resolve=function(t,e,n){var r=zi(t,e=e||this.history.current,n,this),o=this.match(r,e),i=o.redirectedFrom||o.fullPath;return{location:r,route:o,href:function(t,e,n){var r="hash"===n?"#"+e:e;return t?ki(t+"/"+r):r}(this.history.base,i,this.mode),normalizedTo:r,resolved:o}},za.prototype.getRoutes=function(){return this.matcher.getRoutes()},za.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==hi&&this.history.transitionTo(this.history.getCurrentLocation())},za.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==hi&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(za.prototype,qa);var Va=za;function Ha(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}za.install=function t(e){if(!t.installed||qi!==e){t.installed=!0,qi=e;var n=function(t){return void 0!==t},r=function(t,e){var r=t.$options._parentVnode;n(r)&&n(r=r.data)&&n(r=r.registerRouteInstance)&&r(t,e)};e.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,r(this,this)},destroyed:function(){r(this)}}),Object.defineProperty(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("RouterView",_i),e.component("RouterLink",Hi);var o=e.config.optionMergeStrategies;o.beforeRouteEnter=o.beforeRouteLeave=o.beforeRouteUpdate=o.created}},za.version="3.6.5",za.isNavigationFailure=ka,za.NavigationFailureType=ga,za.START_LOCATION=hi,Ki&&window.Vue&&window.Vue.use(za);n(96);n(92),n(128);var Wa={NotFound:()=>n.e(6).then(n.bind(null,280)),Layout:()=>Promise.all([n.e(0),n.e(2)]).then(n.bind(null,279))},Ka={"v-49ef63ff":()=>n.e(10).then(n.bind(null,283)),"v-65455d52":()=>n.e(11).then(n.bind(null,284)),"v-5f99fff9":()=>n.e(13).then(n.bind(null,285)),"v-cf184462":()=>n.e(7).then(n.bind(null,286)),"v-7813dc19":()=>n.e(12).then(n.bind(null,287)),"v-75b0c0ff":()=>n.e(14).then(n.bind(null,288)),"v-7e7f881f":()=>n.e(17).then(n.bind(null,289)),"v-61821d87":()=>n.e(16).then(n.bind(null,290)),"v-031147ce":()=>n.e(9).then(n.bind(null,291)),"v-2a284842":()=>n.e(15).then(n.bind(null,292)),"v-01c7100e":()=>n.e(21).then(n.bind(null,293)),"v-8a6ff24e":()=>n.e(22).then(n.bind(null,294)),"v-ff770e42":()=>n.e(23).then(n.bind(null,295)),"v-570f3d19":()=>n.e(19).then(n.bind(null,296)),"v-3f415241":()=>n.e(20).then(n.bind(null,297)),"v-440298ff":()=>n.e(8).then(n.bind(null,298)),"v-4371f14e":()=>n.e(18).then(n.bind(null,299)),"v-82155162":()=>n.e(24).then(n.bind(null,300))};function Ga(t){const e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}const Xa=/-(\w)/g,Ja=Ga(t=>t.replace(Xa,(t,e)=>e?e.toUpperCase():"")),Qa=/\B([A-Z])/g,Ya=Ga(t=>t.replace(Qa,"-$1").toLowerCase()),Za=Ga(t=>t.charAt(0).toUpperCase()+t.slice(1));function ts(t,e){if(!e)return;if(t(e))return t(e);return e.includes("-")?t(Za(Ja(e))):t(Za(e))||t(Ya(e))}const es=Object.assign({},Wa,Ka),ns=t=>es[t],rs=t=>Ka[t],os=t=>Wa[t],is=t=>Wn.component(t);function as(t){return ts(rs,t)}function ss(t){return ts(os,t)}function us(t){return ts(ns,t)}function cs(t){return ts(is,t)}function ls(...t){return Promise.all(t.filter(t=>t).map(async t=>{if(!cs(t)&&us(t)){const e=await us(t)();Wn.component(t,e.default)}}))}function fs(t,e){"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[t]=e)}var ps=n(90),ds=n.n(ps),hs=n(91),vs=n.n(hs),ms={created(){if(this.siteMeta=this.$site.headTags.filter(([t])=>"meta"===t).map(([t,e])=>e),this.$ssrContext){const e=this.getMergedMetaTags();this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.pageMeta=(t=e)?t.map(t=>{let e="{e+=` ${n}="${vs()(t[n])}"`}),e+">"}).join("\n "):"",this.$ssrContext.canonicalLink=ys(this.$canonicalUrl)}var t},mounted(){this.currentMetaTags=[...document.querySelectorAll("meta")],this.updateMeta(),this.updateCanonicalLink()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const t=this.getMergedMetaTags();this.currentMetaTags=bs(t,this.currentMetaTags)},getMergedMetaTags(){const t=this.$page.frontmatter.meta||[];return ds()([{name:"description",content:this.$description}],t,this.siteMeta,_s)},updateCanonicalLink(){gs(),this.$canonicalUrl&&document.head.insertAdjacentHTML("beforeend",ys(this.$canonicalUrl))}},watch:{$page(){this.updateMeta(),this.updateCanonicalLink()}},beforeDestroy(){bs(null,this.currentMetaTags),gs()}};function gs(){const t=document.querySelector("link[rel='canonical']");t&&t.remove()}function ys(t=""){return t?``:""}function bs(t,e){if(e&&[...e].filter(t=>t.parentNode===document.head).forEach(t=>document.head.removeChild(t)),t)return t.map(t=>{const e=document.createElement("meta");return Object.keys(t).forEach(n=>{e.setAttribute(n,t[n])}),document.head.appendChild(e),e})}function _s(t){for(const e of["name","property","itemprop"])if(t.hasOwnProperty(e))return t[e]+e;return JSON.stringify(t)}var xs=n(23),ws=n.n(xs),ks={mounted(){window.addEventListener("scroll",this.onScroll)},methods:{onScroll:ws()((function(){this.setActiveHash()}),300),setActiveHash(){const t=[].slice.call(document.querySelectorAll(".sidebar-link")),e=[].slice.call(document.querySelectorAll(".header-anchor")).filter(e=>t.some(t=>t.hash===e.hash)),n=Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop),r=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),o=window.innerHeight+n;for(let t=0;t=i.parentElement.offsetTop+10&&(!a||n{this.$nextTick(()=>{this.$vuepress.$set("disableScrollBehavior",!1)})})}}}},beforeDestroy(){window.removeEventListener("scroll",this.onScroll)}},Cs=n(24),Os=n.n(Cs),$s={mounted(){Os.a.configure({showSpinner:!1}),this.$router.beforeEach((t,e,n)=>{t.path===e.path||Wn.component(t.name)||Os.a.start(),n()}),this.$router.afterEach(()=>{Os.a.done(),this.isSidebarOpen=!1})}},js={props:{parent:Object,code:String,options:{align:String,color:String,backgroundTransition:Boolean,backgroundColor:String,successText:String,staticIcon:Boolean}},data:()=>({success:!1,originalBackground:null,originalTransition:null}),computed:{alignStyle(){let t={};return t[this.options.align]="7.5px",t},iconClass(){return this.options.staticIcon?"":"hover"}},mounted(){this.originalTransition=this.parent.style.transition,this.originalBackground=this.parent.style.background},beforeDestroy(){this.parent.style.transition=this.originalTransition,this.parent.style.background=this.originalBackground},methods:{hexToRgb(t){let e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return e?{r:parseInt(e[1],16),g:parseInt(e[2],16),b:parseInt(e[3],16)}:null},copyToClipboard(t){if(navigator.clipboard)navigator.clipboard.writeText(this.code).then(()=>{this.setSuccessTransitions()},()=>{});else{let t=document.createElement("textarea");document.body.appendChild(t),t.value=this.code,t.select(),document.execCommand("Copy"),t.remove(),this.setSuccessTransitions()}},setSuccessTransitions(){if(clearTimeout(this.successTimeout),this.options.backgroundTransition){this.parent.style.transition="background 350ms";let t=this.hexToRgb(this.options.backgroundColor);this.parent.style.background=`rgba(${t.r}, ${t.g}, ${t.b}, 0.1)`}this.success=!0,this.successTimeout=setTimeout(()=>{this.options.backgroundTransition&&(this.parent.style.background=this.originalBackground,this.parent.style.transition=this.originalTransition),this.success=!1},500)}}},Ss=(n(234),n(7)),Ts=Object(Ss.a)(js,(function(){var t=this,e=t._self._c;return e("div",{staticClass:"code-copy"},[e("svg",{class:t.iconClass,style:t.alignStyle,attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},on:{click:t.copyToClipboard}},[e("path",{attrs:{fill:"none",d:"M0 0h24v24H0z"}}),t._v(" "),e("path",{attrs:{fill:t.options.color,d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm-1 4l6 6v10c0 1.1-.9 2-2 2H7.99C6.89 23 6 22.1 6 21l.01-14c0-1.1.89-2 1.99-2h7zm-1 7h5.5L14 6.5V12z"}})]),t._v(" "),e("span",{class:t.success?"success":"",style:t.alignStyle},[t._v("\n "+t._s(t.options.successText)+"\n ")])])}),[],!1,null,"56cbd8b4",null).exports,Es=(n(235),[ms,ks,$s,{updated(){this.update()},methods:{update(){setTimeout(()=>{document.querySelectorAll('div[class*="language-"] pre').forEach(t=>{if(t.classList.contains("code-copy-added"))return;let e=new(Wn.extend(Ts));e.options={align:"bottom",color:"#27b1ff",backgroundTransition:!0,backgroundColor:"#0075b8",successText:"Copied!",staticIcon:!1},e.code=t.innerText,e.parent=t,e.$mount(),t.classList.add("code-copy-added"),t.appendChild(e.$el)})},100)}}}]),Ps={name:"GlobalLayout",computed:{layout(){const t=this.getLayout();return fs("layout",t),Wn.component(t)}},methods:{getLayout(){if(this.$page.path){const t=this.$page.frontmatter.layout;return t&&(this.$vuepress.getLayoutAsyncComponent(t)||this.$vuepress.getVueComponent(t))?t:"Layout"}return"NotFound"}}},As=Object(Ss.a)(Ps,(function(){return(0,this._self._c)(this.layout,{tag:"component"})}),[],!1,null,null,null).exports;!function(t,e,n){switch(e){case"components":t[e]||(t[e]={}),Object.assign(t[e],n);break;case"mixins":t[e]||(t[e]=[]),t[e].push(...n);break;default:throw new Error("Unknown option name.")}}(As,"mixins",Es);const Ls=[{name:"v-49ef63ff",path:"/faq/faq.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-49ef63ff").then(n)}},{name:"v-65455d52",path:"/install-tutorial/custom-installation.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-65455d52").then(n)}},{name:"v-5f99fff9",path:"/install-tutorial/installation.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-5f99fff9").then(n)}},{name:"v-cf184462",path:"/",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-cf184462").then(n)}},{path:"/index.html",redirect:"/"},{name:"v-7813dc19",path:"/install-tutorial/docker-compose.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-7813dc19").then(n)}},{name:"v-75b0c0ff",path:"/sdk/sdk.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-75b0c0ff").then(n)}},{name:"v-7e7f881f",path:"/tutorial/client-config.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-7e7f881f").then(n)}},{name:"v-61821d87",path:"/start/system-structure.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-61821d87").then(n)}},{name:"v-031147ce",path:"/change/change-log.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-031147ce").then(n)}},{name:"v-2a284842",path:"/start/introduce.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-2a284842").then(n)}},{name:"v-01c7100e",path:"/tutorial/performance-tuning.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-01c7100e").then(n)}},{name:"v-8a6ff24e",path:"/tutorial/recommend-tool.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-8a6ff24e").then(n)}},{name:"v-ff770e42",path:"/tutorial/using-cdn.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-ff770e42").then(n)}},{name:"v-570f3d19",path:"/tutorial/des-of-related-doc.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-570f3d19").then(n)}},{name:"v-3f415241",path:"/tutorial/performance-testing.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-3f415241").then(n)}},{name:"v-440298ff",path:"/api/api.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-440298ff").then(n)}},{name:"v-4371f14e",path:"/tutorial/common-problem.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-4371f14e").then(n)}},{name:"v-82155162",path:"/tutorial/using-tutorials.html",component:As,beforeEnter:(t,e,n)=>{ls("Layout","v-82155162").then(n)}},{path:"*",component:As}],Ms={title:"Trojan Panel",description:"支持Xray/Trojan-Go/Hysteria/NaiveProxy的多用户Web管理面板",base:"/",headTags:[["link",{rel:"icon",href:"logo.png"}],["script",{},'\n var _hmt = _hmt || [];\n(function() {\n var hm = document.createElement("script");\n hm.src = "https://hm.baidu.com/hm.js?37275f991707c27db91dbb6f668ee1c6";\n var s = document.getElementsByTagName("script")[0]; \n s.parentNode.insertBefore(hm, s);\n})();\n'],["script",{async:!0,src:"https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-9763379843362753",crossorigin:"anonymous"}]],pages:[{title:"FAQ",frontmatter:{},regularPath:"/faq/faq.html",relativePath:"faq/faq.md",key:"v-49ef63ff",path:"/faq/faq.html",headers:[{level:2,title:"联机和单机有什么区别?",slug:"联机和单机有什么区别"},{level:2,title:"是否考虑支持商业化功能?",slug:"是否考虑支持商业化功能"},{level:2,title:"会收费么?",slug:"会收费么"},{level:2,title:"是否开源?",slug:"是否开源"}],lastUpdated:"8/6/2023, 12:08:11 AM",lastUpdatedTimestamp:1691251691e3},{title:"手动安装教程",frontmatter:{},regularPath:"/install-tutorial/custom-installation.html",relativePath:"install-tutorial/custom-installation.md",key:"v-65455d52",path:"/install-tutorial/custom-installation.html",headers:[{level:2,title:"准备",slug:"准备"},{level:2,title:"安装Docker",slug:"安装docker"},{level:2,title:"安装Caddy2",slug:"安装caddy2"},{level:2,title:"安装MariaDB",slug:"安装mariadb"},{level:2,title:"安装Redis",slug:"安装redis"},{level:2,title:"安装Trojan Panel Backend",slug:"安装trojan-panel-backend"},{level:2,title:"安装Trojan Panel Frontend",slug:"安装trojan-panel-frontend"},{level:2,title:"安装Trojan Panel Core",slug:"安装trojan-panel-core"}],lastUpdated:"8/24/2023, 12:49:36 AM",lastUpdatedTimestamp:1692809376e3},{title:"自动安装教程",frontmatter:{},regularPath:"/install-tutorial/installation.html",relativePath:"install-tutorial/installation.md",key:"v-5f99fff9",path:"/install-tutorial/installation.html",headers:[{level:2,title:"准备",slug:"准备"},{level:2,title:"一键安装脚本",slug:"一键安装脚本"},{level:2,title:"安装Trojan Panel",slug:"安装trojan-panel"},{level:2,title:"安装Trojan Panel Core",slug:"安装trojan-panel-core"}],lastUpdated:"8/24/2023, 12:48:43 AM",lastUpdatedTimestamp:1692809323e3},{title:"Home",frontmatter:{home:!0,heroImage:"/logo.png",heroText:"Trojan Panel",tagline:"支持Xray/Trojan-Go/Hysteria/NaiveProxy的多用户Web管理面板",actionText:"快速上手 →",actionLink:"./start/introduce",features:[{title:"极速搭建",details:"一键安装脚本,降低部署门槛,快速搭建系统"},{title:"国际化",details:"系统语言支持中文/English/한국인/فارسی"},{title:"多代理支持",details:"节点类型支持Xray/Trojan-Go/Hysteria/NaiveProxy"},{title:"分布式",details:"前后端分离开发,减少模块之间耦合度,可以自由组合部署在多个服务器"},{title:"功能强大",details:"支持登录注册/用户管理/节点管理/邮件管理/黑名单管理/自定义伪装网站/系统看板等"},{title:"所见即所得",details:"支持多节点管理,自动化管理远程节点,自动化申请/续签证书,面板内编辑节点,远程服务实时修改节点配置"}],footer:"Copyright © 2021-2023 Trojan Panel"},regularPath:"/",relativePath:"README.md",key:"v-cf184462",path:"/",headers:[{level:2,title:"🚀 安装",slug:"🚀-安装"},{level:2,title:"✨ Community",slug:"✨-community"},{level:2,title:"🔍 报告缺陷与问题",slug:"🔍-报告缺陷与问题"},{level:2,title:"💞 支持",slug:"💞-支持"},{level:2,title:"🌟 Star随时间变化",slug:"🌟-star随时间变化"}],lastUpdated:"8/6/2023, 12:39:47 AM",lastUpdatedTimestamp:1691253587e3},{title:"Docker Compose方式安装",frontmatter:{},regularPath:"/install-tutorial/docker-compose.html",relativePath:"install-tutorial/docker-compose.md",key:"v-7813dc19",path:"/install-tutorial/docker-compose.html",headers:[{level:2,title:"准备",slug:"准备"},{level:3,title:"设置伪装网站",slug:"设置伪装网站"},{level:3,title:"新建Caddy配置文件",slug:"新建caddy配置文件"},{level:3,title:"新建Nginx配置文件",slug:"新建nginx配置文件"},{level:2,title:"配置文件",slug:"配置文件"},{level:2,title:"部署",slug:"部署"}],lastUpdated:"8/11/2023, 5:04:23 PM",lastUpdatedTimestamp:1691744663e3},{title:"Core SDK",frontmatter:{},regularPath:"/sdk/sdk.html",relativePath:"sdk/sdk.md",key:"v-75b0c0ff",path:"/sdk/sdk.html",lastUpdated:"8/6/2023, 12:39:47 AM",lastUpdatedTimestamp:1691253587e3},{title:"客户端配置",frontmatter:{},regularPath:"/tutorial/client-config.html",relativePath:"tutorial/client-config.md",key:"v-7e7f881f",path:"/tutorial/client-config.html",headers:[{level:2,title:"v2rayN",slug:"v2rayn"},{level:3,title:"配置Hysteria(Windows)",slug:"配置hysteria-windows"},{level:3,title:"配置NaiveProxy(Windows)",slug:"配置naiveproxy-windows"},{level:2,title:"Qv2ray",slug:"qv2ray"},{level:3,title:"配置Trojan-Go(Windows)",slug:"配置trojan-go-windows"},{level:3,title:"配置Trojan(Windows)",slug:"配置trojan-windows"},{level:3,title:"配置NaiveProxy(Windows)",slug:"配置naiveproxy-windows-2"},{level:3,title:"配置SS/SSR(Windows)",slug:"配置ss-ssr-windows"}],lastUpdated:"3/20/2023, 6:14:44 PM",lastUpdatedTimestamp:1679307284e3},{title:"架构设计",frontmatter:{},regularPath:"/start/system-structure.html",relativePath:"start/system-structure.md",key:"v-61821d87",path:"/start/system-structure.html",lastUpdated:"11/7/2022, 3:25:40 PM",lastUpdatedTimestamp:166780594e4},{title:"更新日志",frontmatter:{},regularPath:"/change/change-log.html",relativePath:"change/change-log.md",key:"v-031147ce",path:"/change/change-log.html",headers:[{level:2,title:"2023.07.08 帝江",slug:"_2023-07-08-帝江"},{level:2,title:"2023.03.31 穷奇",slug:"_2023-03-31-穷奇"},{level:2,title:"2022.12.29 麒麟",slug:"_2022-12-29-麒麟"},{level:2,title:"2022.11.08 饕餮",slug:"_2022-11-08-饕餮"},{level:2,title:"2022.05.16 伏羲",slug:"_2022-05-16-伏羲"},{level:2,title:"2022.02.10 盘古",slug:"_2022-02-10-盘古"}],lastUpdated:"8/6/2023, 12:39:47 AM",lastUpdatedTimestamp:1691253587e3},{title:"介绍",frontmatter:{},regularPath:"/start/introduce.html",relativePath:"start/introduce.md",key:"v-2a284842",path:"/start/introduce.html",lastUpdated:"12/4/2022, 12:16:18 AM",lastUpdatedTimestamp:1670084178e3},{title:"性能调优",frontmatter:{},regularPath:"/tutorial/performance-tuning.html",relativePath:"tutorial/performance-tuning.md",key:"v-01c7100e",path:"/tutorial/performance-tuning.html",headers:[{level:2,title:"定时重启",slug:"定时重启"},{level:2,title:"网络加速",slug:"网络加速"}],lastUpdated:"8/24/2023, 12:36:58 AM",lastUpdatedTimestamp:1692808618e3},{title:"工具推荐",frontmatter:{},regularPath:"/tutorial/recommend-tool.html",relativePath:"tutorial/recommend-tool.md",key:"v-8a6ff24e",path:"/tutorial/recommend-tool.html",headers:[{level:2,title:"客户端",slug:"客户端"},{level:3,title:"Xray",slug:"xray"},{level:3,title:"Trojan-gfw & Trojan-go",slug:"trojan-gfw-trojan-go"},{level:3,title:"Hysteria",slug:"hysteria"},{level:2,title:"申请免费证书",slug:"申请免费证书"}],lastUpdated:"8/24/2023, 12:48:43 AM",lastUpdatedTimestamp:1692809323e3},{title:"使用CDN",frontmatter:{},regularPath:"/tutorial/using-cdn.html",relativePath:"tutorial/using-cdn.md",key:"v-ff770e42",path:"/tutorial/using-cdn.html",headers:[{level:2,title:"Cloudflare",slug:"cloudflare"}],lastUpdated:"12/29/2022, 10:06:02 AM",lastUpdatedTimestamp:1672279562e3},{title:"相关说明",frontmatter:{},regularPath:"/tutorial/des-of-related-doc.html",relativePath:"tutorial/des-of-related-doc.md",key:"v-570f3d19",path:"/tutorial/des-of-related-doc.html",headers:[{level:2,title:"文件路径",slug:"文件路径"},{level:2,title:"Xray",slug:"xray"},{level:2,title:"Clash",slug:"clash"}],lastUpdated:"5/8/2023, 11:21:24 AM",lastUpdatedTimestamp:1683516084e3},{title:"性能测试",frontmatter:{},regularPath:"/tutorial/performance-testing.html",relativePath:"tutorial/performance-testing.md",key:"v-3f415241",path:"/tutorial/performance-testing.html",lastUpdated:"11/7/2022, 3:25:40 PM",lastUpdatedTimestamp:166780594e4},{title:"API文档",frontmatter:{},regularPath:"/api/api.html",relativePath:"api/api.md",key:"v-440298ff",path:"/api/api.html",headers:[{level:2,title:"开发前必读",slug:"开发前必读"},{level:2,title:"开放接口",slug:"开放接口"},{level:3,title:"验证码",slug:"验证码"},{level:3,title:"登录",slug:"登录"},{level:3,title:"注册",slug:"注册"},{level:3,title:"系统默认设置",slug:"系统默认设置"},{level:3,title:"订阅",slug:"订阅"},{level:3,title:"logo",slug:"logo"},{level:2,title:"首页",slug:"首页"},{level:3,title:"仪表板",slug:"仪表板"},{level:3,title:"流量排行榜",slug:"流量排行榜"},{level:2,title:"账户",slug:"账户"},{level:3,title:"注销",slug:"注销"},{level:3,title:"查询单个账户",slug:"查询单个账户"},{level:3,title:"创建账户",slug:"创建账户"},{level:3,title:"获取当前账户信息",slug:"获取当前账户信息"},{level:3,title:"分页查询账户",slug:"分页查询账户"},{level:3,title:"通过id删除账户",slug:"通过id删除账户"},{level:3,title:"修改密码",slug:"修改密码"},{level:3,title:"修改用户名或者邮箱",slug:"修改用户名或者邮箱"},{level:3,title:"修改账户",slug:"修改账户"},{level:3,title:"获取Clash订阅地址",slug:"获取clash订阅地址"},{level:3,title:"获取指定账户的Clash订阅地址",slug:"获取指定账户的clash订阅地址"},{level:3,title:"重设下载和上传流量",slug:"重设下载和上传流量"},{level:3,title:"导出账户",slug:"导出账户"},{level:3,title:"导入账户",slug:"导入账户"},{level:3,title:"批量创建账户",slug:"批量创建账户"},{level:3,title:"导出未使用的账户",slug:"导出未使用的账户"},{level:2,title:"角色",slug:"角色"},{level:3,title:"查询角色列表",slug:"查询角色列表"},{level:2,title:"服务器",slug:"服务器"},{level:3,title:"根据id查询服务器",slug:"根据id查询服务器"},{level:3,title:"创建服务器",slug:"创建服务器"},{level:3,title:"分页查询服务器",slug:"分页查询服务器"},{level:3,title:"删除服务器",slug:"删除服务器"},{level:3,title:"更新服务器",slug:"更新服务器"},{level:3,title:"查询服务器列表",slug:"查询服务器列表"},{level:3,title:"查询服务器状态",slug:"查询服务器状态"},{level:3,title:"导出服务器",slug:"导出服务器"},{level:3,title:"导入服务器",slug:"导入服务器"},{level:2,title:"节点",slug:"节点"},{level:3,title:"根据id查询节点",slug:"根据id查询节点"},{level:3,title:"查询节点连接信息",slug:"查询节点连接信息"},{level:3,title:"创建节点",slug:"创建节点"},{level:3,title:"分页查询节点",slug:"分页查询节点"},{level:3,title:"删除节点",slug:"删除节点"},{level:3,title:"更新节点",slug:"更新节点"},{level:3,title:"获取节点二维码",slug:"获取节点二维码"},{level:3,title:"复制URL",slug:"复制url"},{level:3,title:"节点部分属性的默认值",slug:"节点部分属性的默认值"},{level:2,title:"节点类型",slug:"节点类型"},{level:3,title:"查询节点类型列表",slug:"查询节点类型列表"},{level:2,title:"系统设置",slug:"系统设置"},{level:3,title:"查询系统设置",slug:"查询系统设置"},{level:3,title:"更新系统配置",slug:"更新系统配置"},{level:3,title:"上传静态网站文件",slug:"上传静态网站文件"},{level:3,title:"上传logo",slug:"上传logo"},{level:2,title:"黑名单",slug:"黑名单"},{level:3,title:"分页查询黑名单",slug:"分页查询黑名单"},{level:3,title:"删除黑名单",slug:"删除黑名单"},{level:3,title:"创建黑名单",slug:"创建黑名单"},{level:2,title:"邮件",slug:"邮件"},{level:3,title:"查询邮件发送记录",slug:"查询邮件发送记录"},{level:2,title:"文件任务",slug:"文件任务"},{level:3,title:"分页查询文件任务",slug:"分页查询文件任务"},{level:3,title:"删除文件任务",slug:"删除文件任务"},{level:3,title:"下载文件任务的文件",slug:"下载文件任务的文件"},{level:3,title:"获取文件模板",slug:"获取文件模板"}],lastUpdated:"8/20/2023, 12:24:00 AM",lastUpdatedTimestamp:169246224e4},{title:"常见问题",frontmatter:{},regularPath:"/tutorial/common-problem.html",relativePath:"tutorial/common-problem.md",key:"v-4371f14e",path:"/tutorial/common-problem.html",headers:[{level:2,title:"搭建失败或系统报错的常见解决方案",slug:"搭建失败或系统报错的常见解决方案"},{level:2,title:"证书申请失败",slug:"证书申请失败"}],lastUpdated:"6/10/2023, 11:41:05 PM",lastUpdatedTimestamp:1686411665e3},{title:"使用教程",frontmatter:{},regularPath:"/tutorial/using-tutorials.html",relativePath:"tutorial/using-tutorials.md",key:"v-82155162",path:"/tutorial/using-tutorials.html",headers:[{level:3,title:"登录/注册",slug:"登录-注册"},{level:2,title:"用户管理",slug:"用户管理"},{level:2,title:"节点管理",slug:"节点管理"},{level:2,title:"用户设置",slug:"用户设置"},{level:2,title:"服务器管理",slug:"服务器管理"},{level:2,title:"系统邮箱设置",slug:"系统邮箱设置"},{level:2,title:"自定义伪装网站",slug:"自定义伪装网站"},{level:2,title:"黑名单管理",slug:"黑名单管理"},{level:2,title:"模板设置",slug:"模板设置"},{level:2,title:"数据统计",slug:"数据统计"},{level:2,title:"小功能",slug:"小功能"}],lastUpdated:"2/16/2023, 11:25:26 AM",lastUpdatedTimestamp:1676517926e3}],themeConfig:{sidebarDepth:3,logo:"/logo.png",lastUpdated:"Last Updated",nav:[{text:"新手起步",link:"/start/introduce"},{text:"相关教程",items:[{text:"安装教程",link:"/install-tutorial/installation"},{text:"使用教程",link:"/tutorial/using-tutorials"}]},{text:"开发文档",items:[{text:"API文档",link:"/api/api"},{text:"Core SDK",link:"/sdk/sdk"}]},{text:"FAQ",link:"/faq/faq"},{text:"更新日志",link:"/change/change-log"},{text:"GitHub",link:"https://github.com/trojanpanel"}],sidebar:{"/start/":["introduce","system-structure"],"/tutorial/":["using-tutorials","des-of-related-doc","common-problem","using-cdn","client-config","recommend-tool","performance-tuning","performance-testing"],"/install-tutorial/":["installation","custom-installation","docker-compose"],"/api/":["api"],"/sdk/":["sdk"],"/faq/":["faq"],"/change/":["change-log"]}}};n(236);Wn.component("Badge",()=>Promise.all([n.e(0),n.e(3)]).then(n.bind(null,301))),Wn.component("CodeBlock",()=>Promise.all([n.e(0),n.e(4)]).then(n.bind(null,281))),Wn.component("CodeGroup",()=>Promise.all([n.e(0),n.e(5)]).then(n.bind(null,282)));n(237);var Rs={name:"BackToTop",props:{threshold:{type:Number,default:300}},data:()=>({scrollTop:null}),computed:{show(){return this.scrollTop>this.threshold}},mounted(){this.scrollTop=this.getScrollTop(),window.addEventListener("scroll",ws()(()=>{this.scrollTop=this.getScrollTop()},100))},methods:{getScrollTop:()=>window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,scrollToTop(){window.scrollTo({top:0,behavior:"smooth"}),this.scrollTop=0}}},Is=(n(238),Object(Ss.a)(Rs,(function(){var t=this._self._c;return t("transition",{attrs:{name:"fade"}},[this.show?t("svg",{staticClass:"go-to-top",attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 49.484 28.284"},on:{click:this.scrollToTop}},[t("g",{attrs:{transform:"translate(-229 -126.358)"}},[t("rect",{attrs:{fill:"currentColor",width:"35",height:"5",rx:"2",transform:"translate(229 151.107) rotate(-45)"}}),this._v(" "),t("rect",{attrs:{fill:"currentColor",width:"35",height:"5",rx:"2",transform:"translate(274.949 154.642) rotate(-135)"}})])]):this._e()])}),[],!1,null,"1c80d7ad",null).exports),Us=[{},({Vue:t})=>{t.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},{},({Vue:t})=>{t.component("BackToTop",Is)},({Vue:t})=>{t.component("CodeCopy",Ts)}],Ds=["BackToTop"];class Ns extends class{constructor(){this.store=new Wn({data:{state:{}}})}$get(t){return this.store.state[t]}$set(t,e){Wn.set(this.store.state,t,e)}$emit(...t){this.store.$emit(...t)}$on(...t){this.store.$on(...t)}}{}Object.assign(Ns.prototype,{getPageAsyncComponent:as,getLayoutAsyncComponent:ss,getAsyncComponent:us,getVueComponent:cs});var Fs={install(t){const e=new Ns;t.$vuepress=e,t.prototype.$vuepress=e}};function Bs(t,e){const n=e.toLowerCase();return t.options.routes.some(t=>t.path.toLowerCase()===n)}var zs={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(t){const e=this.pageKey||this.$parent.$page.key;return fs("pageKey",e),Wn.component(e)||Wn.component(e,as(e)),Wn.component(e)?t(e):t("")}},qs={functional:!0,props:{slotKey:String,required:!0},render:(t,{props:e,slots:n})=>t("div",{class:["content__"+e.slotKey]},n()[e.slotKey])},Vs={computed:{openInNewWindowTitle(){return this.$themeLocaleConfig.openNewWindowText||"(opens new window)"}}},Hs=(n(239),n(240),Object(Ss.a)(Vs,(function(){var t=this._self._c;return t("span",[t("svg",{staticClass:"icon outbound",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"}},[t("path",{attrs:{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}}),this._v(" "),t("polygon",{attrs:{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"}})]),this._v(" "),t("span",{staticClass:"sr-only"},[this._v(this._s(this.openInNewWindowTitle))])])}),[],!1,null,null,null).exports),Ws={functional:!0,render(t,{parent:e,children:n}){if(e._isMounted)return n;e.$once("hook:mounted",()=>{e.$forceUpdate()})}};Wn.config.productionTip=!1,Wn.use(Va),Wn.use(Fs),Wn.mixin(function(t,e,n=Wn){!function(t){t.locales&&Object.keys(t.locales).forEach(e=>{t.locales[e].path=e});Object.freeze(t)}(e),n.$vuepress.$set("siteData",e);const r=new(t(n.$vuepress.$get("siteData"))),o=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),i={};return Object.keys(o).reduce((t,e)=>(e.startsWith("$")&&(t[e]=o[e].get),t),i),{computed:i}}(t=>class{setPage(t){this.__page=t}get $site(){return t}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:t={}}=this.$site;let e,n;for(const r in t)"/"===r?n=t[r]:0===this.$page.path.indexOf(r)&&(e=t[r]);return e||n||{}}get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $canonicalUrl(){const{canonicalUrl:t}=this.$page.frontmatter;return"string"==typeof t&&t}get $title(){const t=this.$page,{metaTitle:e}=this.$page.frontmatter;if("string"==typeof e)return e;const n=this.$siteTitle,r=t.frontmatter.home?null:t.frontmatter.title||t.title;return n?r?r+" | "+n:n:r||"VuePress"}get $description(){const t=function(t){if(t){const e=t.filter(t=>"description"===t.name)[0];if(e)return e.content}}(this.$page.frontmatter.meta);return t||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}get $lang(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}get $localePath(){return this.$localeConfig.path||"/"}get $themeLocaleConfig(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}get $page(){return this.__page?this.__page:function(t,e){for(let n=0;nn||(t.hash?!Wn.$vuepress.$get("disableScrollBehavior")&&{selector:decodeURIComponent(t.hash)}:{x:0,y:0})});!function(t){t.beforeEach((e,n,r)=>{if(Bs(t,e.path))r();else if(/(\/|\.html)$/.test(e.path))if(/\/$/.test(e.path)){const n=e.path.replace(/\/$/,"")+".html";Bs(t,n)?r(n):r()}else r();else{const n=e.path+"/",o=e.path+".html";Bs(t,o)?r(o):Bs(t,n)?r(n):r()}})}(n);const r={};try{await Promise.all(Us.filter(t=>"function"==typeof t).map(e=>e({Vue:Wn,options:r,router:n,siteData:Ms,isServer:t})))}catch(t){console.error(t)}return{app:new Wn(Object.assign(r,{router:n,render:t=>t("div",{attrs:{id:"app"}},[t("RouterView",{ref:"layout"}),t("div",{class:"global-ui"},Ds.map(e=>t(e)))])})),router:n}}(!1).then(({app:t,router:e})=>{e.onReady(()=>{t.$mount("#app")})})}]); \ No newline at end of file diff --git a/docs/change/change-log.html b/docs/change/change-log.html index c056b98..6a6fa7e 100644 --- a/docs/change/change-log.html +++ b/docs/change/change-log.html @@ -18,7 +18,7 @@ - + @@ -56,6 +56,6 @@ GitHub (opens new window)

# 更新日志

# 2023.07.08 帝江v2.1

  1. 新增Nginx反代
  2. 新增Xray reality 移除xtls
  3. 新增修改用户名
  4. 新增验证码登录,增强账户安全
  5. 新增密码输入三次后账户锁定30分钟,增强账户安全
  6. 新增Hysteria混淆密码
  7. 新增vless reality随机生成publicKey/privateKey/shortIds/spiderX
  8. 新增验证码登录开启和关闭选项
  9. 新增批量创建账户和导出未使用账户
  10. 新增账户最后一次登录时间
  11. 新增Hysteria wechat-video
  12. 新增前端单独部署、更新、卸载
  13. 新增自定义前端指定后端的IP和端口
  14. 新增自定义后端IP和端口
  15. 新增自定义内核的IP和端口
  16. 新增不设置证书选项
  17. 新增将后端和内核配置文件夹挂载到宿主机
  18. 新增前端版本号
  19. 新增自定义后端的服务端口
  20. 新增自定义内核的服务端口
  21. 新增在线更换证书选项
  22. 新增忘记密码选项
  23. 新增节点优先级
  24. 新增管理员复制指定账户订阅地址
  25. 新增账户列表排序查询
  26. 新增Hysteria支持SNI 允许不安全 快速打开
  27. 修改证书文件目录至/tpdta/cert/
  28. 修改伪装Web目录至/tpdate/web/
  29. 修改用户和服务器导出csv格式修改为json,格式更加通用
  30. 修改Xray和Clash规则模板长度调整至10240
  31. 移除Xray trojan 流控选项
  32. 修复Shadowsocks加密方式名称
  33. 修复Xray Trojan传输层加密的问题
  34. 修复Copy URL失效的问题
  35. 修复后端和内核更新不用输入数据库和Redis等相关信息
  36. 修复docker compose部署文件
  37. 修复Clash模板字符串长度限制提升到102400
  38. 修复自动化更新数据结构未变化的问题
  39. 升级Xray至v1.8.0,升级Hysteria至v1.3.4
  40. 组件化开发重构前端节点模块代码,对后端和内核代码进行优化,错误处理和必要的资源释放
  41. 优化Clash订阅
  42. 优化Xray分享链接
  43. 优化服务器状态检测逻辑
  44. 优化Xray reality serverNames编辑确认效果
  45. 优化Caddy2故障检测
  46. 将锁换成分布式锁,支持部署多个后端
  47. 优化代码,并发处理,提升系统性能

# 版本对应关系

Install Script Trojan Panel UI Trojan Panel Trojan Panel Core Core SDK Xray Trojan Go Hysteria Caddy(NaiveProxy)
v2.1.8 v2.1.6 v2.1.5 v2.1.2 v0.0.1 v1.8.0 v0.10.6 v1.3.4 v2.6.4

# 2023.03.31 穷奇v2.0

  1. 新增自动化无损升级
  2. 新增Xray模板
  3. 新增Clash规则模板
  4. 新增节点详情
  5. 新增服务器详情
  6. 新增波斯语
  7. 新增节点守护进程
  8. 新增Shadowsocks协议
  9. 新增流控设置
  10. 新增Xray tcp+tls自定义回落
  11. 新增版本查询功能
  12. 新增自定义面板与节点的通信端口
  13. 新增自定义Caddy2端口
  14. 新增旧版本安装
  15. 新增服务器选项框跳转到服务器列表
  16. 新增SQLite作为持久化
  17. 新增服务器管理TP Core版本显示
  18. 新增用户导入和导出
  19. 新增服务器导入和导出
  20. 新增自定义系统名称
  21. 新增自定义Logo
  22. 设置Docker日志文件大小最大值为50m
  23. 设置故障监测默认日志查询级别为error
  24. 设置MariaDB数据库默认编码为utf8mb4
  25. 设置Nginx支持TLSv1.3
  26. 修复一些显示错误和控制台报错
  27. 修复Clash订阅地址 Hysteria连接密码字段错误
  28. 修复弹窗显示异常的Bug
  29. 优化系统归档和更新
  30. 优化节点状态展示
  31. 优化服务器和节点的状态检测逻辑
  32. 升级Xray至v1.7.5,升级Hysteria至v1.3.3,升级Caddy(NaiveProxy)至v2.6.4

# 版本对应关系

Trojan Panel Trojan Panel Core Xray Trojan Go Hysteria Caddy(NaiveProxy)
v2.0.5 v2.0.4 v1.7.5 v0.10.6 v1.3.3 v2.6.4

# 2022.12.29 麒麟v1.3

  1. 新增NaiveProxy节点类型
  2. 新增自定义数据库和Redis端口
  3. 新增重设用户下载和上传流量
  4. 新增关闭流量排行
  5. 新增服务器管理
  6. 新增韩语,更彻底的国际化
  7. 新增服务器信息显示
  8. 新增一键安装NaiveProxy单机版
  9. 新增Trojan Panel前端是否开启https选项
  10. 新增实时修改Trojan Panel前端端口
  11. 修复Trojan-Go复制URL的Bug
  12. 修复Xray tcp+tls 回落地址无法访问
  13. 修复Hysteria单客户端最大上传/下载速度上限为9999999999
  14. 优化订阅链接,支持导出Hysteria
  15. 升级Xray至v1.6.1,升级Hysteria至v1.3.2
  16. 使用Go 1.19.4编译
  17. 将一键安装脚本中Caddy升级至v2.6.2
  18. 优化一键安装脚本故障监测
  19. 新增一键安装脚本自动化升级
  20. 移除一键安装脚本本地IP检测

# 版本对应关系

Trojan Panel Trojan Panel Core Xray Trojan Go Hysteria Caddy(NaiveProxy)
v1.3.1 v1.3.2 v1.6.1 v0.10.6 v1.3.2 v2.6.2

注意

目前支持的NaiveProxy处于测试阶段,只支持用户认证不支持流量统计。

# 2022.11.08 饕餮v1.2

  1. 新增一键安装Trojan Panel Core,远程自动化部署和管理节点
  2. 新增自定义Trojan Panel前端端口
  3. 新增一键刷新Redis缓存
  4. 新增Xray节点类型
  5. 新增Clash订阅
  6. 修改用户密码加密方式
  7. 修改Docker网络模式为Host
  8. 修改日志输出级别
  9. 将单机版一键安装脚本从主脚本中分离
  10. 优化UI界面

# 版本对应关系

Trojan Panel Trojan Panel Core Xray Trojan-Go Hysteria
v1.2.0 v1.2.0 v1.6.0 v0.10.6 v1.2.1

# 2022.05.16 伏羲v1.1

  1. 新增一键安装Redis
  2. 新增一键安装Hysteria
  3. 新增黑名单管理
  4. 新增邮件管理
  5. 新增流量排行
  6. 新增国际化,中/英文切换
  7. 新增系统字体大小设置
  8. 新增全屏显示
  9. 新增一键卸载Caddy TLS
  10. 新增一键卸载MariaDB
  11. 新增一键卸载Redis
  12. 新增一键故障检测
  13. 移除Trojan GFW,支持Hysteria
  14. 优化Trojan-Go,新增Websocket+SS配置
  15. 优化Trojan-Go节点生成的URL
  16. 优化Hysteria,新增单客户端最大上传/下载速度
  17. 引入Redis作为缓存
  18. 支持arm64架构
  19. 使用Docker Hub镜像:trojan-panel-ui (opens new window) & trojan-panel (opens new window)

注意

目前支持的Hysteria处于测试阶段,只支持用户认证不支持流量统计。

# 2022.02.10 盘古v1.0

Hello Trojan Panel

Last Updated: 8/6/2023, 12:39:47 AM
- + diff --git a/docs/faq/faq.html b/docs/faq/faq.html index a3c6923..cb6991a 100644 --- a/docs/faq/faq.html +++ b/docs/faq/faq.html @@ -18,7 +18,7 @@ - + @@ -55,6 +55,6 @@

# FAQ

# 联机和单机有什么区别?

联机:可以使用面板管理多个服务器上的节点,支持多用户,支持流量控制,功能强大,适合多人使用。

单机:只有一个用户,功能简单,适合自用。

# 是否考虑支持商业化功能?

不考虑

# 会收费么?

不会

# 是否开源?

不开源

Last Updated: 8/6/2023, 12:08:11 AM
- + diff --git a/docs/index.html b/docs/index.html index e903041..52d69d4 100644 --- a/docs/index.html +++ b/docs/index.html @@ -18,7 +18,7 @@ - + @@ -65,6 +65,6 @@
  • 安装旧版本 (opens new window)

  • # ✨ Community

    Telegram 频道: Trojan Panel (opens new window)

    # 🔍 报告缺陷与问题

    Issues (opens new window)

    # 💞 支持

    # 🌟 Star随时间变化

    Stargazers over time (opens new window)

    - + diff --git a/docs/install-tutorial/custom-installation.html b/docs/install-tutorial/custom-installation.html index 715c9b8..563a801 100644 --- a/docs/install-tutorial/custom-installation.html +++ b/docs/install-tutorial/custom-installation.html @@ -18,7 +18,7 @@ - + @@ -54,15 +54,15 @@ 更新日志

    # 手动安装教程

    # 准备

    # 安装流程

    Docker -> Caddy -> MariaDB -> Redis -> Trojan Panel -> Trojan Panel UI -> Trojan Panel Core

    # 版本对应关系

    名称 版本
    Docker latest
    Nginx 1.20-alpine
    Caddy 2.6.2
    MariaDB 10.7.3
    Redis 6.2.7
    Trojan Panel UI latest
    Trojan Panel latest
    Trojan Panel Core latest

    # 安装Docker

    Docker官方安装教程:https://docs.docker.com/engine/install/

    注意:

    1. 如果是国内服务器需要设置Docker国内镜像源

    # 安装Caddy

    Docker Hub:https://hub.docker.com/_/caddy

    1. Pull the image
    docker pull caddy:2.6.2
    -
    1. Start a container
    docker run -d --name trojan-panel-caddy --restart always \
    +   (opens new window)

    # 手动安装教程

    # 准备

    # 安装顺序

    Docker -> Caddy2 -> MariaDB -> Redis -> Trojan Panel Backend -> Trojan Panel Frontend -> Trojan Panel Core

    # 版本对应关系

    名称 版本
    Docker latest
    Nginx 1.20-alpine
    Caddy2 2.6.2
    MariaDB 10.7.3
    Redis 6.2.7
    Trojan Panel Frontend latest
    Trojan Panel Backend latest
    Trojan Panel Core latest

    # 安装Docker

    Docker官方安装教程:https://docs.docker.com/engine/install/

    # 安装Caddy2

    Docker Hub:https://hub.docker.com/_/caddy

    1. Pull the image

      docker pull caddy:2.6.2
      +
    2. Start a container

      docker run -d --name trojan-panel-caddy --restart always \
       --network=host \
       -v "${CADDY_CONFIG}":"${CADDY_CONFIG}" \
       -v ${CERT_PATH}:"/tpdata/cert/certificates/acme-v02.api.letsencrypt.org-directory/${domain}/" \
       -v ${WEB_PATH}:${WEB_PATH} \
       -v ${CADDY_LOG}:${CADDY_LOG} \
       caddy:2.6.2 caddy run --config ${CADDY_CONFIG}
      -

      参数解释:

      • --name trojan-panel-redis:定义容器的名称
      • --restart always:容器随着Docker启动而启动
      • --network=host:使用Host网络模式
      • -v "${CADDY_CONFIG}":"${CADDY_CONFIG}":映射Caddy配置文件
      • -v ${CERT_PATH}:"/tpdata/cert/certificates/acme-v02.api.letsencrypt.org-directory/${domain}/":映射证书文件夹
      • -v ${WEB_PATH}:${WEB_PATH}:映射伪装网站文件夹
      • -v ${CADDY_LOG}:${CADDY_LOG}:日志文件夹
      • caddy run --config ${CADDY_CONFIG}:指定配置文件运行

      Caddy配置举例

      1. acme自动申请和续签
      {
      +

    参数解释:

    • --name trojan-panel-redis:定义容器的名称
    • --restart always:容器随着Docker启动而启动
    • --network=host:使用Host网络模式
    • -v "${CADDY_CONFIG}":"${CADDY_CONFIG}":映射Caddy配置文件
    • -v ${CERT_PATH}:"/tpdata/cert/certificates/acme-v02.api.letsencrypt.org-directory/${domain}/":映射证书文件夹
    • -v ${WEB_PATH}:${WEB_PATH}:映射伪装网站文件夹
    • -v ${CADDY_LOG}:${CADDY_LOG}:日志文件夹
    • caddy run --config ${CADDY_CONFIG}:指定配置文件运行

    Caddy配置举例

    1. acme自动申请和续签
    {
         "admin":{
             "disabled":true
         },
    @@ -310,22 +310,22 @@
             }
         }
     }
    -

    注意:需要将证书文件上传至证书文件夹:/tpdata/cert/,证书文件名称格式为${domian}.crt${domian}.key

    参数解释:

    • ${CADDY_LOG}:日志文件夹
    • ${CERT_PATH}:证书文件夹
    • ${caddy_port}:Caddy端口
    • ${domain}:你的域名
    • ${caddy_remote_port}:Caddy转发的端口
    • ${WEB_PATH}:伪装网站文件夹

    # 安装MariaDB

    Docker Hub:https://hub.docker.com/_/mariadb

    1. Pull the image
    docker pull mariadb:10.7.3
    -
    1. Start a container
    docker run -d --name trojan-panel-mariadb --restart always \
    +

    注意:需要将证书文件上传至证书文件夹:/tpdata/cert/,证书文件名称格式为${domian}.crt${domian}.key

    参数解释:

    • ${CADDY_LOG}:日志文件夹
    • ${CERT_PATH}:证书文件夹
    • ${caddy_port}:Caddy端口
    • ${domain}:你的域名
    • ${caddy_remote_port}:Caddy转发的端口
    • ${WEB_PATH}:伪装网站文件夹

    # 安装MariaDB

    Docker Hub:https://hub.docker.com/_/mariadb

    1. Pull the image

      docker pull mariadb:10.7.3
      +
    2. Start a container

      docker run -d --name trojan-panel-mariadb --restart always \
       --network=host \
       -e MYSQL_DATABASE="trojan_panel_db" \
       -e MYSQL_ROOT_PASSWORD="${mariadb_pas}" \
       -e TZ=Asia/Shanghai \
       mariadb:10.7.3 \
       --port ${mariadb_port}
      -

      参数解释:

      • --name trojan-panel-mariadb:定义容器的名称
      • --restart always:容器随着Docker启动而启动
      • --network=host:使用Host网络模式
      • -e MYSQL_DATABASE="trojan_panel_db":容器启动时创建一个默认的trojan_panel_db
      • -e MYSQL_ROOT_PASSWORD="${mariadb_pas}":设置MariaDB密码为${mariadb_pas}
      • -e TZ=Asia/Shanghai:设置时区为上海
      • --port ${mariadb_port}:自定义数据库端口(默认:9507)

      # 安装Redis

      Docker Hub:https://hub.docker.com/_/redis

      1. Pull the image
      docker pull redis:6.2.7
      -
      1. Start a container
      docker run -d --name trojan-panel-redis --restart always \
      +

    参数解释:

    • --name trojan-panel-mariadb:定义容器的名称
    • --restart always:容器随着Docker启动而启动
    • --network=host:使用Host网络模式
    • -e MYSQL_DATABASE="trojan_panel_db":容器启动时创建一个默认的trojan_panel_db
    • -e MYSQL_ROOT_PASSWORD="${mariadb_pas}":设置MariaDB密码为${mariadb_pas}
    • -e TZ=Asia/Shanghai:设置时区为上海
    • --port ${mariadb_port}:自定义数据库端口(默认:9507)

    # 安装Redis

    Docker Hub:https://hub.docker.com/_/redis

    1. Pull the image

      docker pull redis:6.2.7
      +
    2. Start a container

      docker run -d --name trojan-panel-redis --restart always \
       --network=host \
       redis:6.2.7 \
       redis-server --requirepass "${redis_pass}" --port ${redis_port}
      -

      参数解释:

      • --name trojan-panel-redis:定义容器的名称
      • --restart always:容器随着Docker启动而启动
      • --network=host:使用Host网络模式
      • redis-server --requirepass "${redis_pass}" --port ${redis_port}:设置Redis密码为${redis_pass} 设置Redis端口为${redis_port} -(默认:6378)

      # 安装Trojan Panel

      Docker Hub:https://hub.docker.com/r/jonssonyan/trojan-panel

      1. Pull the image
      docker pull jonssonyan/trojan-panel
      -
      1. Start a container
      docker run -d --name trojan-panel --restart always \
      +

    参数解释:

    • --name trojan-panel-redis:定义容器的名称
    • --restart always:容器随着Docker启动而启动
    • --network=host:使用Host网络模式
    • redis-server --requirepass "${redis_pass}" --port ${redis_port}:设置Redis密码为${redis_pass} +设置Redis端口为${redis_port}(默认:6378)

    # 安装Trojan Panel Backend

    Docker Hub:https://hub.docker.com/r/jonssonyan/trojan-panel

    1. Pull the image

      docker pull jonssonyan/trojan-panel
      +
    2. Start a container

      docker run -d --name trojan-panel --restart always \
       --network=host \
       -v ${WEB_PATH}:/tpdata/trojan-panel/webfile/ \
       -v ${TROJAN_PANEL_LOGS}:/tpdata/trojan-panel/logs/ \
      @@ -341,13 +341,13 @@
       -e "redis_port=${redis_port}" \
       -e "redis_pass=${redis_pass}" \
       jonssonyan/trojan-panel
      -

      参数解释:

      • --name trojan-panel:定义容器的名称
      • --restart always:容器随着Docker启动而启动
      • --network=host:使用Host网络模式
      • -v ${WEB_PATH}:/tpdata/trojan-panel/webfile/:映射伪装网站文件夹
      • -v ${TROJAN_PANEL_LOGS}:/tpdata/trojan-panel/logs/:映射日志文件夹
      • -v ${TROJAN_PANEL_EXPORT}:/tpdata/trojan-panel/export/:映射导出文件文件夹
      • -v ${TROJAN_PANEL_TEMPLATE}:/tpdata/trojan-panel/template/:映射模板文件夹
      • -v /etc/localtime:/etc/localtime:同步宿主机和容器的时区
      • -e GIN_MODE=release:release模式启动
      • -e "mariadb_ip=${mariadb_ip}"${mariadb_ip}为 MariaDB 数据库的 IP 地址(默认:本机数据库)
      • -e "mariadb_port=${mariadb_port}"${mariadb_port}为 MariaDB 数据库的端口(默认:本机数据库端口)
      • -e "mariadb_user=${mariadb_user}"${mariadb_user}为 MariaDB 数据库的用户名(默认:root)
      • -e "mariadb_pas=${mariadb_pas}"${mariadb_pas}为 MariaDB 数据库密码(必填)
      • -e "redis_host=${redis_host}"${redis_host}为 Redis 的 IP 地址(默认:本机 Redis)
      • -e "redis_port=${redis_port}"${redis_port}为 Redis 的端口(默认:本机 Redis 端口)
      • -e "redis_pass=${redis_pass}"${redis_pass}为 Redis 的密码(必填)

      # 安装Trojan Panel UI

      Docker Hub:https://hub.docker.com/r/jonssonyan/trojan-panel-ui

      1. Pull the image
      docker pull jonssonyan/trojan-panel-ui
      -
      1. Start a container
      docker run -d --name trojan-panel-ui --restart always \
      +

    参数解释:

    • --name trojan-panel:定义容器的名称
    • --restart always:容器随着Docker启动而启动
    • --network=host:使用Host网络模式
    • -v ${WEB_PATH}:/tpdata/trojan-panel/webfile/:映射伪装网站文件夹
    • -v ${TROJAN_PANEL_LOGS}:/tpdata/trojan-panel/logs/:映射日志文件夹
    • -v ${TROJAN_PANEL_EXPORT}:/tpdata/trojan-panel/export/:映射导出文件文件夹
    • -v ${TROJAN_PANEL_TEMPLATE}:/tpdata/trojan-panel/template/:映射模板文件夹
    • -v /etc/localtime:/etc/localtime:同步宿主机和容器的时区
    • -e GIN_MODE=release:release模式启动
    • -e "mariadb_ip=${mariadb_ip}"${mariadb_ip}为 MariaDB 数据库的 IP 地址(默认:本机数据库)
    • -e "mariadb_port=${mariadb_port}"${mariadb_port}为 MariaDB 数据库的端口(默认:本机数据库端口)
    • -e "mariadb_user=${mariadb_user}"${mariadb_user}为 MariaDB 数据库的用户名(默认:root)
    • -e "mariadb_pas=${mariadb_pas}"${mariadb_pas}为 MariaDB 数据库密码(必填)
    • -e "redis_host=${redis_host}"${redis_host}为 Redis 的 IP 地址(默认:本机 Redis)
    • -e "redis_port=${redis_port}"${redis_port}为 Redis 的端口(默认:本机 Redis 端口)
    • -e "redis_pass=${redis_pass}"${redis_pass}为 Redis 的密码(必填)

    # 安装Trojan Panel Frontend

    Docker Hub:https://hub.docker.com/r/jonssonyan/trojan-panel-ui

    1. Pull the image

      docker pull jonssonyan/trojan-panel-ui
      +
    2. Start a container

      docker run -d --name trojan-panel-ui --restart always \
       --network=host \
       -v "${UI_NGINX_CONFIG}":"/etc/nginx/conf.d/default.conf" \
       -v ${CERT_PATH}:${CERT_PATH} \
       jonssonyan/trojan-panel-ui
      -

      参数解释:

      • --name trojan-panel-ui:定义容器名称
      • --restart always:容器随着Docker启动而启动
      • --network=host:使用Host网络模式
      • -v "${NGINX_CONFIG}":"/etc/nginx/conf.d/default.conf":映射Nginx配置文件
      • -v ${CERT_PATH}:${CERT_PATH}:映射证书文件夹

      Nginx配置举例

      1. 使用 https
      server {
      +

    参数解释:

    • --name trojan-panel-ui:定义容器名称
    • --restart always:容器随着Docker启动而启动
    • --network=host:使用Host网络模式
    • -v "${NGINX_CONFIG}":"/etc/nginx/conf.d/default.conf":映射Nginx配置文件
    • -v ${CERT_PATH}:${CERT_PATH}:映射证书文件夹

    Nginx配置举例

    1. 使用 https
    server {
         listen       ${trojan_panel_ui_port} ssl;
         server_name  localhost;
         #强制ssl
    @@ -396,8 +396,8 @@
             root   /usr/share/nginx/html;
         }
     }
    -

    参数解释:

    • ${trojan_panel_ui_port}:Trojan Panel 前端端口
    • ${TROJAN_PANEL_UI_DATA}:前端编译文件所在的文件夹

    # 安装Trojan Panel Core

    Docker Hub:https://hub.docker.com/r/jonssonyan/trojan-panel-core

    1. Pull the image
    docker pull jonssonyan/trojan-panel-core
    -
    1. Start a container
    docker run -d --name trojan-panel-core --restart always \
    +

    参数解释:

    • ${trojan_panel_ui_port}:Trojan Panel 前端端口
    • ${TROJAN_PANEL_UI_DATA}:前端编译文件所在的文件夹

    # 安装Trojan Panel Core

    Docker Hub:https://hub.docker.com/r/jonssonyan/trojan-panel-core

    1. Pull the image

      docker pull jonssonyan/trojan-panel-core
      +
    2. Start a container

      docker run -d --name trojan-panel-core --restart always \
       --network=host \
       -v ${TROJAN_PANEL_CORE_DATA}bin/xray/config:${TROJAN_PANEL_CORE_DATA}bin/xray/config \
       -v ${TROJAN_PANEL_CORE_DATA}bin/trojango/config:${TROJAN_PANEL_CORE_DATA}bin/trojango/config \
      @@ -422,7 +422,7 @@
       -e "key_path=${CERT_PATH}${domain}.key" \
       -e "grpc_port=${grpc_port}" \
       jonssonyan/trojan-panel-core
      -

      参数解释:

      • --name trojan-panel-core:定义容器名称
      • --restart always:容器随着Docker启动而启动
      • --network=host:使用Host网络模式
      • -v ${TROJAN_PANEL_CORE_DATA}bin/xray/config:${TROJAN_PANEL_CORE_DATA}bin/xray/config:映射Xray配置文件夹
      • -v ${TROJAN_PANEL_CORE_DATA}bin/trojango/config:${TROJAN_PANEL_CORE_DATA}bin/trojango/config:映射TrojanGo配置文件夹
      • -v ${TROJAN_PANEL_CORE_DATA}bin/hysteria/config:${TROJAN_PANEL_CORE_DATA}bin/hysteria/config:映射Hysteria配置文件夹
      • -v ${TROJAN_PANEL_CORE_DATA}bin/naiveproxy/config:${TROJAN_PANEL_CORE_DATA}bin/naiveproxy/config:映射NaiveProxy配置文件夹
      • -v ${TROJAN_PANEL_CORE_LOGS}:${TROJAN_PANEL_CORE_LOGS}:映射日志文件夹
      • -v ${TROJAN_PANEL_CORE_SQLITE}:${TROJAN_PANEL_CORE_SQLITE}:映射SQLite文件夹
      • -v ${CERT_PATH}:${CERT_PATH}:映射证书文件夹
      • -v ${WEB_PATH}:${WEB_PATH}:映射回落资源文件夹
      • -v /etc/localtime:/etc/localtime:同步宿主机和容器的时区
      • -e GIN_MODE=release:release模式启动
      • -e "mariadb_ip=${mariadb_ip}"${mariadb_ip}为 MariaDB 数据库的 IP 地址(默认:本机数据库)
      • -e "mariadb_port=${mariadb_port}"${mariadb_port}为 MariaDB 数据库的端口(默认:本机数据库端口)
      • -e "mariadb_user=${mariadb_user}"${mariadb_user}为 MariaDB 数据库的用户名(默认:root)
      • -e "mariadb_pas=${mariadb_pas}"${mariadb_pas}为 MariaDB 数据库密码(默认:123456)
      • -e "database=${database}"${database}为数据库名称
      • -e "account-table=${account_table}"${account_table}为用户表名称
      • -e "redis_host=${redis_host}"${redis_host}为 Redis 的 IP 地址(默认:本机 Redis)
      • -e "redis_port=${redis_port}"${redis_port}为 Redis 的端口(默认:本机 Redis 端口)
      • -e "redis_pass=${redis_pass}"${redis_pass}为 Redis 的密码(默认:123456)
      • -e "crt_path=${CERT_PATH}${domain}.crt":自定义证书.crt文件路径
      • -e "key_path=${CERT_PATH}${domain}.key":自定义证书.key文件路径
      • -e "grpc_port=${grpc_port}":自定义服务器之间的通讯端口
    Last Updated: 5/8/2023, 1:32:06 PM

    参数解释:

    • --name trojan-panel-core:定义容器名称
    • --restart always:容器随着Docker启动而启动
    • --network=host:使用Host网络模式
    • -v ${TROJAN_PANEL_CORE_DATA}bin/xray/config:${TROJAN_PANEL_CORE_DATA}bin/xray/config:映射Xray配置文件夹
    • -v ${TROJAN_PANEL_CORE_DATA}bin/trojango/config:${TROJAN_PANEL_CORE_DATA}bin/trojango/config:映射TrojanGo配置文件夹
    • -v ${TROJAN_PANEL_CORE_DATA}bin/hysteria/config:${TROJAN_PANEL_CORE_DATA}bin/hysteria/config:映射Hysteria配置文件夹
    • -v ${TROJAN_PANEL_CORE_DATA}bin/naiveproxy/config:${TROJAN_PANEL_CORE_DATA}bin/naiveproxy/config:映射NaiveProxy配置文件夹
    • -v ${TROJAN_PANEL_CORE_LOGS}:${TROJAN_PANEL_CORE_LOGS}:映射日志文件夹
    • -v ${TROJAN_PANEL_CORE_SQLITE}:${TROJAN_PANEL_CORE_SQLITE}:映射SQLite文件夹
    • -v ${CERT_PATH}:${CERT_PATH}:映射证书文件夹
    • -v ${WEB_PATH}:${WEB_PATH}:映射回落资源文件夹
    • -v /etc/localtime:/etc/localtime:同步宿主机和容器的时区
    • -e GIN_MODE=release:release模式启动
    • -e "mariadb_ip=${mariadb_ip}"${mariadb_ip}为 MariaDB 数据库的 IP 地址(默认:本机数据库)
    • -e "mariadb_port=${mariadb_port}"${mariadb_port}为 MariaDB 数据库的端口(默认:本机数据库端口)
    • -e "mariadb_user=${mariadb_user}"${mariadb_user}为 MariaDB 数据库的用户名(默认:root)
    • -e "mariadb_pas=${mariadb_pas}"${mariadb_pas}为 MariaDB 数据库密码(默认:123456)
    • -e "database=${database}"${database}为数据库名称
    • -e "account-table=${account_table}"${account_table}为用户表名称
    • -e "redis_host=${redis_host}"${redis_host}为 Redis 的 IP 地址(默认:本机 Redis)
    • -e "redis_port=${redis_port}"${redis_port}为 Redis 的端口(默认:本机 Redis 端口)
    • -e "redis_pass=${redis_pass}"${redis_pass}为 Redis 的密码(默认:123456)
    • -e "crt_path=${CERT_PATH}${domain}.crt":自定义证书.crt文件路径
    • -e "key_path=${CERT_PATH}${domain}.key":自定义证书.key文件路径
    • -e "grpc_port=${grpc_port}":自定义服务器之间的通讯端口
    Last Updated: 8/24/2023, 12:49:36 AM
    - + diff --git a/docs/install-tutorial/docker-compose.html b/docs/install-tutorial/docker-compose.html index 8c948fc..04e38d7 100644 --- a/docs/install-tutorial/docker-compose.html +++ b/docs/install-tutorial/docker-compose.html @@ -18,7 +18,7 @@ - + @@ -448,6 +448,6 @@

    - + diff --git a/docs/install-tutorial/installation.html b/docs/install-tutorial/installation.html index 97978c6..7118ee2 100644 --- a/docs/install-tutorial/installation.html +++ b/docs/install-tutorial/installation.html @@ -18,7 +18,7 @@ - + @@ -54,16 +54,17 @@ 更新日志

    # 自动安装教程

    # 准备

    # 系统要求

    系统支持: CentOS 7+/Ubuntu 18+/Debian 10+

    处理器架构: linux/386 linux/amd64 liunx/v6 linux/v7 linux/arm64 linux/ppc64le linux/s390x

    内存要求: ≥1G

    # 相关端口

    端口 描述
    80 伪装Web
    8863 Caddy/Nginx转发
    8888 Trojan Panel前端
    8081 Trojan Panel后端
    8082 Trojan Panel Core
    9507 MariaDB
    6378 Redis
    8100 Trojan Panel Core API端口

    Trojan Panel服务器需开放以下端口: 80 8863 8888,Trojan Panel Core服务器需要开放:8100

    如果使用的服务器控制面板有防火墙设置需要自己在控制面板自行开放以上端口。

    如果没有没有远程节点,尽量不要开放95076378端口。

    # 注意

    1. 控制面板和节点都推荐部署在国外服务器上,否则会由于网络问题使用一键安装脚本会因为远程下载文件超时报错。

    2. 提前准备一个解析到服务的二级域名

    3. 数据库和Redis的密码尽量设置复杂(数字+大小写字母+特殊字符),否则假如开放了对应端口,则存在被撞库的安全风险。

    4. 建议的安装顺序: 安装网络加速 > 安装Trojan Panel > 安装Trojan Panel Core

      建议在脚本运行中需要手动输入的部分,如果没有特殊需求或者不知道这个选项是干什么的,**除数据库密码和Redis密码自定义以外,其他默认即可 -**。

    5. 如果是远程多节点的情况,节点服务器只需要安装一次Trojan Panel Core,在面板界面才可以操作远程服务器从而远程自动化管理节点。

    6. 如果使用Caddy自动申请/续签证书,需要开放Caddy端口(默认80)并且保证Caddy端口没有被其他进程占用

    # 一键安装脚本

    1. 联机版(推荐)
    source <(curl -L https://github.com/trojanpanel/install-script/raw/main/install_script.sh)
    -
    1. 单机版
    source <(curl -L https://github.com/trojanpanel/install-script/raw/main/install_script_standalone.sh)
    -
    1. 安装旧版 (opens new window)

    # 安装Trojan Panel

    1. 设置伪装Web

    推荐使用Caddy 2,可以作为伪装Web也可以自动申请/续签证书。

    1. 请输入Caddy的端口(默认:80)

    默认即可,除非80端口被墙或者被其他进程占用。

    1. 请输入Caddy的转发端口(用于申请证书,默认:8863)

    默认即可,除非8863端口被墙。

    1. 请输入你的域名(必填)

    输入你提前解析到本机的域名。

    1. 请输入你的邮箱(可选)

    默认即可,或输入一个合法的邮箱地址。

    1. 请选择设置证书的方式?(1/自动申请和续签证书 2/手动设置证书路径 默认:1/自动申请和续签证书)

    推荐自动申请和续签证书,如果自己有证书或者自动申请和续签证书失败可以选择手动设置证书路径(24小时内申请2次以上可能会导致自动申请证书失败,如果搭建频繁,建议选择手动设置证书路径)。

    1. 请选择申请证书的方式(1/acme 2/zerossl 默认:1/acme)

    默认即可,选择自动申请证书的方式。

    1. 请输入证书的.crt文件路径(必填)

    使用.crt文件的绝对路径,例如:/root/www.google.com.crt

    1. 请输入证书的.key文件路径(必填)

    使用.key文件的绝对路径,例如:/root/www.google.com.key

    1. 请输入数据库的用户名(默认:root)

    默认即可,除非有自定义数据库用户的需求。

    1. 请输入数据库的密码(必填)

    输入一个较为复杂且你能记得住的密码。

    1. 请输入Redis的密码(必填)

    输入一个较为复杂且你能记得住的密码。

    1. 请输入数据库的IP地址(默认:本地数据库)

    如果数据库安装在本机则默认即可,如果数据库安装在其他服务器这里填远程服务器的IP地址。

    1. 请输入数据库的端口(默认:本地数据库端口)

    如果数据库安装在本机则默认即可,如果数据库安装在其他服务器这里填远程服务器的数据库端口。

    1. 请输入数据库的用户名(默认:root)

    默认即可,除非有自定义数据库用户的需求。

    1. 请输入数据库的密码(必填)

    如果数据库安装在本机则填写本机数据库密码,如果数据库安装在其他服务器这里填远程服务器的数据库密码。

    1. 请输入Redis的IP地址(默认:本机Redis)

    如果Redis安装在本机则默认即可,如果Redis安装在其他服务器这里填远程服务器的IP地址。

    1. 请输入Redis的端口(默认:本机Redis端口)

    如果Redis安装在本机则默认即可,如果Redis安装在其他服务器这里填远程服务器的Redis端口。

    1. 请输入Redis的密码(必填)

    如果Redis安装在本机则填写本机Redis密码,如果Redis安装在其他服务器这里填远程服务器的Redis密码。

    1. 请输入Trojan Panel前端端口(默认:8888)

    默认即可,除非有自定义Trojan Panel前端端口的需求。

    1. 请选择Trojan Panel前端是否开启https?(0/关闭 1/开启 默认:1/开启)

    默认即可,除非有自定义择Trojan Panel前端是否开启https的需求。如果开启https,则管理面板地址为https://你的域名:端口 + (opens new window)

    # 自动安装教程

    # 准备

    # 系统要求

    系统:: CentOS 7+ / Ubuntu 18+ / Debian 10+

    CPU: linux/amd64 / linux/arm/v6 / linux/arm/v7 / linux/arm64 / linux/s390x / linux/ppc64le / linux/386

    内存: ≥ 1G

    # 相关端口

    端口 描述
    80 伪装Web
    8863 Caddy/Nginx转发
    8888 Trojan Panel前端
    8081 Trojan Panel后端
    8082 Trojan Panel Core
    8100 Trojan Panel Core API端口
    9507 MariaDB
    6378 Redis

    提示:

    1. 如果使用的服务器控制面板有防火墙设置需要自己在控制面板自行开放以上端口。

    2. 如果没有没有远程节点,尽量关闭95076378端口。

    # 注意

    1. 控制面板和节点都推荐部署在国外服务器上,否则会由于网络问题使用一键安装脚本会因为远程下载文件超时报错。

    2. 提前准备一个解析到服务的二级域名

    3. 数据库和Redis的密码尽量设置复杂(数据库密码不支持部分特殊字符),否则存在被撞库的安全风险。

    4. 建议的安装顺序: 网络加速 > Trojan Panel Backend > Trojan Panel +Frontend -> Trojan Panel Core

      建议在脚本运行中需要手动输入的部分,如果没有特殊需求或者不知道这个选项是干什么的, +除数据库密码和Redis密码自定义以外,其他默认即可

    5. 如果是远程多节点的情况,节点服务器只需要安装一次Trojan Panel Core,在面板界面才可以操作远程服务器从而远程自动化管理节点。

    6. 如果使用Caddy2自动申请/续签证书,需要开放Caddy端口(默认80)并且保证Caddy端口没有被其他进程占用

    # 一键安装脚本

    1. 联机版(推荐)

      source <(curl -L https://github.com/trojanpanel/install-script/raw/main/install_script.sh)
      +
    2. 单机版

      source <(curl -L https://github.com/trojanpanel/install-script/raw/main/install_script_standalone.sh)
      +
    3. 安装旧版 (opens new window)

    # 安装Trojan Panel

    1. 设置伪装Web

    推荐使用Caddy 2,可以作为伪装Web也可以自动申请/续签证书。

    1. 请输入Caddy的端口(默认:80)

    默认即可,除非80端口被墙或者被其他进程占用。

    1. 请输入Caddy的转发端口(用于申请证书,默认:8863)

    默认即可,除非8863端口被墙。

    1. 请输入你的域名(必填)

    输入你提前解析到本机的域名。

    1. 请输入你的邮箱(可选)

    默认即可,或输入一个合法的邮箱地址。

    1. 请选择设置证书的方式?(1/自动申请和续签证书 2/手动设置证书路径 默认:1/自动申请和续签证书)

    推荐自动申请和续签证书,如果自己有证书或者自动申请和续签证书失败可以选择手动设置证书路径(24小时内申请2次以上可能会导致自动申请证书失败,如果搭建频繁,建议选择手动设置证书路径)。

    1. 请选择申请证书的方式(1/acme 2/zerossl 默认:1/acme)

    默认即可,选择自动申请证书的方式。

    1. 请输入证书的.crt文件路径(必填)

    使用.crt文件的绝对路径,例如:/root/www.google.com.crt

    1. 请输入证书的.key文件路径(必填)

    使用.key文件的绝对路径,例如:/root/www.google.com.key

    1. 请输入数据库的用户名(默认:root)

    默认即可,除非有自定义数据库用户的需求。

    1. 请输入数据库的密码(必填)

    输入一个较为复杂且你能记得住的密码。

    1. 请输入Redis的密码(必填)

    输入一个较为复杂且你能记得住的密码。

    1. 请输入数据库的IP地址(默认:本地数据库)

    如果数据库安装在本机则默认即可,如果数据库安装在其他服务器这里填远程服务器的IP地址。

    1. 请输入数据库的端口(默认:本地数据库端口)

    如果数据库安装在本机则默认即可,如果数据库安装在其他服务器这里填远程服务器的数据库端口。

    1. 请输入数据库的用户名(默认:root)

    默认即可,除非有自定义数据库用户的需求。

    1. 请输入数据库的密码(必填)

    如果数据库安装在本机则填写本机数据库密码,如果数据库安装在其他服务器这里填远程服务器的数据库密码。

    1. 请输入Redis的IP地址(默认:本机Redis)

    如果Redis安装在本机则默认即可,如果Redis安装在其他服务器这里填远程服务器的IP地址。

    1. 请输入Redis的端口(默认:本机Redis端口)

    如果Redis安装在本机则默认即可,如果Redis安装在其他服务器这里填远程服务器的Redis端口。

    1. 请输入Redis的密码(必填)

    如果Redis安装在本机则填写本机Redis密码,如果Redis安装在其他服务器这里填远程服务器的Redis密码。

    1. 请输入Trojan Panel前端端口(默认:8888)

    默认即可,除非有自定义Trojan Panel前端端口的需求。

    1. 请选择Trojan Panel前端是否开启https?(0/关闭 1/开启 默认:1/开启)

    默认即可,除非有自定义择Trojan Panel前端是否开启https的需求。如果开启https,则管理面板地址为https://你的域名:端口 ,如果未开启https,则管理面板地址为http://你的域名:端口

    提示

    1. 安装结束后,访问你的域名如果是一个静态网页,说明已经安装成功。

    2. 安装成功后,Trojan Panel管理面板地址: 你的域名:8888 -系统管理员 默认用户名: sysadmin 默认密码: 123456 请及时登陆管理面板修改密码。

    # 安装Trojan Panel Core

    1. 请输入数据库的IP地址(默认:本地数据库)

    如果数据库安装在本机则默认即可,如果数据库安装在其他服务器这里填远程服务器的IP地址。

    1. 请输入数据库的端口(默认:本地数据库端口)

    如果数据库安装在本机则默认即可,如果数据库安装在其他服务器这里填远程服务器的数据库端口。

    1. 请输入数据库的用户名(默认:root)

    默认即可,除非有自定义数据库用户的需求。

    1. 请输入数据库的密码(必填)

    如果数据库安装在本机则填写本机数据库密码,如果数据库安装在其他服务器这里填远程服务器的数据库密码。

    1. 请输入数据库名称(默认:trojan_panel_db)

    默认即可,除非有自定义数据库名称的需求。

    1. 请输入数据库的用户表名称(默认:account)

    默认即可,除非有自定义数据库的用户表的需求。

    1. 请输入Redis的IP地址(默认:本机Redis)

    如果Redis安装在本机则默认即可,如果Redis安装在其他服务器这里填远程服务器的IP地址。

    1. 请输入Redis的端口(默认:本机Redis端口)

    如果Redis安装在本机则默认即可,如果Redis安装在其他服务器这里填远程服务器的Redis端口。

    1. 请输入Redis的密码(必填)

    如果Redis安装在本机则填写本机Redis密码,如果Redis安装在其他服务器这里填远程服务器的Redis密码。

    1. 请输入API的端口(默认:8100)

    默认即可,除非8100端口被墙。

    Last Updated: 6/3/2023, 1:56:56 AM
    Last Updated: 8/24/2023, 12:48:43 AM
    - + diff --git a/docs/sdk/sdk.html b/docs/sdk/sdk.html index 8735ab6..1253a5f 100644 --- a/docs/sdk/sdk.html +++ b/docs/sdk/sdk.html @@ -18,7 +18,7 @@ - + @@ -55,6 +55,6 @@

    # Core SDK

    项目地址:https://github.com/trojanpanel/core-sdk

    Demo地址:https://github.com/trojanpanel/core-sdk-example

    Last Updated: 8/6/2023, 12:39:47 AM
    - + diff --git a/docs/start/introduce.html b/docs/start/introduce.html index f672760..ba764c1 100644 --- a/docs/start/introduce.html +++ b/docs/start/introduce.html @@ -18,7 +18,7 @@ - + @@ -59,6 +59,6 @@ →

    - + diff --git a/docs/start/system-structure.html b/docs/start/system-structure.html index 5a668d9..8ef2616 100644 --- a/docs/start/system-structure.html +++ b/docs/start/system-structure.html @@ -18,7 +18,7 @@ - + @@ -59,6 +59,6 @@

    - + diff --git a/docs/tutorial/client-config.html b/docs/tutorial/client-config.html index f8d5351..c1e0628 100644 --- a/docs/tutorial/client-config.html +++ b/docs/tutorial/client-config.html @@ -18,7 +18,7 @@ - + @@ -77,6 +77,6 @@ →

    - + diff --git a/docs/tutorial/common-problem.html b/docs/tutorial/common-problem.html index 47e2a7c..69317a1 100644 --- a/docs/tutorial/common-problem.html +++ b/docs/tutorial/common-problem.html @@ -18,7 +18,7 @@ - + @@ -65,6 +65,6 @@ →

    - + diff --git a/docs/tutorial/des-of-related-doc.html b/docs/tutorial/des-of-related-doc.html index 3ac80cf..27162d7 100644 --- a/docs/tutorial/des-of-related-doc.html +++ b/docs/tutorial/des-of-related-doc.html @@ -18,7 +18,7 @@ - + @@ -63,6 +63,6 @@ →

    - + diff --git a/docs/tutorial/performance-testing.html b/docs/tutorial/performance-testing.html index 08dc048..ea9d0b2 100644 --- a/docs/tutorial/performance-testing.html +++ b/docs/tutorial/performance-testing.html @@ -18,7 +18,7 @@ - + @@ -83,6 +83,6 @@

    - + diff --git a/docs/tutorial/performance-tuning.html b/docs/tutorial/performance-tuning.html index 97e68f3..4f8328c 100644 --- a/docs/tutorial/performance-tuning.html +++ b/docs/tutorial/performance-tuning.html @@ -18,7 +18,7 @@ - + @@ -55,7 +55,7 @@

    # 性能调优

    # 定时重启

    每天凌晨4点重启服务的crontab定时任务

    0 4 * * * /sbin/reboot
    -

    # 网络加速

    1. Chikage0o0/Linux-NetSpeed (opens new window)
    2. ylx2016/Linux-NetSpeed (opens new window)
    3. teddysun/across#bbrsh (opens new window)
    4. cx9208/bbrplus(archive) (opens new window)
    Last Updated: 11/25/2022, 10:44:51 AM

    # 网络加速

    1. Chikage0o0/Linux-NetSpeed (opens new window)
    2. ylx2016/Linux-NetSpeed (opens new window)
    3. teddysun/across#bbrsh (opens new window)
    4. cx9208/bbrplus(archive) (opens new window)
    Last Updated: 8/24/2023, 12:36:58 AM
    - + diff --git a/docs/tutorial/recommend-tool.html b/docs/tutorial/recommend-tool.html index 83ebfd9..07ac9db 100644 --- a/docs/tutorial/recommend-tool.html +++ b/docs/tutorial/recommend-tool.html @@ -18,7 +18,7 @@ - + @@ -54,7 +54,7 @@ 更新日志
    Last Updated: 5/26/2023, 10:20:32 AM
    Last Updated: 8/24/2023, 12:48:43 AM
    - + diff --git a/docs/tutorial/using-cdn.html b/docs/tutorial/using-cdn.html index 0ec8695..ba12d9b 100644 --- a/docs/tutorial/using-cdn.html +++ b/docs/tutorial/using-cdn.html @@ -18,7 +18,7 @@ - + @@ -63,6 +63,6 @@ →

    - + diff --git a/docs/tutorial/using-tutorials.html b/docs/tutorial/using-tutorials.html index 4ded0a8..e455682 100644 --- a/docs/tutorial/using-tutorials.html +++ b/docs/tutorial/using-tutorials.html @@ -18,7 +18,7 @@ - + @@ -60,6 +60,6 @@ →

    - +