{"id":16561821,"url":"https://github.com/jamesob/gandi-ddns","last_synced_at":"2025-07-29T12:39:26.849Z","repository":{"id":66816011,"uuid":"536653585","full_name":"jamesob/gandi-ddns","owner":"jamesob","description":"Declarative dynamic DNS with gandi.net","archived":false,"fork":false,"pushed_at":"2022-09-14T19:10:39.000Z","size":4,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-15T14:43:04.962Z","etag":null,"topics":["ddns","dns","dynamic-dns","gandi","gandi-api","gandi-dns","no-dependencies"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jamesob.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2022-09-14T15:52:03.000Z","updated_at":"2023-02-20T01:42:19.000Z","dependencies_parsed_at":"2023-02-27T16:15:37.511Z","dependency_job_id":null,"html_url":"https://github.com/jamesob/gandi-ddns","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesob%2Fgandi-ddns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesob%2Fgandi-ddns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesob%2Fgandi-ddns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesob%2Fgandi-ddns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jamesob","download_url":"https://codeload.github.com/jamesob/gandi-ddns/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241966986,"owners_count":20050324,"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","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":["ddns","dns","dynamic-dns","gandi","gandi-api","gandi-dns","no-dependencies"],"created_at":"2024-10-11T20:34:25.787Z","updated_at":"2025-03-05T04:41:14.212Z","avatar_url":"https://github.com/jamesob.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# gandi-ddns\n\nA dependency-less script for declarative dynamic DNS using the gandi.net API.\n\n**Requires**: Python 3.10+\n\n\n## Example configuration\n\nThe following locations will be searched for a configuration file (or you can \nspecify the `--conf` argument):\n\n- environment variable `GANDI_DDNS_CONFIG`\n- ~/.config/gandi-ddns.ini\n- /etc/gandi-ddns/config.ini\n\n```ini\n\n[default]\n\n# Required\n\nwan_device = enp2s0\ngandi_api_key = $GANDI_API_KEY\n\n# Optional; called when record changes happen or fail. Takes a single arg, a string\n# message. I use pushover.net for this.\nnotify_script = /usr/local/bin/pushover \n\n# Each domain has its own section. Within each section, the format is\n#\n#  [record type], [record name] = [record value], ...\n#\n\n[foobar.org]\n\n# blank value will be filled in with running host's IP.\nA, @\nA, mail\nCNAME, bmon = some-host.lan.\n\n# values are CSVs for separate records with the same name.\nMX, @ = 10 one-val.com., 20 other-val.com.\n\n[hmmmm.com]\n\nA, @\n```\n\n## Environment variables\n\n- `GANDI_APIKEY`: API key for gandi.net\n- `GANDI_DDNS_CONFIG`: path to configuration file\n\n## Install\n\n```sh\n% curl $this_url/main.py \u003e ~/.local/bin/gandi-ddns  # or wherever\n% chmod +x ~/.local/bin/gandi-ddns\n\n% $EDITOR ~/.config/gandi-ddns.conf\n\n% gandi-ddns\n```\n\n\nRun it on a crontab if you want:\n```sh\n% cat /etc/cron.d/gandi-ddns\n\n*/15 * * * * your-user /home/your-user/.local/bin/gandi-ddns\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamesob%2Fgandi-ddns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamesob%2Fgandi-ddns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamesob%2Fgandi-ddns/lists"}