From 66cb78a12a1abcab3f0137a14b87a9777bc3119e Mon Sep 17 00:00:00 2001 From: Meng Sen Date: Fri, 11 Jul 2025 12:30:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=8D=E5=90=8C=E7=89=88?= =?UTF-8?q?=E6=9C=AC=20rustdesk-api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Meng Sen --- apps/rustdesk-api/2.6.25/data.yml | 34 ++- apps/rustdesk-api/2.6.25/docker-compose.yml | 6 +- apps/rustdesk-api/s6-latest/conf/hbbr/run | 5 + apps/rustdesk-api/s6-latest/conf/hbbs/run | 6 + apps/rustdesk-api/s6-latest/data.yml | 220 ++++++++++++++++++ .../rustdesk-api/s6-latest/docker-compose.yml | 41 ++++ apps/rustdesk-api/s6-latest/envs/default.env | 2 + apps/rustdesk-api/s6-latest/envs/global.env | 2 + apps/rustdesk-api/s6-latest/scripts/init.sh | 19 ++ .../s6-latest/scripts/uninstall.sh | 10 + .../rustdesk-api/s6-latest/scripts/upgrade.sh | 17 ++ 11 files changed, 348 insertions(+), 14 deletions(-) create mode 100644 apps/rustdesk-api/s6-latest/conf/hbbr/run create mode 100644 apps/rustdesk-api/s6-latest/conf/hbbs/run create mode 100644 apps/rustdesk-api/s6-latest/data.yml create mode 100644 apps/rustdesk-api/s6-latest/docker-compose.yml create mode 100644 apps/rustdesk-api/s6-latest/envs/default.env create mode 100644 apps/rustdesk-api/s6-latest/envs/global.env create mode 100644 apps/rustdesk-api/s6-latest/scripts/init.sh create mode 100644 apps/rustdesk-api/s6-latest/scripts/uninstall.sh create mode 100644 apps/rustdesk-api/s6-latest/scripts/upgrade.sh diff --git a/apps/rustdesk-api/2.6.25/data.yml b/apps/rustdesk-api/2.6.25/data.yml index 85393a6bd..70944138b 100644 --- a/apps/rustdesk-api/2.6.25/data.yml +++ b/apps/rustdesk-api/2.6.25/data.yml @@ -10,16 +10,16 @@ additionalProperties: - default: 21114 edit: true envKey: PANEL_APP_PORT_HTTP - labelZh: WebUI 端口 - labelEn: WebUI port + labelZh: WebUI API 端口 + labelEn: WebUI API port required: true rule: paramPort type: number - default: 21115 edit: true - envKey: PANEL_APP_PORT_SERVER_1 - labelZh: 服务端口 21115 - labelEn: 服务端口 21115 + envKey: PANEL_APP_PORT_NAT + labelZh: NAT 服务端口 + labelEn: NAT Server Port required: true rule: paramPort type: number @@ -41,17 +41,17 @@ additionalProperties: type: number - default: 21118 edit: true - envKey: PANEL_APP_PORT_SERVER_2 - labelZh: 服务端口 21118 - labelEn: Server Port 21118 + envKey: PANEL_APP_PORT_API_WS + labelZh: WebSocket API 服务端口 + labelEn: WebSocket API Service Port required: true rule: paramPort type: number - default: 21119 edit: true - envKey: PANEL_APP_PORT_SERVER_3 - labelZh: 服务端口 21119 - labelEn: Server Port 21119 + envKey: PANEL_APP_PORT_SERVER_WS + labelZh: WebSocket Server 服务端口 + labelEn: WebSocket Server Service Port required: true rule: paramPort type: number @@ -97,6 +97,18 @@ additionalProperties: labelEn: Login validity period required: true type: text + - default: "1" + edit: true + envKey: RUSTDESK_API_RUSTDESK_PERSONAL + labelZh: 启用个人版API + labelEn: Enable personal API + required: true + type: select + values: + - label: 启用 + value: "1" + - label: 禁用 + value: "0" - default: "1" edit: true envKey: RUSTDESK_API_APP_WEB_CLIENT diff --git a/apps/rustdesk-api/2.6.25/docker-compose.yml b/apps/rustdesk-api/2.6.25/docker-compose.yml index e4344fb9d..f8755ae2d 100644 --- a/apps/rustdesk-api/2.6.25/docker-compose.yml +++ b/apps/rustdesk-api/2.6.25/docker-compose.yml @@ -30,12 +30,12 @@ services: networks: - 1panel-network ports: - - ${PANEL_APP_PORT_SERVER_1}:21115 + - ${PANEL_APP_PORT_NAT}:21115 - ${PANEL_APP_PORT_ID}:21116 - ${PANEL_APP_PORT_ID}:21116/udp - ${PANEL_APP_PORT_SERVER}:21117 - - ${PANEL_APP_PORT_SERVER_2}:21118 - - ${PANEL_APP_PORT_SERVER_3}:21119 + - ${PANEL_APP_PORT_API_WS}:21118 + - ${PANEL_APP_PORT_SERVER_WS}:21119 env_file: - ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env} - ${ENV_FILE:-/etc/1panel/envs/default.env} diff --git a/apps/rustdesk-api/s6-latest/conf/hbbr/run b/apps/rustdesk-api/s6-latest/conf/hbbr/run new file mode 100644 index 000000000..55a0c25db --- /dev/null +++ b/apps/rustdesk-api/s6-latest/conf/hbbr/run @@ -0,0 +1,5 @@ +#!/command/with-contenv sh +cd /data || exit +PARAMS= +[ "${ENCRYPTED_ONLY}" = "1" ] && PARAMS="-k ${RUSTDESK_API_RUSTDESK_KEY}" +/usr/bin/hbbr $PARAMS diff --git a/apps/rustdesk-api/s6-latest/conf/hbbs/run b/apps/rustdesk-api/s6-latest/conf/hbbs/run new file mode 100644 index 000000000..d56d24690 --- /dev/null +++ b/apps/rustdesk-api/s6-latest/conf/hbbs/run @@ -0,0 +1,6 @@ +#!/command/with-contenv sh +sleep 2 +cd /data +PARAMS= +[ "${ENCRYPTED_ONLY}" = "1" ] && PARAMS="-k ${RUSTDESK_API_RUSTDESK_KEY}" +/usr/bin/hbbs -r $RELAY $PARAMS diff --git a/apps/rustdesk-api/s6-latest/data.yml b/apps/rustdesk-api/s6-latest/data.yml new file mode 100644 index 000000000..70944138b --- /dev/null +++ b/apps/rustdesk-api/s6-latest/data.yml @@ -0,0 +1,220 @@ +additionalProperties: + formFields: + - default: "/home/rustdesk-api" + edit: true + envKey: RUSTDESK_API_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + required: true + type: text + - default: 21114 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: WebUI API 端口 + labelEn: WebUI API port + required: true + rule: paramPort + type: number + - default: 21115 + edit: true + envKey: PANEL_APP_PORT_NAT + labelZh: NAT 服务端口 + labelEn: NAT Server Port + required: true + rule: paramPort + type: number + - default: 21116 + edit: true + envKey: PANEL_APP_PORT_ID + labelZh: ID 服务端口 + labelEn: ID Server Port + required: true + rule: paramPort + type: number + - default: 21117 + edit: true + envKey: PANEL_APP_PORT_SERVER + labelZh: 中继服务端口 + labelEn: Intermediate Service Port + required: true + rule: paramPort + type: number + - default: 21118 + edit: true + envKey: PANEL_APP_PORT_API_WS + labelZh: WebSocket API 服务端口 + labelEn: WebSocket API Service Port + required: true + rule: paramPort + type: number + - default: 21119 + edit: true + envKey: PANEL_APP_PORT_SERVER_WS + labelZh: WebSocket Server 服务端口 + labelEn: WebSocket Server Service Port + required: true + rule: paramPort + type: number + - default: "http://127.0.0.1:21117" + edit: true + envKey: RUSTDESK_SERVER_URL + labelZh: RustDesk 中级服务地址 + labelEn: RustDesk Intermediate service address + required: true + type: text + - default: "http://127.0.0.1:21116" + edit: true + envKey: RUSTDESK_API_RUSTDESK_ID_SERVER + labelZh: RustDesk ID 服务地址 + labelEn: RustDesk ID server address + required: true + type: text + - default: "http://127.0.0.1:21114" + edit: true + envKey: RUSTDESK_API_RUSTDESK_API_SERVER + labelZh: RustDesk API 服务地址 + labelEn: RustDesk API server address + required: true + type: text + - default: "RustDesk API Admin" + edit: true + envKey: RUSTDESK_API_ADMIN_TITLE + labelZh: 后台页面标题 + labelEn: Admin page title + required: true + type: text + - default: "" + edit: true + envKey: RUSTDESK_API_RUSTDESK_KEY + labelZh: RustDesk API 密钥 + labelEn: RustDesk API key + required: true + type: password + - default: "168h" + edit: true + envKey: RUSTDESK_API_APP_TOKEN_EXPIRE + labelZh: 登录有效期 + labelEn: Login validity period + required: true + type: text + - default: "1" + edit: true + envKey: RUSTDESK_API_RUSTDESK_PERSONAL + labelZh: 启用个人版API + labelEn: Enable personal API + required: true + type: select + values: + - label: 启用 + value: "1" + - label: 禁用 + value: "0" + - default: "1" + edit: true + envKey: RUSTDESK_API_APP_WEB_CLIENT + labelZh: 启用 Web Client + labelEn: Enable Web Client + required: true + type: select + values: + - label: 启用 + value: "1" + - label: 禁用 + value: "0" + - default: "1" + edit: true + envKey: RUSTDESK_API_APP_SHOW_SWAGGER + labelZh: 开启 Swagger 文档 + labelEn: Enable Swagger docs + required: true + type: select + values: + - label: 启用 + value: "1" + - label: 禁用 + value: "0" + - default: "false" + edit: true + envKey: RUSTDESK_API_APP_REGISTER + labelZh: 启用注册 + labelEn: Enable register + required: true + type: select + values: + - label: 启用 + value: "true" + - label: 禁用 + value: "false" + - default: "false" + edit: true + envKey: RUSTDESK_API_APP_DISABLE_PWD_LOGIN + labelZh: 登录策略 + labelEn: Login strategy + required: true + type: select + values: + - label: 禁用密码登录 + value: "true" + - label: 允许密码登录 + value: "false" + - default: "false" + edit: true + envKey: RUSTDESK_API_PROXY_ENABLE + labelZh: 启用代理 + labelEn: Enable proxy + required: true + type: select + values: + - label: 启用 + value: "true" + - label: 禁用 + value: "false" + - default: "" + edit: true + envKey: RUSTDESK_API_PROXY_HOST + labelZh: 代理地址 + labelEn: Proxy address + required: false + type: text + - default: "sqlite" + edit: true + envKey: RUSTDESK_API_GORM_TYPE + labelZh: 数据库类型 + labelEn: Database type + required: true + type: select + values: + - label: sqlite + value: "sqlite" + - label: MySQL + value: "mysql" + - default: "127.0.0.1:3306" + edit: true + envKey: RUSTDESK_API_MYSQL_ADDR + labelZh: 数据库地址 + labelEn: Database Host + required: false + type: text + - default: "rustdesk" + edit: true + envKey: RUSTDESK_API_MYSQL_DBNAME + labelZh: 数据库 名称 + labelEn: Database Name + required: false + rule: paramCommon + type: text + - default: "rustdesk" + edit: true + envKey: RUSTDESK_API_MYSQL_USERNAME + labelZh: 数据库 用户名 + labelEn: Database Username + required: false + type: text + - default: "" + edit: true + envKey: RUSTDESK_API_MYSQL_PASSWORD + labelZh: 数据库 密码 + labelEn: Database Password + required: false + rule: paramComplexity + type: password diff --git a/apps/rustdesk-api/s6-latest/docker-compose.yml b/apps/rustdesk-api/s6-latest/docker-compose.yml new file mode 100644 index 000000000..4f452192e --- /dev/null +++ b/apps/rustdesk-api/s6-latest/docker-compose.yml @@ -0,0 +1,41 @@ +networks: + 1panel-network: + external: true + +services: + rustdesk: + image: lejianwen/rustdesk-server-s6:latest + container_name: ${CONTAINER_NAME} + labels: + createdBy: "Apps" + restart: always + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:21114 + - ${PANEL_APP_PORT_NAT}:21115 + - ${PANEL_APP_PORT_ID}:21116 + - ${PANEL_APP_PORT_ID}:21116/udp + - ${PANEL_APP_PORT_SERVER}:21117 + - ${PANEL_APP_PORT_API_WS}:21118 + - ${PANEL_APP_PORT_SERVER_WS}:21119 + env_file: + - ${GLOBAL_ENV_FILE:-/etc/1panel/envs/global.env} + - ${ENV_FILE:-/etc/1panel/envs/default.env} + volumes: + - ${RUSTDESK_API_ROOT_PATH}/api-data:/app/data + environment: + - TZ=Asia/Shanghai + - RUSTDESK_API_LANG=zh-CN + rustdesk-server-s6: + volumes: + - ${RUSTDESK_API_ROOT_PATH}/server-data:/data + - ${RUSTDESK_API_ROOT_PATH}/api-data:/app/data + - ${HBBR_RUN_FILE:-./conf/hbbr/run}:/etc/s6-overlay/s6-rc.d/hbbr/run + - ${HBBS_RUN_FILE:-./conf/hbbs/run}:/etc/s6-overlay/s6-rc.d/hbbs/run + environment: + - TZ=Asia/Shanghai + - MUST_LOGIN=N + - ENCRYPTED_ONLY=1 + - RUSTDESK_API_LANG=zh-CN + - RELAY=${RUSTDESK_SERVER_URL} diff --git a/apps/rustdesk-api/s6-latest/envs/default.env b/apps/rustdesk-api/s6-latest/envs/default.env new file mode 100644 index 000000000..cd05f46e6 --- /dev/null +++ b/apps/rustdesk-api/s6-latest/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/apps/rustdesk-api/s6-latest/envs/global.env b/apps/rustdesk-api/s6-latest/envs/global.env new file mode 100644 index 000000000..e10989fe4 --- /dev/null +++ b/apps/rustdesk-api/s6-latest/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/apps/rustdesk-api/s6-latest/scripts/init.sh b/apps/rustdesk-api/s6-latest/scripts/init.sh new file mode 100644 index 000000000..b7348b2f5 --- /dev/null +++ b/apps/rustdesk-api/s6-latest/scripts/init.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + sed -i '/^GLOBAL_ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env + echo "HBBR_RUN_FILE=${CURRENT_DIR}/conf/hbbr/run" >> .env + echo "HBBS_RUN_FILE=${CURRENT_DIR}/conf/hbbs/run" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/rustdesk-api/s6-latest/scripts/uninstall.sh b/apps/rustdesk-api/s6-latest/scripts/uninstall.sh new file mode 100644 index 000000000..c86c4fbca --- /dev/null +++ b/apps/rustdesk-api/s6-latest/scripts/uninstall.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/apps/rustdesk-api/s6-latest/scripts/upgrade.sh b/apps/rustdesk-api/s6-latest/scripts/upgrade.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/apps/rustdesk-api/s6-latest/scripts/upgrade.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + sed -i '/^GLOBAL_ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi