- Cloudflare e configurazione dominio DNS (host, host_test, host_ip, ecc...)

This commit is contained in:
Surya Paolo
2024-09-09 21:49:31 +02:00
parent e9ac281125
commit 16ddb8095e
39 changed files with 438 additions and 64 deletions

View File

@@ -29,6 +29,8 @@ export default defineComponent({
const inputRequired = ref(false)
const inputPrompt = ref('')
const statusWs = ref('')
const rischeckDNS = ref('')
const errorDNS = ref(false)
let ws: any = null;
@@ -61,6 +63,7 @@ export default defineComponent({
const selectedApi = ref(<string>'');
const dnsPageActive = ref(false)
const dnsCheckMySite = ref(false)
const optionsApi = ref(<any>[])
const arrZones = ref(<any>[])
@@ -83,6 +86,8 @@ export default defineComponent({
{ name: 'name', required: true, label: 'Nome', align: 'left', field: 'name', sortable: true, visible: true },
{ name: 'type', required: true, label: 'Tipo', align: 'left', field: 'type', sortable: true, visible: true },
{ name: 'proxied', required: true, align: 'center', label: 'Proxy', field: 'proxied', sortable: true, visible: true },
{ name: 'priority', required: true, align: 'center', label: 'Priorità', field: 'priority', sortable: true, visible: true },
{ name: 'ttl', required: true, align: 'center', label: 'TTL', field: 'ttl', sortable: false, visible: true },
{ name: 'content', required: true, label: 'Valore', align: 'left', field: 'content', sortable: true, visible: true },
];
@@ -90,6 +95,8 @@ export default defineComponent({
{ name: 'name', required: true, label: 'Nome', align: 'left', field: 'name', sortable: true, visible: true, editable: true },
{ name: 'type', required: true, label: 'Tipo', align: 'left', field: 'type', sortable: true, visible: true, editable: true },
{ name: 'proxied', required: true, align: 'center', label: 'Proxy', field: 'proxied', sortable: true, visible: true, editable: true },
{ name: 'priority', required: true, align: 'center', label: 'Priorità', field: 'priority', sortable: true, visible: true },
{ name: 'ttl', required: true, align: 'center', label: 'TTL', field: 'ttl', sortable: false, visible: true },
{ name: 'content', required: true, label: 'Valore', align: 'left', field: 'content', sortable: true, visible: true, editable: true },
];
@@ -118,24 +125,6 @@ export default defineComponent({
}
})
watch(() => selZoneId.value, async (to: any, from: any) => {
if (selZoneId.value) {
incaricamento.value = true
arrDNS.value = await globalStore.getCloudFlareTok("getDNS", selectedApi.value, selZoneId.value)
incaricamento.value = false
tools.setCookie('CF_API_ZONE_ID_' + selectedApi.value, selZoneId.value)
/*optDNS.value = []
for (let i = 0; i < arrZones.value.length; i++) {
optDNS.value.push({ label: arrZones.value[i].name, value: arrZones.value[i].id })
}*/
}
})
watch(() => mydir.value, async (to: any, from: any) => {
// ...
@@ -143,6 +132,8 @@ export default defineComponent({
myarrscript.value = []
optionsApi.value = []
dnsPageActive.value = (mydir.value === '2_DNS')
incaricamento.value = true
@@ -160,6 +151,37 @@ export default defineComponent({
incaricamento.value = false
})
async function updateArrDns() {
arrDNS.value = []
arrDNS.value = await globalStore.getCloudFlareTok("getDNS", selectedApi.value, selZoneId.value)
}
watch(() => selZoneId.value, async (to: any, from: any) => {
if (selZoneId.value) {
incaricamento.value = true
await updateArrDns()
const checksiteprec = dnsCheckMySite.value
dnsCheckMySite.value = dnsPageActive.value && (getNameBySelZoneinId() === tools.getDomainSite())
if (dnsCheckMySite.value && !checksiteprec) {
await checkDNSSite()
}
incaricamento.value = false
tools.setCookie('CF_API_ZONE_ID_' + selectedApi.value, selZoneId.value)
/*optDNS.value = []
for (let i = 0; i < arrZones.value.length; i++) {
optDNS.value.push({ label: arrZones.value[i].name, value: arrZones.value[i].id })
}*/
}
})
watch(() => messages.value, async (to: any, from: any) => {
await nextTick(); // Aspetta che il DOM si aggiorni
scrollToBottom();
@@ -209,6 +231,7 @@ export default defineComponent({
}
async function mounted() {
myarrdir.value = await getArrayByScript('cd admin_scripts; ls -d */', '')
myarroptionsdir.value = []
@@ -389,6 +412,24 @@ export default defineComponent({
await saveRecordDNS(arrDNS.value[indrec])
}
}
const saveTTLDNS = async (ttl: string, initialValue: string) => {
if (selected.value && selected.value.length > 0 && selected.value[0].id) {
const indrec = arrDNS.value.findIndex((rec: any) => rec.id === selected.value[0].id)
arrDNS.value[indrec].ttl = ttl
await saveRecordDNS(arrDNS.value[indrec])
}
}
const savePriorityDNS = async (priority: string, initialValue: string) => {
if (selected.value && selected.value.length > 0 && selected.value[0].id) {
const indrec = arrDNS.value.findIndex((rec: any) => rec.id === selected.value[0].id)
arrDNS.value[indrec].priority = priority
await saveRecordDNS(arrDNS.value[indrec])
}
}
const saveTypeDNS = async (type: string, initialValue: string) => {
if (selected.value && selected.value.length > 0 && selected.value[0].id) {
@@ -399,6 +440,17 @@ export default defineComponent({
}
}
const setCorrectIpsOnDNS = async () => {
let myrecord = {
name: tools.getDomainSite()
}
await globalStore.getCloudFlareTok("setCorrectIpsOnDNS", selectedApi.value, selZoneId.value, null, myrecord)
await checkDNSSite()
}
const saveRecordDNS = async (row: any) => {
console.log('record da salvare su CF:', row)
@@ -417,6 +469,44 @@ export default defineComponent({
}
async function checkDNSSite() {
incaricamento.value = true
await updateArrDns()
await globalStore.loadSite()
rischeckDNS.value = '<br>'
errorDNS.value = false
const domainSite = tools.getDomainSite();
const domains = [
domainSite,
'api.' + domainSite,
'test.' + domainSite,
'testapi.' + domainSite
];
const ips = [
globalStore.site.host_ip,
globalStore.site.host_api_ip,
globalStore.site.host_test_ip,
globalStore.site.host_testapi_ip
];
if (dnsPageActive.value) {
let checkDomainA1 = '';
errorDNS.value = false
for (let i = 0; i < domains.length; i++) {
let ris = tools.getHostPuntamento(arrDNS.value, domains[i], ips[i]!)
checkDomainA1 += ris.text
if (!ris.ok) {
errorDNS.value = true
}
}
rischeckDNS.value = checkDomainA1
}
incaricamento.value = false
}
onMounted(mounted)
return {
@@ -468,6 +558,14 @@ export default defineComponent({
saveContentDNS,
saveNameDNS,
saveTypeDNS,
saveTTLDNS,
savePriorityDNS,
dnsCheckMySite,
checkDNSSite,
rischeckDNS,
globalStore,
setCorrectIpsOnDNS,
errorDNS,
}
},
})