A dynamic DNS (DDNS) client for Vultr DNS. Automatically detects your public IP address and updates DNS A records on your Vultr-managed domains.
Perfect for keeping a subdomain like home.yourdomain.com pointed at your home network's dynamic IP address.
- Python 3.12+
- A domain managed by Vultr DNS
- A Vultr API key with DNS permissions
git clone https://github.com/flipbit03/vultr-dns-updater.git
cd vultr-dns-updater
uv sync
uv run vultr-dns --helpTo install globally to your $HOME, use uv tool install .
- Log in to your Vultr account
- Go to Account → API → Personal Access Tokens
- Create a new API key with DNS permissions
vultr-dns init-config
# Creates: ~/.config/vultr-dns-updater/config.toml# ~/.config/vultr-dns-updater/config.toml
api_key = "YOUR_VULTR_API_KEY"
[[targets]]
domain = "yourdomain.com"
subdomain = "home"
ttl = 60vultr-dns status # Check current status
vultr-dns update # Update DNS records
vultr-dns update --force # Force update even if IP hasn't changedvultr-dns service install # Install with 30-minute interval
vultr-dns service install --interval 15 # Custom interval (minutes)
vultr-dns service status # Check service status
vultr-dns service uninstall # Remove the serviceView logs with journalctl -u vultr-dns-updater.service -f
See COMMANDS.md for additional commands.
You can skip the config file entirely by using flags and environment variables:
export VULTR_API_KEY="your-api-key"
vultr-dns status --domain yourdomain.com --subdomain home
vultr-dns update --domain yourdomain.com --subdomain home| Priority | Location |
|---|---|
| 1 | -c / --config flag |
| 2 | ~/.config/vultr-dns-updater/config.toml |
| 3 | ~/.vultr-dns-updater.toml |
| 4 | ./vultr-dns-updater.toml |
See CONTRIBUTING.md.
MIT