From 71cbe83a2a20f743342df695ca7b98482b73e60f Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Wed, 4 Oct 2023 09:35:13 -0700 Subject: [PATCH] cloud: support disabling cloudflare --- plugins/cloud/package-lock.json | 4 ++-- plugins/cloud/package.json | 2 +- plugins/cloud/src/main.ts | 20 ++++++++++++++++++++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/plugins/cloud/package-lock.json b/plugins/cloud/package-lock.json index b4d579b7ed..e734e5b914 100644 --- a/plugins/cloud/package-lock.json +++ b/plugins/cloud/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/cloud", - "version": "0.2.2", + "version": "0.2.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@scrypted/cloud", - "version": "0.2.2", + "version": "0.2.3", "dependencies": { "@eneris/push-receiver": "^3.1.4", "@scrypted/common": "file:../../common", diff --git a/plugins/cloud/package.json b/plugins/cloud/package.json index e18f4ad521..ed7b7e9fec 100644 --- a/plugins/cloud/package.json +++ b/plugins/cloud/package.json @@ -54,5 +54,5 @@ "@types/nat-upnp": "^1.1.2", "@types/node": "^20.4.5" }, - "version": "0.2.2" + "version": "0.2.3" } diff --git a/plugins/cloud/src/main.ts b/plugins/cloud/src/main.ts index cb4c0f31fd..753d0f1aa7 100644 --- a/plugins/cloud/src/main.ts +++ b/plugins/cloud/src/main.ts @@ -151,6 +151,14 @@ class ScryptedCloud extends ScryptedDeviceBase implements OauthClient, Settings, hide: true, json: true, }, + cloudflareEnabled: { + group: 'Advanced', + title: 'Cloudflare', + type: 'boolean', + description: 'Optional: Create a Cloudflare Tunnel to this server at a random domain name. Providing a Cloudflare token will allow usage of a custom domain name.', + defaultValue: true, + onPut: () => deviceManager.requestRestart(), + }, cloudflaredTunnelToken: { group: 'Advanced', title: 'Cloudflare Tunnel Token', @@ -260,6 +268,13 @@ class ScryptedCloud extends ScryptedDeviceBase implements OauthClient, Settings, // } // }; + this.storageSettings.settings.cloudflaredTunnelToken.onGet = + this.storageSettings.settings.cloudflaredTunnelUrl.onGet = async () => { + return { + hide: !this.storageSettings.values.cloudflareEnabled, + } + }; + this.log.clearAlerts(); this.storageSettings.settings.securePort.onPut = (ov, nv) => { @@ -839,6 +854,11 @@ class ScryptedCloud extends ScryptedDeviceBase implements OauthClient, Settings, } async startCloudflared() { + if (!this.storageSettings.values.cloudflareEnabled) { + this.console.log('cloudflared is disabled.'); + return; + } + while (true) { try { this.console.log('starting cloudflared');