Skip to content

Commit 860618c

Browse files
henrybarretogustavosbarreto
authored andcommitted
feat(gateway): load dns provider from env variable instead of hardcoded value
1 parent 10976b5 commit 860618c

File tree

4 files changed

+23
-16
lines changed

4 files changed

+23
-16
lines changed

.env

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ SHELLHUB_TUNNELS=false
5050
# NOTICE: If empty, the [SHELLHUB_DOMAIN] will be used.
5151
SHELLHUB_TUNNELS_DOMAIN=
5252

53+
# The DNS provider used to generate wildcard SSL certificate.
54+
# NOTICE: If empty, the gateway will be assumed as "digitalocean".
55+
SHELLHUB_TUNNELS_DNS_PROVIDER=digitalocean
56+
5357
# The token used to generate wildcard SSL certificate using DNS method for tunnels' URL.
5458
# Currently, only DigitalOcean is supported.
5559
# NOTICE: Required if SHELLHUB_AUTO_SSL is defined.

docker-compose.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ services:
9898
- SHELLHUB_DOMAIN=${SHELLHUB_DOMAIN}
9999
- SHELLHUB_TUNNELS=${SHELLHUB_TUNNELS}
100100
- SHELLHUB_TUNNELS_DOMAIN=${SHELLHUB_TUNNELS_DOMAIN}
101+
- SHELLHUB_TUNNELS_DNS_PROVIDER=${SHELLHUB_TUNNELS_DNS_PROVIDER}
101102
- SHELLHUB_TUNNELS_DNS_PROVIDER_TOKEN=${SHELLHUB_TUNNELS_DNS_PROVIDER_TOKEN}
102103
- SHELLHUB_VERSION=${SHELLHUB_VERSION}
103104
- SHELLHUB_SSH_PORT=${SHELLHUB_SSH_PORT}

gateway/config.go

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,20 @@ import (
1111

1212
// GatewayConfig holds the configuration settings for the gateway.
1313
type GatewayConfig struct {
14-
Env string `env:"SHELLHUB_ENV"`
15-
Domain string `env:"SHELLHUB_DOMAIN,required" validate:"hostname"`
16-
Tunnels bool `env:"SHELLHUB_TUNNELS,default=false"`
17-
TunnelsDomain string `env:"SHELLHUB_TUNNELS_DOMAIN"`
18-
TunnelsDNSProviderToken string `env:"SHELLHUB_TUNNELS_DNS_PROVIDER_TOKEN"`
19-
WorkerProcesses string `env:"WORKER_PROCESSES,default=auto"`
20-
MaxWorkerOpenFiles int `env:"MAX_WORKER_OPEN_FILES,default=0"`
21-
MaxWorkerConnections int `env:"MAX_WORKER_CONNECTIONS,default=16384"`
22-
BacklogSize int `env:"BACKLOG_SIZE"`
23-
EnableAutoSSL bool `env:"SHELLHUB_AUTO_SSL"`
24-
EnableProxyProtocol bool `env:"SHELLHUB_PROXY"`
25-
EnableEnterprise bool `env:"SHELLHUB_ENTERPRISE"`
26-
EnableCloud bool `env:"SHELLHUB_CLOUD"`
14+
Env string `env:"SHELLHUB_ENV"`
15+
Domain string `env:"SHELLHUB_DOMAIN,required" validate:"hostname"`
16+
Tunnels bool `env:"SHELLHUB_TUNNELS,default=false"`
17+
TunnelsDomain string `env:"SHELLHUB_TUNNELS_DOMAIN"`
18+
TunnelsDNSProvider DNSProvider `env:"SHELLHUB_TUNNELS_DNS_PROVIDER,default=digitalocean"`
19+
TunnelsDNSProviderToken string `env:"SHELLHUB_TUNNELS_DNS_PROVIDER_TOKEN"`
20+
WorkerProcesses string `env:"WORKER_PROCESSES,default=auto"`
21+
MaxWorkerOpenFiles int `env:"MAX_WORKER_OPEN_FILES,default=0"`
22+
MaxWorkerConnections int `env:"MAX_WORKER_CONNECTIONS,default=16384"`
23+
BacklogSize int `env:"BACKLOG_SIZE"`
24+
EnableAutoSSL bool `env:"SHELLHUB_AUTO_SSL"`
25+
EnableProxyProtocol bool `env:"SHELLHUB_PROXY"`
26+
EnableEnterprise bool `env:"SHELLHUB_ENTERPRISE"`
27+
EnableCloud bool `env:"SHELLHUB_CLOUD"`
2728
}
2829

2930
var validate = validator.New()

gateway/main.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,14 @@ func main() {
5050
}
5151

5252
log.WithFields(log.Fields{
53-
"domain": domain,
54-
"token": halfString(config.TunnelsDNSProviderToken),
53+
"domain": domain,
54+
"provider": config.TunnelsDNSProvider,
55+
"token": halfString(config.TunnelsDNSProviderToken),
5556
}).Info("tunnels info")
5657

5758
certBot.Config.Tunnels = &Tunnels{
5859
Domain: domain,
59-
Provider: DigitalOceanDNSProvider,
60+
Provider: config.TunnelsDNSProvider,
6061
Token: config.TunnelsDNSProviderToken,
6162
}
6263
}

0 commit comments

Comments
 (0)