# GoDNS: A Self-Hosted Dynamic DNS Client with 22 Provider Integrations

> GoDNS is an open-source dynamic DNS client written in Go that automatically updates DNS records when your public IP address changes, with support for 22 DNS providers including Cloudflare, DNSPod, AliDNS, and DuckDNS. It includes a built-in web panel, Docker image, and Homebrew formula, and the latest release is v3.4.4.

**TimothyYe/godns** — A dynamic DNS client tool that supports AliDNS, Cloudflare, Google Domains, DNSPod, HE.net & DuckDNS & DreamHost, etc, written in Go.

- Repository: https://github.com/TimothyYe/godns
- Stars: 1,779 · Forks: 247
- Language: Go
- License: Apache-2.0
- Published: 2026-08-08 · Updated: 2026-08-18 · Language: en
- Canonical page: https://hysenlabs.com/projects/timothyye-godns

## What Problem GoDNS Solves and Who It Is For

Internet service providers typically assign dynamic IP addresses to residential and small business connections. A home server or a self-hosted service needs a stable hostname that visitors can reach even as the underlying IP changes. Dynamic DNS (DDNS) solves this by running a client that detects IP changes and updates the corresponding DNS record automatically.

GoDNS is that client, written in Go and targeting self-hosters who run their own domains. The README positions it for users who have already registered a domain and pointed its nameservers at a supported DNS provider. As an alternative entry point for users who do not own a domain, DuckDNS provides free subdomains under duckdns.org through social account login, and GoDNS supports DuckDNS natively.

The README states that GoDNS is a rewrite in Go of the earlier DynDNS project by the same author. It has been extended significantly from that origin, adding multi-provider support, IPv6, a web panel, and Docker deployment. A hosted managed version of the service is available at godns.app for users who prefer not to self-host.

## Supported DNS Providers and Protocol Coverage

GoDNS supports 22 DNS providers as of this review. The provider table in the README documents IPv4 and IPv6 support, root domain support, and subdomain support for each. Providers with full root domain support include Cloudflare, DigitalOcean, DNSPod, HE.net (Hurricane Electric), AliDNS, Scaleway, Linode, Hetzner, Porkbun, and name.com. Providers that support subdomains only (no root domain) include Google Domains, Dynv6, DuckDNS, Dreamhost, No-IP, Strato, LoopiaSE, Infomaniak, OVH, Dynu, IONOS, and TransIP.

The distinction between root domain support and subdomain-only matters for users who want to map their apex domain (example.com) directly to their dynamic IP. Only providers in the first group support that use case through GoDNS. The README notes a GitHub issue (issue 76) that tracks the current status of root domain DDNS for those curious about edge cases.

All 22 providers support both IPv4 and IPv6. For home networks with a dynamic IPv6 prefix, GoDNS handles dual-stack updates.

## Installation and First Configuration

GoDNS provides several installation paths. The quickest is downloading a prebuilt binary from the releases page. Building from source requires Go:

```bash
GOOS=linux GOARCH=mips/mipsle GOMIPS=softfloat go build -a
```

This example from the README builds for MIPS platforms such as home routers. For standard Linux amd64, the Makefile build command is:

```bash
GO111MODULE=on go build -ldflags "-X main.Version=${VERSION}" -o godns cmd/godns/godns.go
```

Docker images are available on Docker Hub as timothyye/godns. The Makefile's image target builds multi-architecture images for linux/amd64, linux/arm64, and linux/arm/v7, which covers most Raspberry Pi and NAS hardware:

```bash
docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t timothyye/godns:${VERSION} . --push
```

GoDNS is also available via Homebrew for macOS and Linux users. Configuration is stored in a YAML file. The configs/ directory in the repository contains example configurations for different providers. Supported platforms include Linux, macOS, ARM Linux (Raspberry Pi), Windows, and MIPS32.

## The Built-In Web Panel

GoDNS includes a web panel built with a Next.js frontend and a Go backend using the Fiber framework. The Dockerfile shows the build process: the web/ directory is built with Bun, and the output is compiled into the Go binary so that the panel is served from the same process as the DDNS client.

The web panel allows monitoring the current IP address, viewing update history, and managing configuration without editing the YAML file directly. It is an optional convenience for users who prefer a browser interface over command-line inspection.

The go.mod file lists the server-side dependencies: github.com/gofiber/fiber/v2 for the HTTP server, github.com/fsnotify/fsnotify for watching the configuration file for live reloads, github.com/miekg/dns for DNS operations, and gopkg.in/yaml.v3 for configuration parsing. Discord notifications are supported through github.com/bwmarrin/discordgo, and email notifications through gopkg.in/gomail.v2.

## Limitations and When GoDNS Is Not the Right Tool

The pre-condition for self-hosting GoDNS is owning a domain with nameservers pointing at a supported provider. Users who have not yet registered a domain or who use an unsupported registrar as their DNS host cannot use GoDNS without changing their DNS provider first. The README is explicit about this.

GoDNS updates DNS records by making API calls to the provider. It is not a DNS server itself. Teams who need to run their own authoritative nameserver with dynamic updates should look at PowerDNS with its dynamic update protocol or a comparable nameserver that supports RFC 2136 DDNS, which operates at a different architectural level from what GoDNS does.

The npm package.json file in the web/ directory uses Bun for builds, and the Dockerfile requires bun:1.3.11-alpine as the frontend build stage. Source builds require Bun to be installed alongside Go, which is an extra prerequisite not commonly present in all developer environments.

For users who want DDNS without managing infrastructure, the README points to godns.app as the hosted managed option from the same author.

## Maintenance and License

The latest release is v3.4.4, published on 2026-09-12. The previous release was v3.4.3 (2026-07-26) and v3.4.2 (2026-05-25), indicating roughly two-month release cadence for the 3.4 series. The last repository push was on 2026-09-16.

GoDNS is licensed under Apache-2.0, which permits use in commercial products, modification, and redistribution with attribution. The go.mod file specifies go 1.26 as the minimum Go version.

## Conclusion

GoDNS is a practical choice for anyone running a home server, NAS, or self-hosted service behind a dynamic IP address who wants to automate DNS record updates without writing their own scripts. It is not a choice for users whose DNS provider is not on the supported list, though the 22-provider coverage handles most common cases. Before deploying, confirm that your domain's nameservers are pointed to one of the supported providers, or that you are comfortable with a free DuckDNS subdomain as an alternative. The current release is v3.4.4.

## FAQ

### How much does self-hosting GoDNS cost?

GoDNS is open-source and free to run. The operational cost is limited to the DNS provider's own fees; many supported providers like DuckDNS offer free subdomains, and Cloudflare offers free DNS management for domains registered elsewhere.

### Does GoDNS support IPv6 in addition to IPv4?

The provider table in the README shows that all 22 supported providers support both IPv4 and IPv6, including Cloudflare, AliDNS, Cloudflare, Hetzner, and DuckDNS.

### What is a disadvantage of using a DDNS client like GoDNS?

GoDNS depends on your DNS provider's API remaining available and compatible with its implementation. If a provider changes its API, GoDNS updates may fail silently until the client is updated. The README does not describe automatic failure alerting, though Discord and email notification integrations are listed among the go.mod dependencies.

## Sources

- [Official README](https://github.com/TimothyYe/godns#readme)
- [Project repository](https://github.com/TimothyYe/godns)
- [Release notes](https://github.com/TimothyYe/godns/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/timothyye-godns
