{"id":35196903,"url":"https://github.com/tarka/netlink-ddns","last_synced_at":"2026-01-13T21:37:35.891Z","repository":{"id":330929292,"uuid":"1012878463","full_name":"tarka/netlink-ddns","owner":"tarka","description":null,"archived":false,"fork":false,"pushed_at":"2025-12-30T05:15:19.000Z","size":188,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-01-08T15:54:39.296Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/tarka.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-03T03:08:39.000Z","updated_at":"2025-12-30T05:13:50.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/tarka/netlink-ddns","commit_stats":null,"previous_names":["tarka/netlink-ddns"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/tarka/netlink-ddns","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarka%2Fnetlink-ddns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarka%2Fnetlink-ddns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarka%2Fnetlink-ddns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarka%2Fnetlink-ddns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tarka","download_url":"https://codeload.github.com/tarka/netlink-ddns/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarka%2Fnetlink-ddns/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28400972,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-13T14:36:09.778Z","status":"ssl_error","status_checked_at":"2026-01-13T14:35:19.697Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2025-12-29T07:42:09.029Z","updated_at":"2026-01-13T21:37:35.885Z","avatar_url":"https://github.com/tarka.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Netlink DDNS\n\nA dynamic DNS (DDNS) updater for Linux that monitors network interface changes\nvia netlink and automatically updates DNS records.\n\n## Overview\n\nNetlink DDNS is a lightweight service that monitors your network interfaces via\nkernel netlink for IP address changes and automatically updates your DNS records\nto match your current IP address. Currently only Gandi is supported as a\nupstream provider, but more can be added.\n\n## Features\n\n- Real-time monitoring of network interface changes using netlink sockets\n- Uses the [zone-update](https://github.com/tarka/zone-update/) library to allow\n  DNS updates for multiple DNS providers.\n\n## Installation\n\n### Release Binaries\n\nTarballs are available on the [Github release page](https://github.com/tarka/netlink-ddns/releases). \nThese contain binaries, documentation, example configuration files, and an example\nsystemd configuration.\n\n### Install from crates.io\n\n```bash\ncargo install netlink-ddns\n# The binary will be in ~/.cargo/bin/\n```\n\n### Building from Source\n\nYou'll need Rust installed to build the project:\n\n```bash\n# Clone the repository\ngit clone https://github.com/tarka/netlink-ddns.git\ncd netlink-ddns\n\n# Build \u0026 install the project\ncargo build --release\n\n# The binary will be in target/release/netlink-ddns\n```\n\n## Configuration\n\nThe service is configured using a [Corn](https://cornlang.dev/) config file. By\ndefault, it looks for the configuration at `/etc/netlink-ddns/config.corn`.\n\nExample configuration:\n\n```\nlet {\n  // Secrets can be stored in environment variables. The systemd service can set these\n  // from a secrets file.\n  $env_PORKBUN_KEY = \"a_key\"\n  $env_PORKBUN_SECRET = \"a_secret\"\n\n}  in {\n\n  log_level = \"debug\"\n  iface = \"test0\"\n\n  ddns = {\n    domain = \"example.com\"\n    host = \"test\"\n    provider = {\n      name = \"porkbun\"\n      key = $env_PORKBUN_KEY\n      secret = $env_PORKBUN_SECRET\n    }\n  }\n}\n```\n\n## Usage\n\n### Running as a Service\n\nThe file `systemd/netlink-ddns.service` contains an example systemd\nconfiguration. This is also available in the release tarballs. \n\n## Requirements\n\n- Linux system with netlink support\n- Network interface with dynamic IP address\n- A DNS account with API access\n- systemd (for service integration)\n\n## License\n\nThis project is licensed under the GPL 3.0 - see the LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftarka%2Fnetlink-ddns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftarka%2Fnetlink-ddns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftarka%2Fnetlink-ddns/lists"}