{"id":13412660,"url":"https://gitlab.com/alcastle/dyndns","last_synced_at":"2025-03-14T18:32:05.469Z","repository":{"id":57519027,"uuid":"15557479","full_name":"alcastle/dyndns","owner":"alcastle","description":"dyndns is s a simple app that updates dynamic DNS records for (one or many) domains, on a variety of providers via a simple config file. Works on Linux, Windows, and OSX.","archived":false,"fork":false,"pushed_at":null,"size":null,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":null,"default_branch":"master","last_synced_at":"2024-07-31T20:51:16.016Z","etag":null,"topics":["dns","dyndns","easydns","golang","google domain"],"latest_commit_sha":null,"homepage":null,"language":null,"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":false,"icon_url":null,"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}},"created_at":"2019-11-27T05:29:16.258Z","updated_at":"2021-08-14T23:16:07.122Z","dependencies_parsed_at":"2022-09-06T03:42:40.059Z","dependency_job_id":null,"html_url":"https://gitlab.com/alcastle/dyndns","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/alcastle%2Fdyndns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/alcastle%2Fdyndns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/alcastle%2Fdyndns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/alcastle%2Fdyndns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners/alcastle","download_url":"https://gitlab.com/alcastle/dyndns/-/archive/master/dyndns-master.zip","host":{"name":"gitlab.com","url":"https://gitlab.com","kind":"gitlab","repositories_count":4518057,"owners_count":6822,"icon_url":"https://github.com/gitlab.png","version":null,"created_at":"2022-05-30T11:31:42.605Z","updated_at":"2024-07-18T11:24:13.055Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners"}},"keywords":["dns","dyndns","easydns","golang","google domain"],"created_at":"2024-07-30T20:01:27.435Z","updated_at":"2025-03-14T18:32:02.791Z","avatar_url":null,"language":null,"funding_links":[],"categories":["Dynamic DNS","动态域名","动态DNS`更新动态dns记录的库和工具`","动态DNS"],"sub_categories":["Search and Analytic Databases","检索及分析资料库","SQL 查询语句构建库","Advanced Console UIs"],"readme":"# dyndns\n\n[![Go Report Card](https://goreportcard.com/badge/gitlab.com/alcastle/dyndns)](https://goreportcard.com/report/gitlab.com/alcastle/dyndns)\n[![Go Coverage](https://img.shields.io/badge/coverage-82.6-green)](https://gocover.io/gitlab.com/alcastle/dyndns)\n[![Go Doc](https://img.shields.io/badge/godoc-reference-blue)](https://godoc.org/gitlab.com/alcastle/dyndns)\n\n![Runs on OSX](https://img.shields.io/badge/Runs%20on-OSX%20Catalina-brightgreen)\n![Runs on Linux](https://img.shields.io/badge/Runs%20on-Linux-brightgreen)\n![Runs on Windows](https://img.shields.io/badge/Runs%20on-Windows%2010%20Pro-green)\n\n`dyndns` is s a simple app that updates dynamic DNS records for (one or many) domains, on a variety of providers. \nYou can update multiple providers/domains at the same time with a simple config file.\n\nHow often it checks for IP changes is configurable, and only makes actual updates to the DNS provider \nif the IP has changed and requires updating. \n\n```\nYou can get started right away without needing Go by just downloading the pre-built \nexecutable for your operating system; the file you need is under the builds/ directory. \n\nFor Windows you'll want this file\nbuilds/win/dyndyns.exe \n\nNote: The config.yaml file needs to be in the same directory as the executable to work. \nMake sure to update the config.yaml with your information.\n```\n\n## Requirements\n- Currently only tested on OSX 10.15.1 (Catalina), Windows 10 Pro, and Knoppix (8.2) Linux\n- You must have an account from a supported provider:\n  -  Google, easyDNS, No-IP, DYNU, or one that supports the Generic profile listed below.\n- The executable and config.yaml need to be in the same directory.\n- The directory needs to be writable.\n\n\n## Configuration\n- Update the `config.yaml` file adding in your own domains and credentials. See these pages for more information: \n- [Google](https://support.google.com/domains/answer/6147083?hl=en)\n- [easyDNS](https://fusion.easydns.com/Knowledgebase/Article/View/102/7/dynamic-dns)\n- [No-IP](https://www.noip.com/integrate/request)\n- [DYNU](https://www.dynu.com/DynamicDNS/IP-Update-Protocol#ipupdate)\n- Generic - allows you to add an unsupported provider so long as they support a basic auth API\n```yaml\n - domain:\n      provider: custom\n      hostname: yourOtherOtherOther.domain.com\n      username: domain5Username\n      password: domain5Password\n      customURL: api.custom.com\n      method: POST # GET is also a valid option\n      ## \n      # Replace values in quotes with the values the vendor is looking for, do not change the keys\n      #\n      ## \n      # The update was successful\n      code_succes: \"good\"\n      # There was no change - already has the correct IP Address\n      code_noChange: \"nochng\"\n      # No Host - the host does not exist or does not support Dynamic DNS\n      code_noHost: \"nohost\"\n      # Bad Auth - the username / password you've supplied is invalid\n      code_badAuth: \"badauth\"\n      # Bad Agent - The user agent is missing, wrong, or is blocked due to misuse.\n      code_badAgent: \"badagent\"\n      # Abuse - The user is blocked due to abuse. Too many requests, not following the spec or violation of TOS\n      code_abuse: \"abuse\"\n      # 911 - Something has gone wrong on the server-side, should wait 30 min to try again\n      code_911: \"911\"\n\n```\n\n\n## Run - Manually via Command Line\n- The app only needs to be run once and will run periodically on it's own, based on the \ninterval setting in the config.yaml file; `default is every 5 minutes`. From a terminal execute the file. \n##### On Linux and OSX\n```\n $ ./dyndns\n```\nAlternatively you can run as a daemon by executing\n```\n $ nohup ./dyndns \u0026\n```\n\n##### On Windows\n```\nOpen Command Prompt window and execute dyndns.exe\n```\n\n## Run - Automatically at Boot\nEdit your crontab \n```\n$ crontab -e\n```\nAdd a line\n```\n@reboot [path to dyndns]\n```\n\n# Compiling\nSee also the `make.sh` script \n```\n$ sh make.sh\n```\n\n### Building from source\n- You can find the latest build for OSX, Windows, and Linux ready to go in the builds directory.\n\n**Build for OSX**\n- If you want to make changes to the source code and rebuild on OSX. \n```\n $ go build -o builds/osx/dyndns main.go database.go utils.go counter.go easydns.go google.go no-ip.go custom.go dynu.go\n```\n\n**Build for Windows**\n```\n $ GOOS=windows GOARCH=386 go build -o builds/win/dyndns.exe main.go database.go utils.go counter.go easydns.go google.go no-ip.go custom.go dynu.go\n```\n\n**Build for Linux**\n- If you're building on OSX you'll need to install some extra packages\n```\n $ brew install FiloScottile/musl-cross/musl-cross\n $ CC=x86_64-linux-musl-gcc CXX=x86_64-linux-musl-g++ GOARCH=amd64 GOOS=linux CGO_ENABLED=1 go build -ldflags \"-linkmode external -extldflags -static\" -o builds/linux/dyndns main.go database.go utils.go counter.go easydns.go google.go no-ip.go custom.go dynu.go\n```\n\n## Logs\n- If you run with `nohup` informational and error logging will be written to nohup.out otherwise \n they will be written to the terminal. \n\n## Force Update\nTo force all domains to be re-checked from scratch delete the database file `CI-DDNS.db`","project_url":"https://awesome.ecosyste.ms/api/v1/projects/gitlab.com%2Falcastle%2Fdyndns","html_url":"https://awesome.ecosyste.ms/projects/gitlab.com%2Falcastle%2Fdyndns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/gitlab.com%2Falcastle%2Fdyndns/lists"}