diff --git a/src/js/setupdns.js b/src/js/setupdns.js index e13c5000c..079097c54 100644 --- a/src/js/setupdns.js +++ b/src/js/setupdns.js @@ -89,6 +89,7 @@ app.controller('SetupDNSController', ['$scope', '$http', '$timeout', 'Client', f { name: 'Name.com', value: 'namecom' }, { name: 'Namecheap', value: 'namecheap' }, { name: 'Netcup', value: 'netcup' }, + { name: 'Vultr', value: 'vultr' }, { name: 'Wildcard', value: 'wildcard' }, { name: 'Manual (not recommended)', value: 'manual' }, { name: 'No-op (only for development)', value: 'noop' } @@ -107,6 +108,7 @@ app.controller('SetupDNSController', ['$scope', '$http', '$timeout', 'Client', f godaddyApiKey: '', godaddyApiSecret: '', linodeToken: '', + vultrToken: '', nameComUsername: '', nameComToken: '', namecheapUsername: '', @@ -191,6 +193,8 @@ app.controller('SetupDNSController', ['$scope', '$http', '$timeout', 'Client', f config.tokenType = $scope.dnsCredentials.cloudflareTokenType; } else if (provider === 'linode') { config.token = $scope.dnsCredentials.linodeToken; + } else if (provider === 'vultr') { + config.token = $scope.dnsCredentials.vultrToken; } else if (provider === 'namecom') { config.username = $scope.dnsCredentials.nameComUsername; config.token = $scope.dnsCredentials.nameComToken; @@ -288,9 +292,10 @@ app.controller('SetupDNSController', ['$scope', '$http', '$timeout', 'Client', f 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 === 'vultr' || status.provider === 'vultr-mp') { + $scope.dnsCredentials.provider = 'vultr'; } else if (status.provider === 'gce') { $scope.dnsCredentials.provider = 'gcdns'; } else if (status.provider === 'ami') { diff --git a/src/setupdns.html b/src/setupdns.html index 15a78160f..ca14a9077 100644 --- a/src/setupdns.html +++ b/src/setupdns.html @@ -211,6 +211,12 @@

+ +

+ + +

+

Set up A records for *.{{ dnsCredentials.domain || 'example.com' }}. and {{ dnsCredentials.domain || 'example.com' }}. to this server's IP. diff --git a/src/translation/en.json b/src/translation/en.json index c6f63fdbc..ec93ea27e 100644 --- a/src/translation/en.json +++ b/src/translation/en.json @@ -839,7 +839,8 @@ "mastodonHostname": "Mastodon server location", "netcupCustomerNumber": "Customer Number", "netcupApiKey": "API Key", - "netcupApiPassword": "API Password" + "netcupApiPassword": "API Password", + "vultrToken": "Vultr Token" }, "removeDialog": { "title": "Really remove {{ domain }}?", diff --git a/src/views/domains.html b/src/views/domains.html index 7a26d37e2..9c9e6b35e 100644 --- a/src/views/domains.html +++ b/src/views/domains.html @@ -123,6 +123,12 @@ + +

+ + +
+
diff --git a/src/views/domains.js b/src/views/domains.js index a4b9b3f87..fa684d27c 100644 --- a/src/views/domains.js +++ b/src/views/domains.js @@ -41,6 +41,7 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat { name: 'Name.com', value: 'namecom' }, { name: 'Namecheap', value: 'namecheap' }, { name: 'Netcup', value: 'netcup' }, + { name: 'Vultr', value: 'vultr' }, { name: 'Wildcard', value: 'wildcard' }, { name: 'Manual (not recommended)', value: 'manual' }, { name: 'No-op (only for development)', value: 'noop' } @@ -58,6 +59,7 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat case 'netcup': return 'Netcup'; case 'gcdns': return 'Google Cloud'; case 'godaddy': return 'GoDaddy'; + case 'vultr': return 'Vultr'; case 'manual': return 'Manual'; case 'wildcard': return 'Wildcard'; case 'noop': return 'No-op'; @@ -143,6 +145,7 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat cloudflareEmail: '', cloudflareTokenType: 'GlobalApiKey', linodeToken: '', + vultrToken: '', nameComToken: '', nameComUsername: '', namecheapUsername: '', @@ -198,6 +201,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.vultrToken = domain.provider === 'vultr' ? 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 : ''; @@ -277,6 +281,8 @@ angular.module('Application').controller('DomainsController', ['$scope', '$locat data.token = $scope.domainConfigure.digitalOceanToken; } else if (provider === 'linode') { data.token = $scope.domainConfigure.linodeToken; + } else if (provider === 'vultr') { + data.token = $scope.domainConfigure.vultrToken; } else if (provider === 'gandi') { data.token = $scope.domainConfigure.gandiApiKey; } else if (provider === 'godaddy') {