feat: add cloudflare module for dynamic dns updates

This commit is contained in:
Fredrick Amnehagen 2026-02-05 19:15:50 +01:00
parent ce67360c3c
commit 837bafba09
3 changed files with 95 additions and 0 deletions

View file

@ -5,6 +5,7 @@ from .ingress import IngressManager
from .router import RouterManager
from .proxmox import ProxmoxManager
from .samba import SambaManager
from .cloudflare import CloudflareManager
import sys
@click.group()
@ -18,6 +19,26 @@ def cli(ctx, config):
click.echo(f"Error: {e}", err=True)
sys.exit(1)
@cli.group()
def cloudflare():
"""Manage Cloudflare DNS and DDNS"""
pass
@cloudflare.command(name='list-ddns')
@click.pass_obj
def cf_list_ddns(config):
mgr = CloudflareManager(config)
for domain in mgr.list_domains():
click.echo(domain)
@cloudflare.command(name='update-ddns')
@click.option('--force', is_flag=True, help='Force update even if IP matches')
@click.pass_obj
def cf_update_ddns(config, force):
mgr = CloudflareManager(config)
click.echo("Updating Cloudflare DDNS records...")
click.echo(mgr.update_ddns(force))
@cli.group()
def proxmox():
"""Manage Proxmox VMs and Containers"""