From 0989f8a3ad5ee51c76a4c9dd5e818d5ff8abe034 Mon Sep 17 00:00:00 2001 From: "@milesibastos" Date: Tue, 27 Aug 2024 21:01:48 -0300 Subject: [PATCH] feat: Define a global proxy to be used if the instance does not have one --- .env.example | 7 +++++++ src/api/services/channel.service.ts | 25 +++++++++++++++++++------ 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/.env.example b/.env.example index c893e888..c7d62c83 100644 --- a/.env.example +++ b/.env.example @@ -212,3 +212,10 @@ AUTHENTICATION_API_KEY=429683C4C977415CAAFCCE10F7D57E11 # If you leave this option as true, the instances will be exposed in the fetch instances endpoint. AUTHENTICATION_EXPOSE_IN_FETCH_INSTANCES=true LANGUAGE=en + +# Define a global proxy to be used if the instance does not have one +# PROXY_HOST= +# PROXY_PORT=80 +# PROXY_PROTOCOL=http +# PROXY_USERNAME= +# PROXY_PASSWORD= \ No newline at end of file diff --git a/src/api/services/channel.service.ts b/src/api/services/channel.service.ts index e77b4392..4c55f853 100644 --- a/src/api/services/channel.service.ts +++ b/src/api/services/channel.service.ts @@ -338,18 +338,31 @@ export class ChannelStartupService { } public async loadProxy() { + this.localProxy.enabled = false; + + if (process.env.PROXY_HOST) { + this.localProxy.enabled = true; + this.localProxy.host = process.env.PROXY_HOST; + this.localProxy.port = process.env.PROXY_PORT || '80'; + this.localProxy.protocol = process.env.PROXY_PROTOCOL || 'http'; + this.localProxy.username = process.env.PROXY_USERNAME; + this.localProxy.password = process.env.PROXY_PASSWORD; + } + const data = await this.prismaRepository.proxy.findUnique({ where: { instanceId: this.instanceId, }, }); - this.localProxy.enabled = data?.enabled; - this.localProxy.host = data?.host; - this.localProxy.port = data?.port; - this.localProxy.protocol = data?.protocol; - this.localProxy.username = data?.username; - this.localProxy.password = data?.password; + if (data?.enabled) { + this.localProxy.enabled = true; + this.localProxy.host = data?.host; + this.localProxy.port = data?.port; + this.localProxy.protocol = data?.protocol; + this.localProxy.username = data?.username; + this.localProxy.password = data?.password; + } } public async setProxy(data: ProxyDto) {