domains: add option to set custom/vanity nameservers

this flag skips the NS name validation when a custom nameserver is set
i.e not to the provider's NS but uses the provider's API.
This commit is contained in:
Girish Ramakrishnan
2025-03-02 07:27:09 +01:00
parent 085ed59334
commit 6aca198428
28 changed files with 156 additions and 61 deletions

View File

@@ -53,6 +53,7 @@ const zoneName = ref('');
const provider = ref('');
const tlsProvider = ref('letsencrypt-prod-wildcard');
const showAdvanced = ref(false);
const customNameservers = ref(false);
const accessKeyId = ref('');
const secretAccessKey = ref('');
@@ -118,7 +119,10 @@ async function onSubmit() {
busy.value = true;
errorMessage.value = '';
const config = {};
const config = {
customNameservers: customNameservers.value
};
if (provider.value === 'route53') {
config.accessKeyId = accessKeyId.value;
config.secretAccessKey = secretAccessKey.value;
@@ -224,6 +228,8 @@ defineExpose({
provider.value = d.provider || '';
tlsProvider.value = d.tlsConfig.provider || 'letsencrypt-prod-wildcard';
customNameservers.value = d.config.customNameservers;
gcdnsProjectId.value = (d.provider === 'gcdns' && d.config.projectId) || '';
gcdnsClientEmail.value = (d.provider === 'gcdns' && d.config?.credentials.client_email) || '';
gcdnsPrivateKey.value = (d.provider === 'gcdns' && d.config?.credentials.private_key) || '';
@@ -494,6 +500,8 @@ defineExpose({
<TextInput id="zoneNameInput" v-model="zoneName" />
</FormGroup>
<Checkbox v-model="customNameservers" :label="$t('domains.domainDialog.customNameservers')" />
<FormGroup>
<label for="tlsProviderInput">{{ $t('domains.domainDialog.certProvider') }} <sup><a href="https://docs.cloudron.io/certificates/#certificate-providers" class="help" target="_blank"><i class="fa fa-question-circle"></i></a></sup></label>
<select id="tlsProviderInput" v-model="tlsProvider">