# jeessy2/ddns-go

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/jeessy2-ddns-go).**

16,318 stars · 1,803 forks · Go · mit

## Links

- GitHub: https://github.com/jeessy2/ddns-go
- awesome-repositories: https://awesome-repositories.com/repository/jeessy2-ddns-go.md

## Topics

`alidns` `baiduyun` `cloudflare` `ddns` `ddns-go` `dnspod` `godaddy-ddns` `google-domains` `porkbun`

## Description

This project is a dynamic DNS client and automation service designed to maintain consistent connectivity for web services by synchronizing domain name records with changing public network addresses. It operates as a persistent background daemon, periodically polling for IP address changes and automatically updating records across multiple DNS providers.

The application distinguishes itself through an embedded web-based dashboard that allows users to manage domain settings, monitor update logs, and configure provider credentials without manual file editing. It utilizes a provider-agnostic adapter pattern to support various DNS services and includes a webhook-driven notification system that triggers external HTTP requests upon successful or failed record updates.

The software supports flexible deployment through static binary compilation and containerization, ensuring it can run as a system service across diverse environments. It also provides extensibility through custom callback execution, allowing for the integration of proprietary DNS services or the retrieval of specific network interface addresses.

## Tags

### Networking & Communication

- [Dynamic DNS Clients](https://awesome-repositories.com/f/networking-communication/dynamic-dns-clients.md) — Automatically updates domain name records when public IP addresses change to ensure consistent remote access. ([source](https://github.com/jeessy2/ddns-go/blob/master/Dockerfile))
- [Automated DNS Managers](https://awesome-repositories.com/f/networking-communication/automated-dns-managers.md) — Synchronizes network records and triggers webhooks to ensure web services remain accessible.
- [DNS Record Updaters](https://awesome-repositories.com/f/networking-communication/dns-record-updaters.md) — Synchronizes domain name records with public network addresses across multiple DNS providers. ([source](https://github.com/jeessy2/ddns-go/blob/master/go.sum))
- [Dynamic DNS Services](https://awesome-repositories.com/f/networking-communication/dynamic-dns-services.md) — Automatically updates domain name system records to map hostnames to changing IP addresses. ([source](https://github.com/jeessy2/ddns-go/blob/master/README.md))
- [Dynamic DNS Synchronization](https://awesome-repositories.com/f/networking-communication/dynamic-dns-synchronization.md) — Automates updates of DNS records to maintain remote access when host IP addresses change. ([source](https://github.com/jeessy2/ddns-go#readme))
- [Remote Access Connectivity](https://awesome-repositories.com/f/networking-communication/remote-access-connectivity.md) — Maintains reliable access to self-hosted applications by keeping domain names synchronized.
- [DNS Management Clients](https://awesome-repositories.com/f/networking-communication/dns-management-clients.md) — Manages and updates DNS records across multiple providers through a unified interface.
- [Public IP Detectors](https://awesome-repositories.com/f/networking-communication/public-ip-detectors.md) — Identifies the current public network address of the host machine to facilitate network connectivity updates. ([source](https://github.com/jeessy2/ddns-go/blob/master/go.sum))
- [Webhooks](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/notification-systems/webhooks.md) — Triggers automated notifications to external URLs in response to successful or failed domain record updates. ([source](https://github.com/jeessy2/ddns-go/wiki/%E4%BC%A0%E9%80%92%E8%87%AA%E5%AE%9A%E4%B9%89%E5%8F%82%E6%95%B0))
- [Webhook Integrations](https://awesome-repositories.com/f/networking-communication/webhook-integrations.md) — Triggers external scripts or notification services automatically upon network address updates.

### DevOps & Infrastructure

- [DNS Management Dashboards](https://awesome-repositories.com/f/devops-infrastructure/infrastructure/networking/domain-management/dns-management-dashboards.md) — Provides a browser-based dashboard for configuring domain settings and managing credentials. ([source](https://github.com/jeessy2/ddns-go#readme))

### Operating Systems & Systems Programming

- [Background Daemons](https://awesome-repositories.com/f/operating-systems-systems-programming/system-administration-maintenance/system-services/background-daemons.md) — Operates as a persistent system process to ensure continuous monitoring and automated network updates without requiring an active user session.

### Business & Productivity Software

- [Background Services](https://awesome-repositories.com/f/business-productivity-software/background-services.md) — Operates as a persistent system process to ensure continuous monitoring and automated updates without manual intervention. ([source](https://github.com/jeessy2/ddns-go/blob/master/README_EN.md))

### System Administration & Monitoring

- [System Services](https://awesome-repositories.com/f/system-administration-monitoring/system-services.md) — Operates as a persistent background daemon to ensure continuous monitoring and automated network updates. ([source](https://github.com/jeessy2/ddns-go/blob/master/go.sum))
- [Web Dashboards](https://awesome-repositories.com/f/system-administration-monitoring/web-dashboards.md) — Offers a web-based dashboard for monitoring logs and managing domain resolution rules. ([source](https://github.com/jeessy2/ddns-go/blob/master/README_EN.md))
- [Service Lifecycle Management](https://awesome-repositories.com/f/system-administration-monitoring/service-lifecycle-management.md) — Provides tools for installing, uninstalling, or restarting the application as a background system process. ([source](https://github.com/jeessy2/ddns-go/blob/master/main.go))

### Web Development

- [Embedded Web Servers](https://awesome-repositories.com/f/web-development/embedded-web-servers.md) — Hosts a local server that provides a graphical interface for managing application settings and monitoring real-time update logs.

### Software Engineering & Architecture

- [Web-Based Configuration Dashboards](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/configuration-interfaces-and-editors/web-based-configuration-generators/web-based-configuration-dashboards.md) — Provides a browser-based dashboard for managing settings and credentials without manual file editing. ([source](https://github.com/jeessy2/ddns-go/blob/master/main.go))
- [Provider Patterns](https://awesome-repositories.com/f/software-engineering-architecture/provider-patterns.md) — Uses modular interfaces to abstract communication with various DNS service APIs, allowing for consistent record management across different platforms.
- [Webhook Event Notifications](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/programmatic-interfaces/webhook-event-notifications.md) — Dispatches HTTP requests to external endpoints after state changes to facilitate integration with downstream automation and monitoring systems.
- [State Reconciliation](https://awesome-repositories.com/f/software-engineering-architecture/state-reconciliation.md) — Periodically compares the current public network address against stored domain records to trigger necessary updates across external providers.

### User Interface & Experience

- [Webhook Status Notifications](https://awesome-repositories.com/f/user-interface-experience/ui-components/feedback-overlay-components/notification-systems/service-status-notifications/webhook-status-notifications.md) — Triggers HTTP callbacks to external services upon successful or failed record updates. ([source](https://github.com/jeessy2/ddns-go#readme))

### Development Tools & Productivity

- [Static Binaries](https://awesome-repositories.com/f/development-tools-productivity/static-binaries.md) — Packages the entire application and its dependencies into a single executable file to simplify deployment across diverse operating environments.
