{"id":16226319,"url":"https://github.com/ghostdevv/shire","last_synced_at":"2025-03-19T13:30:38.861Z","repository":{"id":187525094,"uuid":"677033019","full_name":"ghostdevv/shire","owner":"ghostdevv","description":"Shire is a simple no fuss ddns client for cloudflare","archived":false,"fork":false,"pushed_at":"2025-02-03T18:47:52.000Z","size":188,"stargazers_count":4,"open_issues_count":6,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-28T18:47:43.450Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ghostdevv.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}},"created_at":"2023-08-10T15:22:51.000Z","updated_at":"2024-10-02T09:02:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"3fb88b41-bba7-49d3-86df-4b1b1575efc1","html_url":"https://github.com/ghostdevv/shire","commit_stats":null,"previous_names":["ghostdevv/shire"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ghostdevv%2Fshire","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ghostdevv%2Fshire/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ghostdevv%2Fshire/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ghostdevv%2Fshire/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ghostdevv","download_url":"https://codeload.github.com/ghostdevv/shire/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243989729,"owners_count":20379648,"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":[],"created_at":"2024-10-10T12:48:44.278Z","updated_at":"2025-03-19T13:30:36.754Z","avatar_url":"https://github.com/ghostdevv.png","language":"Rust","readme":"# Shire\n\nShire is a simple no fuss ddns client for Cloudflare. It allows you to update Cloudflare DNS record(s) with your current IP address.\n\n## Installation\n\nGrab your operating systems binary from the [Releases Tab](https://github.com/ghostdevv/shire/releases). You can then run this from terminal.\n\n### Linux One Liner\n\nIf you're using linux you can use the following command to install it easily:\n\n```bash\ncurl -sL -o shire https://github.com/ghostdevv/shire/releases/latest/download/shire-linux-amd64 \\\n  \u0026\u0026 chmod +x shire \\\n  \u0026\u0026 sudo mv -f shire /usr/local/bin \\\n  \u0026\u0026 sudo chown root:root /usr/local/bin/shire\n```\n\n### Cron\n\nShire is intended to be run as a cron job on linux, an example of that could be:\n\n```\n0 0 * * * /bin/bash /usr/local/bin/shire -k CF_API_KEY -z ZONE_ID -r RECORDS\n```\n\nSee [Usage](#usage) for more information.\n\n## Usage\n\n```bash\n$ shire --help\nShire is a simple no fuss ddns client for Cloudflare\n\nUsage: shire [OPTIONS] --zone-id \u003cZONE_ID\u003e --key \u003cKEY\u003e\n\nOptions:\n  -r, --records \u003cRECORDS\u003e          Comma seperated list of the record names to update\n  -z, --zone-id \u003cZONE_ID\u003e          The Cloudflare Zone Id for your domain\n  -k, --key \u003cKEY\u003e                  Your Cloudflare API key\n  -i, --ip-resolver \u003cIP_RESOLVER\u003e  The IP resolver url to use, this defaults to ip.willow.sh [default: https://ip.willow.sh]\n  -h, --help                       Print help\n  -V, --version                    Print version\n```\n\n### Example\n\nIf we wanted to update the record `test` we could do\n\n```bash\nshire --key CF_API_KEY --zone-id bab32631af40d574ag246741013k40z3 --records test\n# or use the shorthand args\nshire -k CF_API_KEY -z bab32631af40d574ag246741013k40z3 -r test\n```\n\n## Configuration\n\n### Cloudflare API Key\n\nYou can generate an API Key by visiting the [Cloudflare Dashboard](https://dash.cloudflare.com/profile/api-tokens). Once you click the \"Create Token\" button, if available click the \"Edit zone DNS\" template, and then fill in similar to this:\n\n![](./.github/cloudflare-api-key.webp)\n\nAdd as many zones as you are using with shire, or allow access to all zones. \n\n### Zone Id\n\nTo get your Zone's Id visit your domain on the [Cloudflare Dashboard](https://dash.cloudflare.com?to=/:account/:zone). Click on the \"Overview\" tab, and scroll until you see the \"API\" on the right side of the page. You can then click to copy your Zone Id.\n\n![](./.github/zone-id.webp)\n\n### Changing IP resolver\n\nBy default shire uses `https://ip.willow.sh`, a [cloudflare worker](https://workers.cloudflare.com/) run by me. You can pass your own URL that returns a text response with your ipv4 address:\n\n```bash\n$ shire --ip-resolver \"https://ip.willow.sh\"\n```\n\nI recommend you host your own [cloudflare worker](https://workers.cloudflare.com/) to make sure you can own \u0026 audit all the code you are running. However, you are more than welcome to use [mine](https://ip.willow.sh) if you like:\n\n```js\nexport default {\n  /** @param {Request} request */\n  fetch(request) {\n    return new Response(request.headers.get('cf-connecting-ip'), {\n      headers: {\n        'Access-Control-Allow-Origin': '*',\n      }\n    });\n  }\n}\n```\n\n```bash\n$ curl https://ip.willow.sh\n140.82.121.3\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fghostdevv%2Fshire","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fghostdevv%2Fshire","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fghostdevv%2Fshire/lists"}