From 3e3ab1c3646c65331d88cda03926f2182b9e6c36 Mon Sep 17 00:00:00 2001 From: snltty Date: Thu, 4 Dec 2025 17:52:10 +0800 Subject: [PATCH] linker --- apps/linker/app.json | 35 ++++++++++++++++++++++++++ apps/linker/ico-dkapp_linker.png | Bin 0 -> 11774 bytes apps/linker/linker/.env | 4 +++ apps/linker/linker/docker-compose.yml | 29 +++++++++++++++++++++ 4 files changed, 68 insertions(+) create mode 100644 apps/linker/app.json create mode 100644 apps/linker/ico-dkapp_linker.png create mode 100644 apps/linker/linker/.env create mode 100644 apps/linker/linker/docker-compose.yml diff --git a/apps/linker/app.json b/apps/linker/app.json new file mode 100644 index 0000000..10386cb --- /dev/null +++ b/apps/linker/app.json @@ -0,0 +1,35 @@ +{ + "appid": 285, + "appname": "linker", + "apptitle": "Linker", + "apptype": "Tools", + "appTypeCN": "实用工具", + "appversion": [ + {"m_version":"latest","s_version":[]} + ], + "appdesc": "极具特色的异地组网、内网穿透,由P2P打洞(UDP+TCP、IPV4+IPV6) + 服务器实现。让你那些散落在世界各地的联网设备就像在隔壁房间一样轻松访问。", + "appstatus": 1, + "icon": "", + "sort": 98, + "home": "https://linker.snltty.com", + "help": "https://linker-doc.snltty.com", + "cpu": 0, + "mem": 0, + "disk": 10240, + "updateat": 1764839301, + "installed": false, + "reuse": true, + "depend": null, + "field": [ + {"attr":"allow_access","name":"允许外部访问","type":"checkbox","default":true,"suffix":"允许直接通过主机IP+端口访问,如果您设置了域名请不要勾选这里","unit":""}, + {"attr":"cpus","name":"cpu核心数限制","type":"number","default":0,"suffix":"0为不限制,最大可用核心数为: ","unit":""}, + {"attr":"memory_limit","name":"内存限制","type":"number","default":0,"suffix":"0为不限制,最大可用内存为: ","unit":""} + ], + "env": [ + {"key":"app_path","type":"path","default":null,"desc":"应用数据目录"}, + {"key":"host_ip","type":"string","default":null,"desc":"主机IP"}, + {"key":"cpus","type":"number","default":null,"desc":"cpu核心数限制"}, + {"key":"memory_limit","type":"number","default":null,"desc":"内存限制"} + ], + "volumes": {"config": {"type": "path", "desc": "配置目录"}} +} \ No newline at end of file diff --git a/apps/linker/ico-dkapp_linker.png b/apps/linker/ico-dkapp_linker.png new file mode 100644 index 0000000000000000000000000000000000000000..0edcca5cb13ee36f4e2053e094f6be2c8271544e GIT binary patch literal 11774 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 literal 0 HcmV?d00001 diff --git a/apps/linker/linker/.env b/apps/linker/linker/.env new file mode 100644 index 0000000..e73792b --- /dev/null +++ b/apps/linker/linker/.env @@ -0,0 +1,4 @@ +HOST_IP=0.0.0.0 +CPUS=0 +MEMORY_LIMIT=0 +APP_PATH=/www/dk_project/dk_app/linker \ No newline at end of file diff --git a/apps/linker/linker/docker-compose.yml b/apps/linker/linker/docker-compose.yml new file mode 100644 index 0000000..1049c70 --- /dev/null +++ b/apps/linker/linker/docker-compose.yml @@ -0,0 +1,29 @@ +services: + linker: + image: snltty/linker + container_name: linker + deploy: + resources: + limits: + cpus: ${CPUS} + memory: ${MEMORY_LIMIT} + privileged: true + network_mode: host + restart: always + tty: true + stdin_open: true + devices: + - /dev/net/tun:/dev/net/tun + environment: + - SNLTTY_LINKER_IS_BT=linker + volumes: + - ${APP_PATH}/configs:/app/configs + - ${APP_PATH}/logs:/app/logs + labels: + createdBy: "bt_apps" + #networks: + # - baota_net + +#networks: +# baota_net: +# external: true \ No newline at end of file