Skip to content

worryboy/dynamic-dns

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dynamic DNS

This repository is being prepared as a provider-neutral Dynamic DNS product family.

It is split into four product/concept areas:

Area Purpose Status
worker/ Provider-integrated Dynamic DNS worker runtime. This contains the current working implementation. Active
client/ Future URL-based update client / callback-style updater. Placeholder
endpoint/ Future inbound Dynamic DNS endpoint product area. Placeholder
spec/ Shared Dynamic DNS behavior, scenarios, contracts, and test-oriented notes. Starter structure

The current working product is the worker. It currently implements InterNetX XML for InterNetX / AutoDNS / SchlundTech-related environments, but the repository direction is provider-oriented and provider-neutral.

Runtime Models

This image is a provider-integrated Dynamic DNS worker. It detects public IPs itself, keeps state, validates configured targets against the DNS provider, and performs provider-side updates as needed. It is not a simple URL-calling DynDNS client.

  • dynamic-dns-worker: outbound provider-integrated runtime that detects public IPs, stores state, validates DNS provider state, and updates provider-side records.
  • dynamic-dns-client: future URL-based update client or callback-style updater that calls an update URL. It is not implemented yet.
  • dynamic-dns-endpoint: future inbound server-side endpoint that receives update requests from clients and maps them to provider updates. It is not implemented yet.
  • dynamic-dns-spec: shared behavior, contracts, scenarios, and verification notes for the family.

Product Names

Recommended naming direction:

  • Repository family: dynamic-dns
  • Worker product: dynamic-dns-worker
  • Client product: dynamic-dns-client
  • Endpoint product: dynamic-dns-endpoint
  • Behavior/spec space: dynamic-dns-spec

The older internetx-dyndns naming is deprecated. It may remain only in compatibility references, historical release notes, and attribution/provenance history.

Current Worker

Build and run the worker from worker/:

cd worker
cp .env.example .env
# edit .env
docker compose build
docker compose run --rm dynamic-dns-worker

For continuous mode:

cd worker
# set RUN_ONCE=false in .env first
docker compose up -d
docker compose logs -f dynamic-dns-worker

Worker docs:

Client

The client area is intentionally incomplete. It is reserved for a future URL-based update client / callback-style updater that calls an update URL.

See client/README.md.

Endpoint

The endpoint area is intentionally incomplete. It is reserved for a future inbound HTTP-style Dynamic DNS endpoint, for example a service that receives update requests from routers, scripts, or the future client and then applies provider updates.

See endpoint/README.md.

Spec

The spec area is for behavior that should be shared across worker, client, and endpoint models: target semantics, update decisions, verification stages, fixtures, and future contract tests.

See spec/README.md.

Image naming:

  • Official worker image: worryboy/dynamic-dns-worker
  • Future client image: dynamic-dns-client
  • Future endpoint image: dynamic-dns-endpoint
  • Existing image names such as worryboy/internetx-dyndns are deprecated compatibility references. New deployments should use worryboy/dynamic-dns-worker.

Versioning

Each product area has its own version line:

release tag prefixes:

  • worker-v0.5.6
  • endpoint-v0.1.0
  • spec-v0.1.0

Do not assume a worker release implies an endpoint or spec release.

License And Attribution

This repository uses MIT; see LICENSE.

Origin and provenance are documented in ATTRIBUTION.md.

About

Dynamic DNS worker for InterNetX & AutoDNS XML with Docker support, persistent state, healthcheck and Traefik/CrowdSec example.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages