Skip to content

Repository files navigation

🖥️ Domain Manager by Hermes Agent

Unified CLI for 20+ domain & DNS providers — list domains, manage records, auto-update DDNS from one terminal.

License: MIT Python 3.9+ PRs Welcome GitHub

# One-command DDNS for your Raspberry Pi
domain-manager ddns example.com --type A --name home --provider cloudflare

# Or update all configured providers at once
domain-manager ddns example.com --type A --name @ --all

✨ Features

  • 19+ providers in one CLI (add yours via PR!)
  • List domains across all registrars
  • DNS management — A, AAAA, CNAME, MX, TXT
  • Dynamic DNS (DDNS) — auto-detect IP, update if changed
  • Bulk mode--all flag updates every configured provider
  • Cron-ready--quiet flag only outputs on change
  • JSON output--json for piping
  • Zero external dependencies — pure Python 3 stdlib
  • Hermes Agent skill — included in hermes-skill/

Supported Providers

# Provider Auth DDNS List Edit
1 GoDaddy Key + Secret
2 Namecheap User + Key + IP ⚠️
3 Domain.com User ID + Key
4 Cloudflare API Token
5 Porkbun Key + Secret
6 Gandi Token
7 DigitalOcean Token
8 Vultr Token
9 Hetzner DNS Token
10 OVH App Key + Consumer Key
11 DNSimple Token
12 NameSilo Key
13 Bunny.net Key
14 DuckDNS Token
15 No-IP User + Password
16 Dynu Token
17 阿里云 DNS AccessKey ID + Secret
18 腾讯云 DNS SecretId + Key

Namecheap DNS edits require full zone re-submission.

🚀 Quick Start

pip install domain-manager

Or clone & run:

git clone https://github.com/monah-studio/domain-manager.git
cd domain-manager
python3 -m domain_manager --help

🔧 Setup

# See all providers
domain-manager config list

# Configure one
domain-manager config cloudflare --token <CF_API_TOKEN>
domain-manager config godaddy --key <KEY> --secret <SECRET>
domain-manager config aliyun --key <AccessKeyId> --secret <AccessKeySecret>

# Verify
domain-manager status
domain-manager list --all

📖 Usage

# List domains
domain-manager list
domain-manager list --all --json

# View DNS records
domain-manager dns list example.com
domain-manager dns list example.com --json

# Update record
domain-manager dns update example.com --type A --name @ --value 1.2.3.4

# DDNS: auto-detect IP
domain-manager ddns example.com --type A --name home --provider porkbun

# DDNS: all providers at once
domain-manager ddns example.com --type A --name @ --all

# DDNS: cron mode (silent unless IP changed)
domain-manager ddns example.com --type A --name home --quiet

# Check your public IP
domain-manager ip
domain-manager ip --type AAAA

🥋 Raspberry Pi / Cron DDNS

# Every 5 minutes
*/5 * * * * domain-manager ddns home.example.com --type A --name @ --provider cloudflare --quiet

# With log
*/5 * * * * domain-manager ddns home.example.com --type A --name @ --provider godaddy --quiet >> /tmp/ddns.log 2>&1

🧩 Add a New Provider

  1. Create domain_manager/providers/<name>.py
  2. Define a Provider class inheriting BaseProvider
  3. Implement: list_domains, list_records, update_record, ddns
  4. Open a PR!

See CONTRIBUTING.md for details.

🙏 Credits

This project communicates with these provider APIs — thank you for maintaining them:

Provider API Docs
GoDaddy Domain management REST API
Cloudflare DNS zone & record API
Namecheap XML-RPC domain & DNS API
Porkbun JSON API for domains & DNS
Gandi LiveDNS REST API
DigitalOcean Domains & DNS API
Vultr DNS API
Hetzner DNS API
OVH Domain & DNS API
DNSimple Domain & DNS REST API
NameSilo Domain API
Bunny.net DNS zone API
Domain.com Domain API
DuckDNS Free DDNS API
No-IP Dynamic DNS API
Dynu DNS & DDNS API
阿里云 DNS DNS API
腾讯云 DNSPod DNS API

Architecture inspiration: octodns (multi-provider DNS sync), acme.sh (provider plugin pattern).

Sister projects: OpenBalance, SmartClipAI


🇨🇳 简体中文

Domain Manager 是一个统一的命令行工具,支持 20+ 域名注册商和 DNS 提供商的域名管理与 DDNS 自动更新。

支持的国内 DNS 提供商

本工具对以下中国主流 DNS 服务商提供完整支持:

# 提供商 认证方式 DDNS 域名列表 记录编辑
17 阿里云 DNS AccessKey ID + Secret
18 腾讯云 DNSPod SecretId + Key

阿里云 DNS 通过阿里云 DNS API (alidns.aliyuncs.com) 实现域名解析管理,支持 A/AAAA/CNAME/MX/TXT 记录的全生命周期管理。

腾讯云 DNSPod 通过 DNSPod API (dnspod.tencentcloudapi.com) 实现智能解析、负载均衡等高级 DNS 功能。

配置示例

# 配置阿里云 DNS
domain-manager config aliyun --key <AccessKeyId> --secret <AccessKeySecret>

# 配置腾讯云 DNSPod
domain-manager config tencentcloud --key <SecretId> --secret <SecretKey>

🙏 致谢

感谢以下服务商提供的稳定 API 服务:


📄 License

MIT — Monah Limited

About

Unified CLI for 20+ domain and DNS providers; list domains, manage records, auto DDNS.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages