From d84900d60141637953111caf2d1d3456a92a4e6b Mon Sep 17 00:00:00 2001 From: Girish Ramakrishnan Date: Thu, 12 Mar 2020 17:13:21 -0700 Subject: [PATCH] linode: dns frontend --- src/js/setupdns.js | 16 +++++++++++++--- src/setupdns.html | 5 +++++ src/views/domains.html | 12 +++++++++++- src/views/domains.js | 6 ++++++ 4 files changed, 35 insertions(+), 4 deletions(-) diff --git a/src/js/setupdns.js b/src/js/setupdns.js index ee46112ac..3170966e4 100644 --- a/src/js/setupdns.js +++ b/src/js/setupdns.js @@ -102,6 +102,7 @@ app.controller('SetupDNSController', ['$scope', '$http', '$timeout', 'Client', f cloudflareTokenType: 'GlobalApiKey', godaddyApiKey: '', godaddyApiSecret: '', + linodeToken: '', nameComUsername: '', nameComToken: '', namecheapUsername: '', @@ -184,6 +185,8 @@ app.controller('SetupDNSController', ['$scope', '$http', '$timeout', 'Client', f config.email = $scope.dnsCredentials.cloudflareEmail; config.token = $scope.dnsCredentials.cloudflareToken; config.tokenType = $scope.dnsCredentials.cloudflareTokenType; + } else if (provider === 'linode') { + config.token = $scope.dnsCredentials.linodeToken; } else if (provider === 'namecom') { config.username = $scope.dnsCredentials.nameComUsername; config.token = $scope.dnsCredentials.nameComToken; @@ -270,9 +273,16 @@ app.controller('SetupDNSController', ['$scope', '$http', '$timeout', 'Client', f // domain is currently like a lock flag if (status.adminFqdn) return waitForDnsSetup(); - if (status.provider === 'digitalocean' || status.provider === 'digitalocean-mp') $scope.dnsCredentials.provider = 'digitalocean'; - if (status.provider === 'gce') $scope.dnsCredentials.provider = 'gcdns'; - if (status.provider === 'ami') $scope.dnsCredentials.provider = 'route53'; + if (status.provider === 'digitalocean' || status.provider === 'digitalocean-mp') { + $scope.dnsCredentials.provider = 'digitalocean'; + // don't suggest linode by default since it takes a while for DNS to propagate + // } else if (status.provider === 'linode' || status.provider === 'linode-oneclick' || status.provider === 'linode-stackscript') { + // $scope.dnsCredentials.provider = 'linode'; + } else if (status.provider === 'gce') { + $scope.dnsCredentials.provider = 'gcdns'; + } else if (status.provider === 'ami') { + $scope.dnsCredentials.provider = 'route53'; + } $scope.instanceId = search.instanceId; $scope.provider = status.provider; diff --git a/src/setupdns.html b/src/setupdns.html index 104ad59c2..452f5790e 100644 --- a/src/setupdns.html +++ b/src/setupdns.html @@ -163,6 +163,11 @@ + +

+ Linode DNS average propagation time is 30 minutes. Cloudron setup & installing apps will take a while. +

+

Setup A records for *.{{ dnsCredentials.domain || 'example.com' }} and {{ dnsCredentials.domain || 'example.com' }} to this server's IP. diff --git a/src/views/domains.html b/src/views/domains.html index fb83f881b..26c730eec 100644 --- a/src/views/domains.html +++ b/src/views/domains.html @@ -84,6 +84,12 @@ + +

+ + +
+
@@ -101,12 +107,16 @@
-

+

The server IP needs to be whitelisted for this API Key.

+

+ Linode DNS average propagation time is 30 minutes. Installing apps & and getting a Let's Encrypt certificate will take a while. +

+

Setup A records for *.{{ domainConfigure.newDomain || domainConfigure.domain.domain }} and {{ domainConfigure.newDomain || domainConfigure.domain.domain }} to this server's IP.

diff --git a/src/views/domains.js b/src/views/domains.js index 5ec195566..037b5c77a 100644 --- a/src/views/domains.js +++ b/src/views/domains.js @@ -28,6 +28,7 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat { name: 'Gandi LiveDNS', value: 'gandi' }, { name: 'GoDaddy', value: 'godaddy' }, { name: 'Google Cloud DNS', value: 'gcdns' }, + { name: 'Linode', value: 'linode' }, { name: 'Name.com', value: 'namecom' }, { name: 'Namecheap', value: 'namecheap' }, { name: 'Wildcard', value: 'wildcard' }, @@ -42,6 +43,7 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat case 'cloudflare': return 'Cloudflare'; case 'digitalocean': return 'DigitalOcean'; case 'gandi': return 'Gandi LiveDNS'; + case 'linode': return 'Linode'; case 'namecom': return 'Name.com'; case 'namecheap': return 'Namecheap'; case 'gcdns': return 'Google Cloud'; @@ -119,6 +121,7 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat cloudflareToken: '', cloudflareEmail: '', cloudflareTokenType: 'GlobalApiKey', + linodeToken: '', nameComToken: '', nameComUsername: '', namecheapUsername: '', @@ -166,6 +169,7 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat }); } $scope.domainConfigure.digitalOceanToken = domain.provider === 'digitalocean' ? domain.config.token : ''; + $scope.domainConfigure.linodeToken = domain.provider === 'linode' ? domain.config.token : ''; $scope.domainConfigure.gandiApiKey = domain.provider === 'gandi' ? domain.config.token : ''; $scope.domainConfigure.cloudflareToken = domain.provider === 'cloudflare' ? domain.config.token : ''; $scope.domainConfigure.cloudflareEmail = domain.provider === 'cloudflare' ? domain.config.email : ''; @@ -226,6 +230,8 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat } } else if (provider === 'digitalocean') { data.token = $scope.domainConfigure.digitalOceanToken; + } else if (provider === 'linode') { + data.token = $scope.domainConfigure.linodeToken; } else if (provider === 'gandi') { data.token = $scope.domainConfigure.gandiApiKey; } else if (provider === 'godaddy') {