diff --git a/domains.yaml b/domains.yaml deleted file mode 100644 index 6936222..0000000 --- a/domains.yaml +++ /dev/null @@ -1,18 +0,0 @@ -reserved_domains: - - "^(www\\.|api\\.|mail\\.|status\\.)morlana\\.page$" - - "^admin\\..*" - - "^internal\\..*" - -subdomains: - - name: www - target: pages.morlana-pages.morlana.morlana.space - proxy: false - note: "Currently the cloudflare proxy service is not supported by Morlana Git Pages service" -# - name: "example" -# target: "example.com" -# proxy: true -# note: "Test Subdomain" -# - name: "test" -# target: "test.example.com" -# proxy: false -# note: "Proxy deaktiviert" diff --git a/update_cloudflare_dns.py b/update_cloudflare_dns.py deleted file mode 100644 index 3fb899c..0000000 --- a/update_cloudflare_dns.py +++ /dev/null @@ -1,71 +0,0 @@ -import yaml -import requests -import re -import os - -# Cloudflare API Konfiguration -CLOUDFLARE_API_TOKEN = os.getenv("CLOUDFLARE_API_TOKEN") -CLOUDFLARE_ZONE_ID = os.getenv("CLOUDFLARE_ZONE_ID") -CLOUDFLARE_API_URL = f"https://api.cloudflare.com/client/v4/zones/{CLOUDFLARE_ZONE_ID}/dns_records" - -HEADERS = { - "Authorization": f"Bearer {CLOUDFLARE_API_TOKEN}", - "Content-Type": "application/json" -} - -def load_domains(file_path="domains.yaml"): - with open(file_path, "r") as file: - return yaml.safe_load(file) - -def is_reserved(domain, reserved_patterns): - return any(re.match(pattern, domain) for pattern in reserved_patterns) - -def get_existing_records(): - response = requests.get(CLOUDFLARE_API_URL, headers=HEADERS) - if response.status_code == 200: - return {rec["name"]: rec for rec in response.json().get("result", [])} - return {} - -def update_cloudflare(): - data = load_domains() - reserved_patterns = data.get("reserved_domains", []) - subdomains = {f"{sub['name']}.morlana.page": sub for sub in data.get("subdomains", [])} - - existing_records = get_existing_records() - - # Entferne Einträge, die nicht mehr in domains.yaml stehen - for existing_domain in existing_records: - if existing_domain.endswith(".morlana.page") and existing_domain not in subdomains: - record_id = existing_records[existing_domain]["id"] - response = requests.delete(f"{CLOUDFLARE_API_URL}/{record_id}", headers=HEADERS) - if response.status_code == 200: - print(f"Successfully removed {existing_domain}") - else: - print(f"Failed to remove {existing_domain}: {response.text}") - - # Neue Einträge hinzufügen oder bestehende aktualisieren - for full_domain, subdomain in subdomains.items(): - if is_reserved(full_domain, reserved_patterns): - print(f"Skipping reserved domain: {full_domain}") - continue - - record_data = { - "type": "CNAME", - "name": full_domain, - "content": subdomain["target"], - "proxied": subdomain.get("proxy", True) - } - - if full_domain in existing_records: - record_id = existing_records[full_domain]["id"] - response = requests.put(f"{CLOUDFLARE_API_URL}/{record_id}", json=record_data, headers=HEADERS) - else: - response = requests.post(CLOUDFLARE_API_URL, json=record_data, headers=HEADERS) - - if response.status_code in [200, 201]: - print(f"Successfully updated {full_domain}") - else: - print(f"Failed to update {full_domain}: {response.text}") - -if __name__ == "__main__": - update_cloudflare()