From 631a7e4d5db6ad0802c23be1128bcea30cdd7bad Mon Sep 17 00:00:00 2001 From: okxlin Date: Mon, 1 Apr 2024 16:31:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0nps=E5=88=B0=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/nps/0.26.18/.env.sample | 14 ++ apps/nps/0.26.18/conf/clients.json | 0 apps/nps/0.26.18/conf/hosts.json | 0 apps/nps/0.26.18/conf/multi_account.conf | 2 + apps/nps/0.26.18/conf/nps.conf | 100 ++++++++++++++ apps/nps/0.26.18/conf/server.key | 27 ++++ apps/nps/0.26.18/conf/server.pem | 22 +++ apps/nps/0.26.18/conf/tasks.json | 0 apps/nps/0.26.18/data.yml | 111 +++++++++++++++ apps/nps/0.26.18/docker-compose.yml | 26 ++++ apps/nps/README.md | 10 ++ apps/nps/bridge-latest/.env.sample | 16 +++ apps/nps/bridge-latest/conf/clients.json | 0 apps/nps/bridge-latest/conf/hosts.json | 0 .../nps/bridge-latest/conf/multi_account.conf | 2 + apps/nps/bridge-latest/conf/nps.conf | 100 ++++++++++++++ apps/nps/bridge-latest/conf/server.key | 27 ++++ apps/nps/bridge-latest/conf/server.pem | 22 +++ apps/nps/bridge-latest/conf/tasks.json | 0 apps/nps/bridge-latest/data.yml | 127 ++++++++++++++++++ apps/nps/bridge-latest/docker-compose.yml | 38 ++++++ apps/nps/data.yml | 20 +++ apps/nps/latest/.env.sample | 14 ++ apps/nps/latest/conf/clients.json | 0 apps/nps/latest/conf/hosts.json | 0 apps/nps/latest/conf/multi_account.conf | 2 + apps/nps/latest/conf/nps.conf | 100 ++++++++++++++ apps/nps/latest/conf/server.key | 27 ++++ apps/nps/latest/conf/server.pem | 22 +++ apps/nps/latest/conf/tasks.json | 0 apps/nps/latest/data.yml | 111 +++++++++++++++ apps/nps/latest/docker-compose.yml | 26 ++++ apps/nps/logo.png | Bin 0 -> 2133 bytes 33 files changed, 966 insertions(+) create mode 100644 apps/nps/0.26.18/.env.sample create mode 100644 apps/nps/0.26.18/conf/clients.json create mode 100644 apps/nps/0.26.18/conf/hosts.json create mode 100644 apps/nps/0.26.18/conf/multi_account.conf create mode 100644 apps/nps/0.26.18/conf/nps.conf create mode 100644 apps/nps/0.26.18/conf/server.key create mode 100644 apps/nps/0.26.18/conf/server.pem create mode 100644 apps/nps/0.26.18/conf/tasks.json create mode 100644 apps/nps/0.26.18/data.yml create mode 100644 apps/nps/0.26.18/docker-compose.yml create mode 100644 apps/nps/README.md create mode 100644 apps/nps/bridge-latest/.env.sample create mode 100644 apps/nps/bridge-latest/conf/clients.json create mode 100644 apps/nps/bridge-latest/conf/hosts.json create mode 100644 apps/nps/bridge-latest/conf/multi_account.conf create mode 100644 apps/nps/bridge-latest/conf/nps.conf create mode 100644 apps/nps/bridge-latest/conf/server.key create mode 100644 apps/nps/bridge-latest/conf/server.pem create mode 100644 apps/nps/bridge-latest/conf/tasks.json create mode 100644 apps/nps/bridge-latest/data.yml create mode 100644 apps/nps/bridge-latest/docker-compose.yml create mode 100644 apps/nps/data.yml create mode 100644 apps/nps/latest/.env.sample create mode 100644 apps/nps/latest/conf/clients.json create mode 100644 apps/nps/latest/conf/hosts.json create mode 100644 apps/nps/latest/conf/multi_account.conf create mode 100644 apps/nps/latest/conf/nps.conf create mode 100644 apps/nps/latest/conf/server.key create mode 100644 apps/nps/latest/conf/server.pem create mode 100644 apps/nps/latest/conf/tasks.json create mode 100644 apps/nps/latest/data.yml create mode 100644 apps/nps/latest/docker-compose.yml create mode 100644 apps/nps/logo.png diff --git a/apps/nps/0.26.18/.env.sample b/apps/nps/0.26.18/.env.sample new file mode 100644 index 00000000..6bca732c --- /dev/null +++ b/apps/nps/0.26.18/.env.sample @@ -0,0 +1,14 @@ +CONTAINER_NAME="nps" +PANEL_APP_PORT_HTTP="40209" +NPS_AUTH_CRYPT_KEY="gl8r0tujikih7br5" +NPS_BRIDGE_PORT="8024" +NPS_BRIDGE_TLS_PORT="8025" +NPS_HTTPS_PROXY_PORT="50443" +NPS_HTTP_PROXY_IP="0.0.0.0" +NPS_HTTP_PROXY_PORT="50080" +NPS_PUBLIC_VKEY="xly7traGe3r0t6UWltristuh1" +NPS_WEB_HOST="http://localhost:40209" +NPS_WEB_OPEN_SSL="false" +NPS_WEB_PASSWORD="123_T8acCj" +NPS_WEB_USERNAME="admin_afmTRb" +TLS_ENABLE_SWITCH="true" diff --git a/apps/nps/0.26.18/conf/clients.json b/apps/nps/0.26.18/conf/clients.json new file mode 100644 index 00000000..e69de29b diff --git a/apps/nps/0.26.18/conf/hosts.json b/apps/nps/0.26.18/conf/hosts.json new file mode 100644 index 00000000..e69de29b diff --git a/apps/nps/0.26.18/conf/multi_account.conf b/apps/nps/0.26.18/conf/multi_account.conf new file mode 100644 index 00000000..e3cd7926 --- /dev/null +++ b/apps/nps/0.26.18/conf/multi_account.conf @@ -0,0 +1,2 @@ +# key -> user | value -> pwd +npc=npc.pwd \ No newline at end of file diff --git a/apps/nps/0.26.18/conf/nps.conf b/apps/nps/0.26.18/conf/nps.conf new file mode 100644 index 00000000..cc246b92 --- /dev/null +++ b/apps/nps/0.26.18/conf/nps.conf @@ -0,0 +1,100 @@ +appname = nps +#Boot mode(dev|pro) +runmode = pro + +#HTTP(S) proxy port, no startup if empty +http_proxy_ip=${NPS_HTTP_PROXY_IP} +http_proxy_port=${NPS_HTTP_PROXY_PORT} +https_proxy_port=${NPS_HTTPS_PROXY_PORT} +https_just_proxy=true +#default https certificate setting +https_default_cert_file=server.pem +https_default_key_file=server.key + +##bridge +bridge_type=tcp +bridge_port=${NPS_BRIDGE_PORT} +bridge_ip=0.0.0.0 + +# Public password, which clients can use to connect to the server +# After the connection, the server will be able to open relevant ports and parse related domain names according to its own configuration file. +public_vkey=${NPS_PUBLIC_VKEY} + +#Traffic data persistence interval(minute) +#Ignorance means no persistence +#flow_store_interval=1 + +# log level LevelEmergency->0 LevelAlert->1 LevelCritical->2 LevelError->3 LevelWarning->4 LevelNotice->5 LevelInformational->6 LevelDebug->7 +log_level=7 +#log_path=nps.log + +#Whether to restrict IP access, true or false or ignore +#ip_limit=true + +#p2p +#p2p_ip=127.0.0.1 +#p2p_port=6000 + +#web +web_host=${NPS_WEB_HOST} +web_username=${NPS_WEB_USERNAME} +web_password=${NPS_WEB_PASSWORD} +web_port = ${NPS_WEB_PORT} +web_ip=0.0.0.0 +web_base_url= +web_open_ssl=${NPS_WEB_OPEN_SSL} +web_cert_file=${NPS_DEFAULT_CERT_FILE} +web_key_file=${NPS_DEFAULT_KEY_FILE} +# if web under proxy use sub path. like http://host/nps need this. +#web_base_url=/nps + +#Web API unauthenticated IP address(the len of auth_crypt_key must be 16) +#Remove comments if needed +#auth_key=test +#获取服务端authKey时的aes加密密钥,16位 +auth_crypt_key =${NPS_AUTH_CRYPT_KEY} + +#allow_ports=9001-9009,10001,11000-12000 + +#Web management multi-user login +allow_user_login=false +allow_user_register=false +allow_user_change_username=false + + +#extension +#流量限制 +allow_flow_limit=false +#带宽限制 +allow_rate_limit=false +#客户端最大隧道数限制 +allow_tunnel_num_limit=false +allow_local_proxy=false +#客户端最大连接数 +allow_connection_num_limit=false +#每个隧道监听不同的服务端端口 +allow_multi_ip=false +system_info_display=false +#获取用户真实ip +http_add_origin_header=true + +#cache +http_cache=false +http_cache_length=100 + +#get origin ip +http_add_origin_header=false + +#pprof debug options +#pprof_ip=0.0.0.0 +#pprof_port=9999 + +#client disconnect timeout +disconnect_timeout=60 +#管理面板开启验证码校验 +open_captcha=false + + +# 是否开启tls +tls_enable=${TLS_ENABLE_SWITCH} +tls_bridge_port=${NPS_BRIDGE_TLS_PORT} diff --git a/apps/nps/0.26.18/conf/server.key b/apps/nps/0.26.18/conf/server.key new file mode 100644 index 00000000..570054af --- /dev/null +++ b/apps/nps/0.26.18/conf/server.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA2MVLOHvgU8FCp6LgQrPfaWcGygrsRk7TL9hbT8MxbCRUSLV7 +Lbt3q5Knz8eTN4NWmwE6L5glOcH2x3Hnn+hPjbvgq35XBBIccAm0cYYKqoKkikeK +FZM0Gp/WhSrhJ4laTyQqyleIFKpwD9kHDiC/sxjGDhSFmHKhhAnsQIRm2tppFXX0 +aAMqJEm88jzk1BN2QtKjEAn1u8v1+QW1KP3WuzdXH4L7hhMll66/KIm6Hfs2FRHQ +pRUWqZeJY4q79NW5p5f+siGwOsGpxb/p11pM+0xnCH3UIFbm3zCTzP4sLvkfFGAe +yAHsAwmaP8dJxh40ej3NN8uNiNvt8nw2Vb/1LwIDAQABAoIBAD40x/RKoEKIyE8B +D6g0pB1EQo+CePFoN3SYewO1uR4WgtVmtxWVoa7r5BpdZGLe3uCWhpMX7z7W6bGs +f1LFQOckjkHIfMIfTGfecRjO5Yqu+Pbxtq+gUah+S/plJr3IzdC+SUVNvzBnBMeX +eU3Vmg2UQ2nQ+9GWu8D/c/vDwxx0X8oQ2G8QaxX0tUurlSMNA3M7xySwEvhx54fO +UrDF3Q4yF48eA4butxVLFWf3cnlY+nR8uYd2vKfmp689/8C6kkfoM9igB78e93sm +uDM2eRLm4kU5WLl301T42n6AF7w8J0MhLLVOIeLs4l5gZPa3uKvYFmuHQao7e/5R +U/jHKrECgYEA8alPXuxFSVOvdhIsSN//Frj9CdExVdYmaLkt/2LO4FMnOaWh1xh7 +5iCY1bJT8D9dhfbqRg3qW2oguZD8gu04R8fTRegQ89qmAIwsEYqVf9salR41lZU4 +Rc+5yc7O11WIe9Lzu+ONFBFkAh3UFMR4zVZ/JhKIG/P5Srm7SUdKW2cCgYEA5aHo +x2LR+yKhjkrBzHG3Qrfy1PtlYHjOpYYAKHQcBFuiG08W3CK/vkYl+mhv0uyhT7mn +q6NDqrpZPRnDlOoEqgRS1X/QWKN6Pgd4HNLIawvp0vK9jYXDPcAXFzVthXCIwFcn +3a3m4cHiuLdRNOHkydiHQyTOF6eEneN07TDvwvkCgYEApzOd1u9igPmFzQuF2GYi ++HXFnaU/nUQuDwcQ7EJRIKRn31raPxiRoQesty5LJU6yRp4wOYgnPliPi9Tk4TGA +XynC4/tMv2vorzhMxVY9Wdke602bhYNZC/RNd3O/aP2lEQdD3Bv04I2nxE8fDb9i +VbAjCRSJV83WDf2zt1+78sECgYEAzezjRiKdcZu9y0/I+WEk2cUCE/MaF2he0FsZ +uy1cjp/qAJltQ5452xUnK6cKWNlxU4CHF0mC/hC8xCldliZCZoEYE3PaUBLSJdwm +35o6tpxpZI3gZJCG5NJlIp/8BkVDrVC7ZHV17hAkFEf4n/bPaB8wNYtE8jt8luaK +TcarzGkCgYBn2alN0RLN2PHDurraFZB6GuCvh/arEjSCY3SDFQPF10CVjTDV7sx3 +eqJkwJ81syTmfJwZIceWbOFGgsuSx37UrQAVlHZSvzeqEg9dA5HqSoOACyidJI7j +RG2+HB+KpsIZjGgLrEM4i7VOpYUDRdaouIXngFq/t9HNT+MDck5/Lw== +-----END RSA PRIVATE KEY----- diff --git a/apps/nps/0.26.18/conf/server.pem b/apps/nps/0.26.18/conf/server.pem new file mode 100644 index 00000000..7908eca5 --- /dev/null +++ b/apps/nps/0.26.18/conf/server.pem @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE----- +MIIDtTCCAp2gAwIBAgIJAPXRSiP0Fs7sMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV +BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX +aWRnaXRzIFB0eSBMdGQwHhcNMTcxMTA3MDg1MzQ2WhcNMjcxMTA1MDg1MzQ2WjBF +MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50 +ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEA2MVLOHvgU8FCp6LgQrPfaWcGygrsRk7TL9hbT8MxbCRUSLV7Lbt3q5Kn +z8eTN4NWmwE6L5glOcH2x3Hnn+hPjbvgq35XBBIccAm0cYYKqoKkikeKFZM0Gp/W +hSrhJ4laTyQqyleIFKpwD9kHDiC/sxjGDhSFmHKhhAnsQIRm2tppFXX0aAMqJEm8 +8jzk1BN2QtKjEAn1u8v1+QW1KP3WuzdXH4L7hhMll66/KIm6Hfs2FRHQpRUWqZeJ +Y4q79NW5p5f+siGwOsGpxb/p11pM+0xnCH3UIFbm3zCTzP4sLvkfFGAeyAHsAwma +P8dJxh40ej3NN8uNiNvt8nw2Vb/1LwIDAQABo4GnMIGkMB0GA1UdDgQWBBQdPc0R +a8alY6Ab7voidkTGaH4PxzB1BgNVHSMEbjBsgBQdPc0Ra8alY6Ab7voidkTGaH4P +x6FJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV +BAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAPXRSiP0Fs7sMAwGA1UdEwQF +MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAH1IZNkjuvt2nZPzXsuiVNyCE1vm346z +naE0Uzt3aseAN9m/iiB8mLz+ryvWc2aFMX5lTdsHdm2rqmqBCBXeRwTLf4OeHIju +ZQW6makWt6PxANEo6gbdPbQXbS420ssUhnR2irIH1SdI31iikVFPdiS0baRRE/gS ++440M1jOOOnKm0Qin92ejsshmji/0qaD2+6D5TNw4HmIZaFTBw+kfjxCL6trfeBn +4fT0RJ121V3G3+AtG5sWQ93B3pCg+jtD+fGKkNSLhphq84bD1Zv7l73QGOoylkEn +Sc0ajTLOXFBb83yRdlgV3Da95jH9rDZ4jSod48m+KemoZTDQw0vSwAU= +-----END CERTIFICATE----- diff --git a/apps/nps/0.26.18/conf/tasks.json b/apps/nps/0.26.18/conf/tasks.json new file mode 100644 index 00000000..e69de29b diff --git a/apps/nps/0.26.18/data.yml b/apps/nps/0.26.18/data.yml new file mode 100644 index 00000000..e10cf211 --- /dev/null +++ b/apps/nps/0.26.18/data.yml @@ -0,0 +1,111 @@ +additionalProperties: + formFields: + - default: 40209 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Web Management Port + labelZh: web 绠$悊绔彛 + required: true + rule: paramPort + type: number + - default: 8024 + edit: true + envKey: NPS_BRIDGE_PORT + labelEn: Server-Client Communication Port + labelZh: 鏈嶅姟绔鎴风閫氫俊绔彛 + required: true + rule: paramPort + type: number + - default: 8025 + edit: true + envKey: NPS_BRIDGE_TLS_PORT + labelEn: Server-Client Communication TLS Port + labelZh: 鏈嶅姟绔鎴风 TLS 閫氫俊绔彛 + required: true + rule: paramPort + type: number + - default: "true" + envKey: TLS_ENABLE_SWITCH + labelEn: Whether TLS is enabled for server-client communication + labelZh: 鏈嶅姟绔笌瀹㈡埛绔殑閫氫俊鏄惁鍚敤 TLS + required: true + type: select + values: + - label: "True" + value: "true" + - label: "False" + value: "false" + - default: http://localhost:40209 + edit: true + envKey: NPS_WEB_HOST + labelEn: External URL(If the default address, please replace localhost with the current service IP) + labelZh: 澶栭儴璁块棶鍦板潃(鑻ラ粯璁ゅ湴鍧璇锋浛鎹 localhost 涓哄綋鍓嶆湇鍔 IP) + required: true + rule: paramExtUrl + type: text + - default: admin + edit: true + envKey: NPS_WEB_USERNAME + labelEn: Web Interface Management Account + labelZh: web 鐣岄潰绠$悊璐﹀彿 + random: true + required: true + rule: paramCommon + type: text + - default: "123" + edit: true + envKey: NPS_WEB_PASSWORD + labelEn: Web Interface Management Password + labelZh: web 鐣岄潰绠$悊瀵嗙爜 + random: true + required: true + rule: paramComplexity + type: password + - default: "false" + edit: true + envKey: NPS_WEB_OPEN_SSL + labelEn: Enable webui https access + labelZh: web 鐣岄潰寮鍚 https 璁块棶 + required: true + rule: paramCommon + type: text + - default: "xly7traGe3r0t6UWltristuh1" + edit: true + envKey: NPS_PUBLIC_VKEY + labelEn: Key When the Client Starts in Configuration File Mode + labelZh: 瀹㈡埛绔互閰嶇疆鏂囦欢妯″紡鍚姩鏃剁殑瀵嗛挜 + required: true + rule: paramCommon + type: text + - default: "gl8r0tujikih7br5" + edit: true + envKey: NPS_AUTH_CRYPT_KEY + labelEn: 16-bit AES Encryption Key + labelZh: 16 浣 AES 鍔犲瘑瀵嗛挜 + required: true + rule: paramCommon + type: text + - default: 0.0.0.0 + edit: true + envKey: NPS_HTTP_PROXY_IP + labelEn: Http Proxy IP + labelZh: 鍩熷悕浠g悊 http 浠g悊鐩戝惉鍦板潃 + required: true + rule: paramCommon + type: text + - default: 50080 + edit: true + envKey: NPS_HTTP_PROXY_PORT + labelEn: Http Proxy Port + labelZh: 鍩熷悕浠g悊 http 浠g悊鐩戝惉绔彛 + required: true + rule: paramPort + type: number + - default: 50443 + edit: true + envKey: NPS_HTTPS_PROXY_PORT + labelEn: Https Proxy Port + labelZh: 鍩熷悕浠g悊 https 浠g悊鐩戝惉绔彛 + required: true + rule: paramPort + type: number diff --git a/apps/nps/0.26.18/docker-compose.yml b/apps/nps/0.26.18/docker-compose.yml new file mode 100644 index 00000000..69a5bf55 --- /dev/null +++ b/apps/nps/0.26.18/docker-compose.yml @@ -0,0 +1,26 @@ +version: "3" +services: + nps: + image: yisier1/nps:v0.26.18 + container_name: ${CONTAINER_NAME} + restart: always + volumes: + - ./conf:/conf + - /etc/localtime:/etc/localtime:ro + environment: + NPS_WEB_HOST: ${NPS_WEB_HOST} + NPS_WEB_PORT: ${PANEL_APP_PORT_HTTP} + NPS_WEB_USERNAME: ${NPS_WEB_USERNAME} + NPS_WEB_PASSWORD: ${NPS_WEB_PASSWORD} + NPS_WEB_OPEN_SSL: ${NPS_WEB_OPEN_SSL} + NPS_PUBLIC_VKEY: ${NPS_PUBLIC_VKEY} + NPS_BRIDGE_PORT: ${NPS_BRIDGE_PORT} + NPS_BRIDGE_TLS_PORT: ${NPS_BRIDGE_TLS_PORT} + NPS_AUTH_CRYPT_KEY: ${NPS_AUTH_CRYPT_KEY} + NPS_HTTP_PROXY_IP: ${NPS_HTTP_PROXY_IP} + NPS_HTTP_PROXY_PORT: ${NPS_HTTP_PROXY_PORT} + NPS_HTTPS_PROXY_PORT: ${NPS_HTTPS_PROXY_PORT} + TLS_ENABLE_SWITCH: ${TLS_ENABLE_SWITCH} + network_mode: "host" + labels: + createdBy: "Apps" diff --git a/apps/nps/README.md b/apps/nps/README.md new file mode 100644 index 00000000..4950ec61 --- /dev/null +++ b/apps/nps/README.md @@ -0,0 +1,10 @@ +# NPS + +[README](https://github.com/ehang-io/nps/blob/master/README.md)|[涓枃鏂囨。](https://github.com/ehang-io/nps/blob/master/README_zh.md) + +# 璇存槑 +鐢变簬nps宸茬粡鏈変簩骞村鐨勬椂闂存病鏈夋洿鏂颁簡锛屽瓨鐣欎簡涓嶅皯bug鍜屾湭瀹屽杽鐨勫姛鑳姐 + +姝ょ増鏈熀浜 nps 0.26.10鐨勫熀纭涓婁簩娆″紑鍙戣屾潵銆 + +***DockerHub***锛 [NPS](https://hub.docker.com/r/yisier1/nps) [NPC](https://hub.docker.com/r/yisier1/npc) diff --git a/apps/nps/bridge-latest/.env.sample b/apps/nps/bridge-latest/.env.sample new file mode 100644 index 00000000..db55485a --- /dev/null +++ b/apps/nps/bridge-latest/.env.sample @@ -0,0 +1,16 @@ +CONTAINER_NAME="nps" +PANEL_APP_PORT_HTTP="40209" +NPS_AUTH_CRYPT_KEY="gl8r0tujikih7br5" +NPS_BRIDGE_PORT="8024" +NPS_BRIDGE_TLS_PORT="8025" +NPS_HTTPS_PROXY_PORT="50443" +NPS_HTTP_PROXY_IP="0.0.0.0" +NPS_HTTP_PROXY_PORT="50080" +NPS_PUBLIC_VKEY="xly7traGe3r0t6UWltristuh1" +NPS_RANDOM_PORT_END="20200" +NPS_RANDOM_PORT_START="20100" +NPS_WEB_HOST="http://localhost:40209" +NPS_WEB_OPEN_SSL="false" +NPS_WEB_PASSWORD="123_T8acCj" +NPS_WEB_USERNAME="admin_afmTRb" +TLS_ENABLE_SWITCH="true" diff --git a/apps/nps/bridge-latest/conf/clients.json b/apps/nps/bridge-latest/conf/clients.json new file mode 100644 index 00000000..e69de29b diff --git a/apps/nps/bridge-latest/conf/hosts.json b/apps/nps/bridge-latest/conf/hosts.json new file mode 100644 index 00000000..e69de29b diff --git a/apps/nps/bridge-latest/conf/multi_account.conf b/apps/nps/bridge-latest/conf/multi_account.conf new file mode 100644 index 00000000..e3cd7926 --- /dev/null +++ b/apps/nps/bridge-latest/conf/multi_account.conf @@ -0,0 +1,2 @@ +# key -> user | value -> pwd +npc=npc.pwd \ No newline at end of file diff --git a/apps/nps/bridge-latest/conf/nps.conf b/apps/nps/bridge-latest/conf/nps.conf new file mode 100644 index 00000000..cc246b92 --- /dev/null +++ b/apps/nps/bridge-latest/conf/nps.conf @@ -0,0 +1,100 @@ +appname = nps +#Boot mode(dev|pro) +runmode = pro + +#HTTP(S) proxy port, no startup if empty +http_proxy_ip=${NPS_HTTP_PROXY_IP} +http_proxy_port=${NPS_HTTP_PROXY_PORT} +https_proxy_port=${NPS_HTTPS_PROXY_PORT} +https_just_proxy=true +#default https certificate setting +https_default_cert_file=server.pem +https_default_key_file=server.key + +##bridge +bridge_type=tcp +bridge_port=${NPS_BRIDGE_PORT} +bridge_ip=0.0.0.0 + +# Public password, which clients can use to connect to the server +# After the connection, the server will be able to open relevant ports and parse related domain names according to its own configuration file. +public_vkey=${NPS_PUBLIC_VKEY} + +#Traffic data persistence interval(minute) +#Ignorance means no persistence +#flow_store_interval=1 + +# log level LevelEmergency->0 LevelAlert->1 LevelCritical->2 LevelError->3 LevelWarning->4 LevelNotice->5 LevelInformational->6 LevelDebug->7 +log_level=7 +#log_path=nps.log + +#Whether to restrict IP access, true or false or ignore +#ip_limit=true + +#p2p +#p2p_ip=127.0.0.1 +#p2p_port=6000 + +#web +web_host=${NPS_WEB_HOST} +web_username=${NPS_WEB_USERNAME} +web_password=${NPS_WEB_PASSWORD} +web_port = ${NPS_WEB_PORT} +web_ip=0.0.0.0 +web_base_url= +web_open_ssl=${NPS_WEB_OPEN_SSL} +web_cert_file=${NPS_DEFAULT_CERT_FILE} +web_key_file=${NPS_DEFAULT_KEY_FILE} +# if web under proxy use sub path. like http://host/nps need this. +#web_base_url=/nps + +#Web API unauthenticated IP address(the len of auth_crypt_key must be 16) +#Remove comments if needed +#auth_key=test +#获取服务端authKey时的aes加密密钥,16位 +auth_crypt_key =${NPS_AUTH_CRYPT_KEY} + +#allow_ports=9001-9009,10001,11000-12000 + +#Web management multi-user login +allow_user_login=false +allow_user_register=false +allow_user_change_username=false + + +#extension +#流量限制 +allow_flow_limit=false +#带宽限制 +allow_rate_limit=false +#客户端最大隧道数限制 +allow_tunnel_num_limit=false +allow_local_proxy=false +#客户端最大连接数 +allow_connection_num_limit=false +#每个隧道监听不同的服务端端口 +allow_multi_ip=false +system_info_display=false +#获取用户真实ip +http_add_origin_header=true + +#cache +http_cache=false +http_cache_length=100 + +#get origin ip +http_add_origin_header=false + +#pprof debug options +#pprof_ip=0.0.0.0 +#pprof_port=9999 + +#client disconnect timeout +disconnect_timeout=60 +#管理面板开启验证码校验 +open_captcha=false + + +# 是否开启tls +tls_enable=${TLS_ENABLE_SWITCH} +tls_bridge_port=${NPS_BRIDGE_TLS_PORT} diff --git a/apps/nps/bridge-latest/conf/server.key b/apps/nps/bridge-latest/conf/server.key new file mode 100644 index 00000000..570054af --- /dev/null +++ b/apps/nps/bridge-latest/conf/server.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA2MVLOHvgU8FCp6LgQrPfaWcGygrsRk7TL9hbT8MxbCRUSLV7 +Lbt3q5Knz8eTN4NWmwE6L5glOcH2x3Hnn+hPjbvgq35XBBIccAm0cYYKqoKkikeK +FZM0Gp/WhSrhJ4laTyQqyleIFKpwD9kHDiC/sxjGDhSFmHKhhAnsQIRm2tppFXX0 +aAMqJEm88jzk1BN2QtKjEAn1u8v1+QW1KP3WuzdXH4L7hhMll66/KIm6Hfs2FRHQ +pRUWqZeJY4q79NW5p5f+siGwOsGpxb/p11pM+0xnCH3UIFbm3zCTzP4sLvkfFGAe +yAHsAwmaP8dJxh40ej3NN8uNiNvt8nw2Vb/1LwIDAQABAoIBAD40x/RKoEKIyE8B +D6g0pB1EQo+CePFoN3SYewO1uR4WgtVmtxWVoa7r5BpdZGLe3uCWhpMX7z7W6bGs +f1LFQOckjkHIfMIfTGfecRjO5Yqu+Pbxtq+gUah+S/plJr3IzdC+SUVNvzBnBMeX +eU3Vmg2UQ2nQ+9GWu8D/c/vDwxx0X8oQ2G8QaxX0tUurlSMNA3M7xySwEvhx54fO +UrDF3Q4yF48eA4butxVLFWf3cnlY+nR8uYd2vKfmp689/8C6kkfoM9igB78e93sm +uDM2eRLm4kU5WLl301T42n6AF7w8J0MhLLVOIeLs4l5gZPa3uKvYFmuHQao7e/5R +U/jHKrECgYEA8alPXuxFSVOvdhIsSN//Frj9CdExVdYmaLkt/2LO4FMnOaWh1xh7 +5iCY1bJT8D9dhfbqRg3qW2oguZD8gu04R8fTRegQ89qmAIwsEYqVf9salR41lZU4 +Rc+5yc7O11WIe9Lzu+ONFBFkAh3UFMR4zVZ/JhKIG/P5Srm7SUdKW2cCgYEA5aHo +x2LR+yKhjkrBzHG3Qrfy1PtlYHjOpYYAKHQcBFuiG08W3CK/vkYl+mhv0uyhT7mn +q6NDqrpZPRnDlOoEqgRS1X/QWKN6Pgd4HNLIawvp0vK9jYXDPcAXFzVthXCIwFcn +3a3m4cHiuLdRNOHkydiHQyTOF6eEneN07TDvwvkCgYEApzOd1u9igPmFzQuF2GYi ++HXFnaU/nUQuDwcQ7EJRIKRn31raPxiRoQesty5LJU6yRp4wOYgnPliPi9Tk4TGA +XynC4/tMv2vorzhMxVY9Wdke602bhYNZC/RNd3O/aP2lEQdD3Bv04I2nxE8fDb9i +VbAjCRSJV83WDf2zt1+78sECgYEAzezjRiKdcZu9y0/I+WEk2cUCE/MaF2he0FsZ +uy1cjp/qAJltQ5452xUnK6cKWNlxU4CHF0mC/hC8xCldliZCZoEYE3PaUBLSJdwm +35o6tpxpZI3gZJCG5NJlIp/8BkVDrVC7ZHV17hAkFEf4n/bPaB8wNYtE8jt8luaK +TcarzGkCgYBn2alN0RLN2PHDurraFZB6GuCvh/arEjSCY3SDFQPF10CVjTDV7sx3 +eqJkwJ81syTmfJwZIceWbOFGgsuSx37UrQAVlHZSvzeqEg9dA5HqSoOACyidJI7j +RG2+HB+KpsIZjGgLrEM4i7VOpYUDRdaouIXngFq/t9HNT+MDck5/Lw== +-----END RSA PRIVATE KEY----- diff --git a/apps/nps/bridge-latest/conf/server.pem b/apps/nps/bridge-latest/conf/server.pem new file mode 100644 index 00000000..7908eca5 --- /dev/null +++ b/apps/nps/bridge-latest/conf/server.pem @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE----- +MIIDtTCCAp2gAwIBAgIJAPXRSiP0Fs7sMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV +BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX +aWRnaXRzIFB0eSBMdGQwHhcNMTcxMTA3MDg1MzQ2WhcNMjcxMTA1MDg1MzQ2WjBF +MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50 +ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEA2MVLOHvgU8FCp6LgQrPfaWcGygrsRk7TL9hbT8MxbCRUSLV7Lbt3q5Kn +z8eTN4NWmwE6L5glOcH2x3Hnn+hPjbvgq35XBBIccAm0cYYKqoKkikeKFZM0Gp/W +hSrhJ4laTyQqyleIFKpwD9kHDiC/sxjGDhSFmHKhhAnsQIRm2tppFXX0aAMqJEm8 +8jzk1BN2QtKjEAn1u8v1+QW1KP3WuzdXH4L7hhMll66/KIm6Hfs2FRHQpRUWqZeJ +Y4q79NW5p5f+siGwOsGpxb/p11pM+0xnCH3UIFbm3zCTzP4sLvkfFGAeyAHsAwma +P8dJxh40ej3NN8uNiNvt8nw2Vb/1LwIDAQABo4GnMIGkMB0GA1UdDgQWBBQdPc0R +a8alY6Ab7voidkTGaH4PxzB1BgNVHSMEbjBsgBQdPc0Ra8alY6Ab7voidkTGaH4P +x6FJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV +BAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAPXRSiP0Fs7sMAwGA1UdEwQF +MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAH1IZNkjuvt2nZPzXsuiVNyCE1vm346z +naE0Uzt3aseAN9m/iiB8mLz+ryvWc2aFMX5lTdsHdm2rqmqBCBXeRwTLf4OeHIju +ZQW6makWt6PxANEo6gbdPbQXbS420ssUhnR2irIH1SdI31iikVFPdiS0baRRE/gS ++440M1jOOOnKm0Qin92ejsshmji/0qaD2+6D5TNw4HmIZaFTBw+kfjxCL6trfeBn +4fT0RJ121V3G3+AtG5sWQ93B3pCg+jtD+fGKkNSLhphq84bD1Zv7l73QGOoylkEn +Sc0ajTLOXFBb83yRdlgV3Da95jH9rDZ4jSod48m+KemoZTDQw0vSwAU= +-----END CERTIFICATE----- diff --git a/apps/nps/bridge-latest/conf/tasks.json b/apps/nps/bridge-latest/conf/tasks.json new file mode 100644 index 00000000..e69de29b diff --git a/apps/nps/bridge-latest/data.yml b/apps/nps/bridge-latest/data.yml new file mode 100644 index 00000000..47bff93a --- /dev/null +++ b/apps/nps/bridge-latest/data.yml @@ -0,0 +1,127 @@ +additionalProperties: + formFields: + - default: 40209 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Web Management Port + labelZh: web 绠$悊绔彛 + required: true + rule: paramPort + type: number + - default: 8024 + edit: true + envKey: NPS_BRIDGE_PORT + labelEn: Server-Client Communication Port + labelZh: 鏈嶅姟绔鎴风閫氫俊绔彛 + required: true + rule: paramPort + type: number + - default: 8025 + edit: true + envKey: NPS_BRIDGE_TLS_PORT + labelEn: Server-Client Communication TLS Port + labelZh: 鏈嶅姟绔鎴风 tls 閫氫俊绔彛 + required: true + rule: paramPort + type: number + - default: "true" + envKey: TLS_ENABLE_SWITCH + labelEn: Whether TLS is enabled for server-client communication + labelZh: 鏈嶅姟绔笌瀹㈡埛绔殑閫氫俊鏄惁鍚敤 TLS + required: true + type: select + values: + - label: "True" + value: "true" + - label: "False" + value: "false" + - default: http://localhost:40209 + edit: true + envKey: NPS_WEB_HOST + labelEn: External URL(If the default address, please replace localhost with the current service IP) + labelZh: 澶栭儴璁块棶鍦板潃(鑻ラ粯璁ゅ湴鍧璇锋浛鎹 localhost 涓哄綋鍓嶆湇鍔 IP) + required: true + rule: paramExtUrl + type: text + - default: admin + edit: true + envKey: NPS_WEB_USERNAME + labelEn: Web Interface Management Account + labelZh: web 鐣岄潰绠$悊璐﹀彿 + random: true + required: true + rule: paramCommon + type: text + - default: "123" + edit: true + envKey: NPS_WEB_PASSWORD + labelEn: Web Interface Management Password + labelZh: web 鐣岄潰绠$悊瀵嗙爜 + random: true + required: true + rule: paramComplexity + type: password + - default: "false" + edit: true + envKey: NPS_WEB_OPEN_SSL + labelEn: Enable webui https access + labelZh: web 鐣岄潰寮鍚 https 璁块棶 + required: true + rule: paramCommon + type: text + - default: 20100 + edit: true + envKey: NPS_RANDOM_PORT_START + labelEn: Dynamic Port Range Start + labelZh: 鍔ㄦ佺鍙h寖鍥村紑濮 + required: true + rule: paramPort + type: number + - default: 20200 + edit: true + envKey: NPS_RANDOM_PORT_END + labelEn: Dynamic Port Range End + labelZh: 鍔ㄦ佺鍙h寖鍥寸粨鏉 + required: true + rule: paramPort + type: number + - default: "xly7traGe3r0t6UWltristuh1" + edit: true + envKey: NPS_PUBLIC_VKEY + labelEn: Key When the Client Starts in Configuration File Mode + labelZh: 瀹㈡埛绔互閰嶇疆鏂囦欢妯″紡鍚姩鏃剁殑瀵嗛挜 + required: true + rule: paramCommon + type: text + - default: "gl8r0tujikih7br5" + edit: true + envKey: NPS_AUTH_CRYPT_KEY + labelEn: 16-bit AES Encryption Key + labelZh: 16 浣 AES 鍔犲瘑瀵嗛挜 + required: true + rule: paramCommon + type: text + - default: 0.0.0.0 + edit: true + envKey: NPS_HTTP_PROXY_IP + labelEn: Http Proxy IP + labelZh: 鍩熷悕浠g悊 http 浠g悊鐩戝惉鍦板潃 + required: true + rule: paramCommon + type: text + - default: 50080 + edit: true + envKey: NPS_HTTP_PROXY_PORT + labelEn: Http Proxy Port + labelZh: 鍩熷悕浠g悊 http 浠g悊鐩戝惉绔彛 + required: true + rule: paramPort + type: number + - default: 50443 + edit: true + envKey: NPS_HTTPS_PROXY_PORT + labelEn: Https Proxy Port + labelZh: 鍩熷悕浠g悊 https 浠g悊鐩戝惉绔彛 + required: true + rule: paramPort + type: number diff --git a/apps/nps/bridge-latest/docker-compose.yml b/apps/nps/bridge-latest/docker-compose.yml new file mode 100644 index 00000000..269914f6 --- /dev/null +++ b/apps/nps/bridge-latest/docker-compose.yml @@ -0,0 +1,38 @@ +version: "3" +services: + nps: + image: yisier1/nps:latest + container_name: ${CONTAINER_NAME} + ports: + - ${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP} + - ${NPS_BRIDGE_PORT}:${NPS_BRIDGE_PORT} + - ${NPS_BRIDGE_TLS_PORT}:${NPS_BRIDGE_TLS_PORT} + - ${NPS_HTTP_PROXY_PORT}:${NPS_HTTP_PROXY_PORT} + - ${NPS_HTTPS_PROXY_PORT}:${NPS_HTTPS_PROXY_PORT} + - ${NPS_RANDOM_PORT_START}-${NPS_RANDOM_PORT_END}:${NPS_RANDOM_PORT_START}-${NPS_RANDOM_PORT_END} + restart: always + volumes: + - ./conf:/conf + - /etc/localtime:/etc/localtime:ro + environment: + NPS_WEB_HOST: ${NPS_WEB_HOST} + NPS_WEB_PORT: ${PANEL_APP_PORT_HTTP} + NPS_WEB_USERNAME: ${NPS_WEB_USERNAME} + NPS_WEB_PASSWORD: ${NPS_WEB_PASSWORD} + NPS_WEB_OPEN_SSL: ${NPS_WEB_OPEN_SSL} + NPS_PUBLIC_VKEY: ${NPS_PUBLIC_VKEY} + NPS_BRIDGE_PORT: ${NPS_BRIDGE_PORT} + NPS_BRIDGE_TLS_PORT: ${NPS_BRIDGE_TLS_PORT} + NPS_AUTH_CRYPT_KEY: ${NPS_AUTH_CRYPT_KEY} + NPS_HTTP_PROXY_IP: ${NPS_HTTP_PROXY_IP} + NPS_HTTP_PROXY_PORT: ${NPS_HTTP_PROXY_PORT} + NPS_HTTPS_PROXY_PORT: ${NPS_HTTPS_PROXY_PORT} + TLS_ENABLE_SWITCH: ${TLS_ENABLE_SWITCH} + networks: + - 1panel-network + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true \ No newline at end of file diff --git a/apps/nps/data.yml b/apps/nps/data.yml new file mode 100644 index 00000000..2433fe62 --- /dev/null +++ b/apps/nps/data.yml @@ -0,0 +1,20 @@ +name: NPS +tags: + - 宸ュ叿 +title: 杞婚噺绾с侀珮鎬ц兘銆佸姛鑳藉己澶х殑鍐呯綉绌块忎唬鐞嗘湇鍔″櫒 +type: 宸ュ叿 +description: 杞婚噺绾с侀珮鎬ц兘銆佸姛鑳藉己澶х殑鍐呯綉绌块忎唬鐞嗘湇鍔″櫒 +additionalProperties: + key: nps + name: NPS + tags: + - Tool + shortDescZh: 杞婚噺绾с侀珮鎬ц兘銆佸姛鑳藉己澶х殑鍐呯綉绌块忎唬鐞嗘湇鍔″櫒 + shortDescEn: Lightweight, high-performance, powerful intranet penetration proxy server + type: tool + crossVersionUpdate: true + limit: 1 + recommend: 0 + website: https://ehang-io.github.io/nps + github: https://github.com/yisier/nps + document: https://ehang-io.github.io/nps diff --git a/apps/nps/latest/.env.sample b/apps/nps/latest/.env.sample new file mode 100644 index 00000000..6bca732c --- /dev/null +++ b/apps/nps/latest/.env.sample @@ -0,0 +1,14 @@ +CONTAINER_NAME="nps" +PANEL_APP_PORT_HTTP="40209" +NPS_AUTH_CRYPT_KEY="gl8r0tujikih7br5" +NPS_BRIDGE_PORT="8024" +NPS_BRIDGE_TLS_PORT="8025" +NPS_HTTPS_PROXY_PORT="50443" +NPS_HTTP_PROXY_IP="0.0.0.0" +NPS_HTTP_PROXY_PORT="50080" +NPS_PUBLIC_VKEY="xly7traGe3r0t6UWltristuh1" +NPS_WEB_HOST="http://localhost:40209" +NPS_WEB_OPEN_SSL="false" +NPS_WEB_PASSWORD="123_T8acCj" +NPS_WEB_USERNAME="admin_afmTRb" +TLS_ENABLE_SWITCH="true" diff --git a/apps/nps/latest/conf/clients.json b/apps/nps/latest/conf/clients.json new file mode 100644 index 00000000..e69de29b diff --git a/apps/nps/latest/conf/hosts.json b/apps/nps/latest/conf/hosts.json new file mode 100644 index 00000000..e69de29b diff --git a/apps/nps/latest/conf/multi_account.conf b/apps/nps/latest/conf/multi_account.conf new file mode 100644 index 00000000..e3cd7926 --- /dev/null +++ b/apps/nps/latest/conf/multi_account.conf @@ -0,0 +1,2 @@ +# key -> user | value -> pwd +npc=npc.pwd \ No newline at end of file diff --git a/apps/nps/latest/conf/nps.conf b/apps/nps/latest/conf/nps.conf new file mode 100644 index 00000000..cc246b92 --- /dev/null +++ b/apps/nps/latest/conf/nps.conf @@ -0,0 +1,100 @@ +appname = nps +#Boot mode(dev|pro) +runmode = pro + +#HTTP(S) proxy port, no startup if empty +http_proxy_ip=${NPS_HTTP_PROXY_IP} +http_proxy_port=${NPS_HTTP_PROXY_PORT} +https_proxy_port=${NPS_HTTPS_PROXY_PORT} +https_just_proxy=true +#default https certificate setting +https_default_cert_file=server.pem +https_default_key_file=server.key + +##bridge +bridge_type=tcp +bridge_port=${NPS_BRIDGE_PORT} +bridge_ip=0.0.0.0 + +# Public password, which clients can use to connect to the server +# After the connection, the server will be able to open relevant ports and parse related domain names according to its own configuration file. +public_vkey=${NPS_PUBLIC_VKEY} + +#Traffic data persistence interval(minute) +#Ignorance means no persistence +#flow_store_interval=1 + +# log level LevelEmergency->0 LevelAlert->1 LevelCritical->2 LevelError->3 LevelWarning->4 LevelNotice->5 LevelInformational->6 LevelDebug->7 +log_level=7 +#log_path=nps.log + +#Whether to restrict IP access, true or false or ignore +#ip_limit=true + +#p2p +#p2p_ip=127.0.0.1 +#p2p_port=6000 + +#web +web_host=${NPS_WEB_HOST} +web_username=${NPS_WEB_USERNAME} +web_password=${NPS_WEB_PASSWORD} +web_port = ${NPS_WEB_PORT} +web_ip=0.0.0.0 +web_base_url= +web_open_ssl=${NPS_WEB_OPEN_SSL} +web_cert_file=${NPS_DEFAULT_CERT_FILE} +web_key_file=${NPS_DEFAULT_KEY_FILE} +# if web under proxy use sub path. like http://host/nps need this. +#web_base_url=/nps + +#Web API unauthenticated IP address(the len of auth_crypt_key must be 16) +#Remove comments if needed +#auth_key=test +#获取服务端authKey时的aes加密密钥,16位 +auth_crypt_key =${NPS_AUTH_CRYPT_KEY} + +#allow_ports=9001-9009,10001,11000-12000 + +#Web management multi-user login +allow_user_login=false +allow_user_register=false +allow_user_change_username=false + + +#extension +#流量限制 +allow_flow_limit=false +#带宽限制 +allow_rate_limit=false +#客户端最大隧道数限制 +allow_tunnel_num_limit=false +allow_local_proxy=false +#客户端最大连接数 +allow_connection_num_limit=false +#每个隧道监听不同的服务端端口 +allow_multi_ip=false +system_info_display=false +#获取用户真实ip +http_add_origin_header=true + +#cache +http_cache=false +http_cache_length=100 + +#get origin ip +http_add_origin_header=false + +#pprof debug options +#pprof_ip=0.0.0.0 +#pprof_port=9999 + +#client disconnect timeout +disconnect_timeout=60 +#管理面板开启验证码校验 +open_captcha=false + + +# 是否开启tls +tls_enable=${TLS_ENABLE_SWITCH} +tls_bridge_port=${NPS_BRIDGE_TLS_PORT} diff --git a/apps/nps/latest/conf/server.key b/apps/nps/latest/conf/server.key new file mode 100644 index 00000000..570054af --- /dev/null +++ b/apps/nps/latest/conf/server.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA2MVLOHvgU8FCp6LgQrPfaWcGygrsRk7TL9hbT8MxbCRUSLV7 +Lbt3q5Knz8eTN4NWmwE6L5glOcH2x3Hnn+hPjbvgq35XBBIccAm0cYYKqoKkikeK +FZM0Gp/WhSrhJ4laTyQqyleIFKpwD9kHDiC/sxjGDhSFmHKhhAnsQIRm2tppFXX0 +aAMqJEm88jzk1BN2QtKjEAn1u8v1+QW1KP3WuzdXH4L7hhMll66/KIm6Hfs2FRHQ +pRUWqZeJY4q79NW5p5f+siGwOsGpxb/p11pM+0xnCH3UIFbm3zCTzP4sLvkfFGAe +yAHsAwmaP8dJxh40ej3NN8uNiNvt8nw2Vb/1LwIDAQABAoIBAD40x/RKoEKIyE8B +D6g0pB1EQo+CePFoN3SYewO1uR4WgtVmtxWVoa7r5BpdZGLe3uCWhpMX7z7W6bGs +f1LFQOckjkHIfMIfTGfecRjO5Yqu+Pbxtq+gUah+S/plJr3IzdC+SUVNvzBnBMeX +eU3Vmg2UQ2nQ+9GWu8D/c/vDwxx0X8oQ2G8QaxX0tUurlSMNA3M7xySwEvhx54fO +UrDF3Q4yF48eA4butxVLFWf3cnlY+nR8uYd2vKfmp689/8C6kkfoM9igB78e93sm +uDM2eRLm4kU5WLl301T42n6AF7w8J0MhLLVOIeLs4l5gZPa3uKvYFmuHQao7e/5R +U/jHKrECgYEA8alPXuxFSVOvdhIsSN//Frj9CdExVdYmaLkt/2LO4FMnOaWh1xh7 +5iCY1bJT8D9dhfbqRg3qW2oguZD8gu04R8fTRegQ89qmAIwsEYqVf9salR41lZU4 +Rc+5yc7O11WIe9Lzu+ONFBFkAh3UFMR4zVZ/JhKIG/P5Srm7SUdKW2cCgYEA5aHo +x2LR+yKhjkrBzHG3Qrfy1PtlYHjOpYYAKHQcBFuiG08W3CK/vkYl+mhv0uyhT7mn +q6NDqrpZPRnDlOoEqgRS1X/QWKN6Pgd4HNLIawvp0vK9jYXDPcAXFzVthXCIwFcn +3a3m4cHiuLdRNOHkydiHQyTOF6eEneN07TDvwvkCgYEApzOd1u9igPmFzQuF2GYi ++HXFnaU/nUQuDwcQ7EJRIKRn31raPxiRoQesty5LJU6yRp4wOYgnPliPi9Tk4TGA +XynC4/tMv2vorzhMxVY9Wdke602bhYNZC/RNd3O/aP2lEQdD3Bv04I2nxE8fDb9i +VbAjCRSJV83WDf2zt1+78sECgYEAzezjRiKdcZu9y0/I+WEk2cUCE/MaF2he0FsZ +uy1cjp/qAJltQ5452xUnK6cKWNlxU4CHF0mC/hC8xCldliZCZoEYE3PaUBLSJdwm +35o6tpxpZI3gZJCG5NJlIp/8BkVDrVC7ZHV17hAkFEf4n/bPaB8wNYtE8jt8luaK +TcarzGkCgYBn2alN0RLN2PHDurraFZB6GuCvh/arEjSCY3SDFQPF10CVjTDV7sx3 +eqJkwJ81syTmfJwZIceWbOFGgsuSx37UrQAVlHZSvzeqEg9dA5HqSoOACyidJI7j +RG2+HB+KpsIZjGgLrEM4i7VOpYUDRdaouIXngFq/t9HNT+MDck5/Lw== +-----END RSA PRIVATE KEY----- diff --git a/apps/nps/latest/conf/server.pem b/apps/nps/latest/conf/server.pem new file mode 100644 index 00000000..7908eca5 --- /dev/null +++ b/apps/nps/latest/conf/server.pem @@ -0,0 +1,22 @@ +-----BEGIN CERTIFICATE----- +MIIDtTCCAp2gAwIBAgIJAPXRSiP0Fs7sMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV +BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX +aWRnaXRzIFB0eSBMdGQwHhcNMTcxMTA3MDg1MzQ2WhcNMjcxMTA1MDg1MzQ2WjBF +MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50 +ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEA2MVLOHvgU8FCp6LgQrPfaWcGygrsRk7TL9hbT8MxbCRUSLV7Lbt3q5Kn +z8eTN4NWmwE6L5glOcH2x3Hnn+hPjbvgq35XBBIccAm0cYYKqoKkikeKFZM0Gp/W +hSrhJ4laTyQqyleIFKpwD9kHDiC/sxjGDhSFmHKhhAnsQIRm2tppFXX0aAMqJEm8 +8jzk1BN2QtKjEAn1u8v1+QW1KP3WuzdXH4L7hhMll66/KIm6Hfs2FRHQpRUWqZeJ +Y4q79NW5p5f+siGwOsGpxb/p11pM+0xnCH3UIFbm3zCTzP4sLvkfFGAeyAHsAwma +P8dJxh40ej3NN8uNiNvt8nw2Vb/1LwIDAQABo4GnMIGkMB0GA1UdDgQWBBQdPc0R +a8alY6Ab7voidkTGaH4PxzB1BgNVHSMEbjBsgBQdPc0Ra8alY6Ab7voidkTGaH4P +x6FJpEcwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNV +BAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZIIJAPXRSiP0Fs7sMAwGA1UdEwQF +MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAH1IZNkjuvt2nZPzXsuiVNyCE1vm346z +naE0Uzt3aseAN9m/iiB8mLz+ryvWc2aFMX5lTdsHdm2rqmqBCBXeRwTLf4OeHIju +ZQW6makWt6PxANEo6gbdPbQXbS420ssUhnR2irIH1SdI31iikVFPdiS0baRRE/gS ++440M1jOOOnKm0Qin92ejsshmji/0qaD2+6D5TNw4HmIZaFTBw+kfjxCL6trfeBn +4fT0RJ121V3G3+AtG5sWQ93B3pCg+jtD+fGKkNSLhphq84bD1Zv7l73QGOoylkEn +Sc0ajTLOXFBb83yRdlgV3Da95jH9rDZ4jSod48m+KemoZTDQw0vSwAU= +-----END CERTIFICATE----- diff --git a/apps/nps/latest/conf/tasks.json b/apps/nps/latest/conf/tasks.json new file mode 100644 index 00000000..e69de29b diff --git a/apps/nps/latest/data.yml b/apps/nps/latest/data.yml new file mode 100644 index 00000000..e10cf211 --- /dev/null +++ b/apps/nps/latest/data.yml @@ -0,0 +1,111 @@ +additionalProperties: + formFields: + - default: 40209 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Web Management Port + labelZh: web 绠$悊绔彛 + required: true + rule: paramPort + type: number + - default: 8024 + edit: true + envKey: NPS_BRIDGE_PORT + labelEn: Server-Client Communication Port + labelZh: 鏈嶅姟绔鎴风閫氫俊绔彛 + required: true + rule: paramPort + type: number + - default: 8025 + edit: true + envKey: NPS_BRIDGE_TLS_PORT + labelEn: Server-Client Communication TLS Port + labelZh: 鏈嶅姟绔鎴风 TLS 閫氫俊绔彛 + required: true + rule: paramPort + type: number + - default: "true" + envKey: TLS_ENABLE_SWITCH + labelEn: Whether TLS is enabled for server-client communication + labelZh: 鏈嶅姟绔笌瀹㈡埛绔殑閫氫俊鏄惁鍚敤 TLS + required: true + type: select + values: + - label: "True" + value: "true" + - label: "False" + value: "false" + - default: http://localhost:40209 + edit: true + envKey: NPS_WEB_HOST + labelEn: External URL(If the default address, please replace localhost with the current service IP) + labelZh: 澶栭儴璁块棶鍦板潃(鑻ラ粯璁ゅ湴鍧璇锋浛鎹 localhost 涓哄綋鍓嶆湇鍔 IP) + required: true + rule: paramExtUrl + type: text + - default: admin + edit: true + envKey: NPS_WEB_USERNAME + labelEn: Web Interface Management Account + labelZh: web 鐣岄潰绠$悊璐﹀彿 + random: true + required: true + rule: paramCommon + type: text + - default: "123" + edit: true + envKey: NPS_WEB_PASSWORD + labelEn: Web Interface Management Password + labelZh: web 鐣岄潰绠$悊瀵嗙爜 + random: true + required: true + rule: paramComplexity + type: password + - default: "false" + edit: true + envKey: NPS_WEB_OPEN_SSL + labelEn: Enable webui https access + labelZh: web 鐣岄潰寮鍚 https 璁块棶 + required: true + rule: paramCommon + type: text + - default: "xly7traGe3r0t6UWltristuh1" + edit: true + envKey: NPS_PUBLIC_VKEY + labelEn: Key When the Client Starts in Configuration File Mode + labelZh: 瀹㈡埛绔互閰嶇疆鏂囦欢妯″紡鍚姩鏃剁殑瀵嗛挜 + required: true + rule: paramCommon + type: text + - default: "gl8r0tujikih7br5" + edit: true + envKey: NPS_AUTH_CRYPT_KEY + labelEn: 16-bit AES Encryption Key + labelZh: 16 浣 AES 鍔犲瘑瀵嗛挜 + required: true + rule: paramCommon + type: text + - default: 0.0.0.0 + edit: true + envKey: NPS_HTTP_PROXY_IP + labelEn: Http Proxy IP + labelZh: 鍩熷悕浠g悊 http 浠g悊鐩戝惉鍦板潃 + required: true + rule: paramCommon + type: text + - default: 50080 + edit: true + envKey: NPS_HTTP_PROXY_PORT + labelEn: Http Proxy Port + labelZh: 鍩熷悕浠g悊 http 浠g悊鐩戝惉绔彛 + required: true + rule: paramPort + type: number + - default: 50443 + edit: true + envKey: NPS_HTTPS_PROXY_PORT + labelEn: Https Proxy Port + labelZh: 鍩熷悕浠g悊 https 浠g悊鐩戝惉绔彛 + required: true + rule: paramPort + type: number diff --git a/apps/nps/latest/docker-compose.yml b/apps/nps/latest/docker-compose.yml new file mode 100644 index 00000000..d13e0348 --- /dev/null +++ b/apps/nps/latest/docker-compose.yml @@ -0,0 +1,26 @@ +version: "3" +services: + nps: + image: yisier1/nps:latest + container_name: ${CONTAINER_NAME} + restart: always + volumes: + - ./conf:/conf + - /etc/localtime:/etc/localtime:ro + environment: + NPS_WEB_HOST: ${NPS_WEB_HOST} + NPS_WEB_PORT: ${PANEL_APP_PORT_HTTP} + NPS_WEB_USERNAME: ${NPS_WEB_USERNAME} + NPS_WEB_PASSWORD: ${NPS_WEB_PASSWORD} + NPS_WEB_OPEN_SSL: ${NPS_WEB_OPEN_SSL} + NPS_PUBLIC_VKEY: ${NPS_PUBLIC_VKEY} + NPS_BRIDGE_PORT: ${NPS_BRIDGE_PORT} + NPS_BRIDGE_TLS_PORT: ${NPS_BRIDGE_TLS_PORT} + NPS_AUTH_CRYPT_KEY: ${NPS_AUTH_CRYPT_KEY} + NPS_HTTP_PROXY_IP: ${NPS_HTTP_PROXY_IP} + NPS_HTTP_PROXY_PORT: ${NPS_HTTP_PROXY_PORT} + NPS_HTTPS_PROXY_PORT: ${NPS_HTTPS_PROXY_PORT} + TLS_ENABLE_SWITCH: ${TLS_ENABLE_SWITCH} + network_mode: "host" + labels: + createdBy: "Apps" diff --git a/apps/nps/logo.png b/apps/nps/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..39ec733100bad67453a56a41467026fc56cefe86 GIT binary patch literal 2133 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 N4riV1tL;2*{ST^