{"id":18522432,"url":"https://github.com/astro/ifdyndnsd","last_synced_at":"2025-08-12T02:15:56.011Z","repository":{"id":41431838,"uuid":"397395433","full_name":"astro/ifdyndnsd","owner":"astro","description":"Watch netlink for interface address updates to do DynDNS just like nsupdate does (RFC2136 + RFC2845)","archived":false,"fork":false,"pushed_at":"2025-08-03T01:53:54.000Z","size":173,"stargazers_count":15,"open_issues_count":2,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-08-03T03:27:17.033Z","etag":null,"topics":["dns","dyndns","ipv4","ipv6","rfc2136","rfc2845"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/astro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["astro"]}},"created_at":"2021-08-17T21:27:37.000Z","updated_at":"2025-06-23T11:26:04.000Z","dependencies_parsed_at":"2023-10-01T02:23:18.687Z","dependency_job_id":"57fc61b8-ff4d-4108-97bc-7136a2d7d454","html_url":"https://github.com/astro/ifdyndnsd","commit_stats":{"total_commits":58,"total_committers":1,"mean_commits":58.0,"dds":0.0,"last_synced_commit":"385fe15ee0cfe74e8e415565907b5a6faf1be6ed"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/astro/ifdyndnsd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astro%2Fifdyndnsd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astro%2Fifdyndnsd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astro%2Fifdyndnsd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astro%2Fifdyndnsd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/astro","download_url":"https://codeload.github.com/astro/ifdyndnsd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/astro%2Fifdyndnsd/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269987126,"owners_count":24508177,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-12T02:00:09.011Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dns","dyndns","ipv4","ipv6","rfc2136","rfc2845"],"created_at":"2024-11-06T17:30:52.039Z","updated_at":"2025-08-12T02:15:55.986Z","avatar_url":"https://github.com/astro.png","language":"Rust","funding_links":["https://github.com/sponsors/astro"],"categories":[],"sub_categories":[],"readme":"# ifdyndnsd\n\nWatches Linux netlink for interface addresses and their changes to\nperform DynDNS like nsupdate.\n\n## Usage\n\nPass your configuration file as argument:\n\n```shell\ncargo run config.toml\n```\n\n## Configuration\n\n```toml\n# Define a key which can be referenced by \"mykey\". These keys are\n# usually generated with BIND's `ddns-confgen`.\n[keys.mykey]\n# IP address of the DNS server\n# (sorry, can't resolve this yet)\nserver = \"192.0.2.53\"\n# Key name which needs to match the name configured for the key in the\n# DNS server\nname = \"mykey.example.com\"\n# Algorithm to use for TSIG\nalg = \"hmac-sha256\"\n# Secrets\n# Exactly one of the parameters\n# - `secret`\n# - `secret-base64`,\n# - `secret-file`\n# - `secret-file-base64`\n# must be specified.\n# # Plain-text secret\n# secret = \"topsecret\\n\"\n# # Secret encoded in base64 just like BIND uses. This allows using\n# binary strings.\nsecret-base64 = \"dG9wc2VjcmV0Cg==\"\n# # Secrets from files\n# Both secret types from above can also be read from a file\n# secret-file = \"/run/user/secret.file\"\n# for a plain text secret or \n# secret-file-base64 = \"/run/user/secret.file\"\n# for a base64 encoded secret\n# Update an A record (IPv4)\n[[a]]\n# Select `[key.mykey]` for server/key settings\nkey = \"mykey\"\n# DNS name to update\nname = \"dyndns.example.net\"\nzone = \"example.net\"\n# # Optionally define a time to live (ttl) for the record to set. The default ttl is 0\n# ttl = 7200\n# Network interface to watch for an IP address\ninterface = \"ppp0\"\n# # Optionally select the proper IP address by subnet. This is the\n# # default for IPv4:\n# scope = \"0.0.0.0/0\"\n\n# Update a AAAA record (IPv6)\n[[aaaa]]\n# Select `[key.mykey]` for server/key settings\nkey = \"mykey\"\n# DNS name to update\nname = \"dyndns.example.net\"\nzone = \"example.net\"\n# # Optionally define a time to live (ttl) for the record to set. The default ttl is 0\n# ttl = 7200\n# Network interface to watch for an IP address\ninterface = \"ppp0\"\n# # Optionally select the proper IP address by subnet. This is the\n# # default for IPv6, which filters for global addresses but not\n# # link-local, ULA, ...:\nscope = \"2000::/3\"\n\n# Update another AAAA record\n# (when you have setup prefix delegation so that you distribute the\n# dynamic ISP-assigned subnet to your LAN)\n[[aaaa]]\nkey = \"mykey\"\n# For IPv6 ifdyndnsd doesn't need to run on the LAN gateway.\nname = \"server.home.example.net\"\n# Watch the local LAN interface for addresses\ninterface = \"eth0\"\n# Default `scope = \"2000::/3\"` should be right in most DynDNS\n# scenarios.\n\n# Once the IPv6 address is known, ifdyndnsd can also update DNS\n# records for other hosts in your LAN if you know the last 64 bits of\n# their radvd-assigned addresses (the host part in a /64 network). Be\n# careful not to use /temporary/ addresses (Privacy Extensions) here:\nneighbors.\"router.example.net\" = \"::2de:adff:fe00:beef\"\nneighbors.\"laptop.example.net\" = \"::2de:caff:fefb:ad00\"\nneighbors.\"phone.example.net\" = \"::212:23ff:fe56:789a\"\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastro%2Fifdyndnsd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fastro%2Fifdyndnsd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fastro%2Fifdyndnsd/lists"}