{"id":13473644,"url":"https://github.com/lfaoro/flares","last_synced_at":"2026-05-12T03:08:23.524Z","repository":{"id":34833474,"uuid":"153310315","full_name":"lfaoro/flares","owner":"lfaoro","description":"Flares 🔥 is a CloudFlare DNS backup tool","archived":false,"fork":false,"pushed_at":"2026-05-12T00:19:29.000Z","size":2686,"stargazers_count":193,"open_issues_count":0,"forks_count":17,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-05-12T00:23:18.229Z","etag":null,"topics":["backup","cloudflare","dns","export"],"latest_commit_sha":null,"homepage":"","language":"Go","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/lfaoro.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2018-10-16T15:35:00.000Z","updated_at":"2026-05-12T00:19:29.000Z","dependencies_parsed_at":"2024-01-05T20:58:52.142Z","dependency_job_id":"8b920fa9-6507-4aca-92e0-7ac6a32b6e51","html_url":"https://github.com/lfaoro/flares","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/lfaoro/flares","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lfaoro%2Fflares","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lfaoro%2Fflares/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lfaoro%2Fflares/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lfaoro%2Fflares/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lfaoro","download_url":"https://codeload.github.com/lfaoro/flares/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lfaoro%2Fflares/sbom","scorecard":{"id":586750,"data":{"date":"2025-08-11","repo":{"name":"github.com/lfaoro/flares","commit":"80721b82673860fbd0b95759a755a21ba8556397"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.8,"checks":[{"name":"Code-Review","score":2,"reason":"Found 5/18 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":8,"reason":"5 out of the last 5 releases have a total of 5 signed artifacts.","details":["Info: signed release artifact: checksums.txt.sig: https://github.com/lfaoro/flares/releases/tag/v3.0.0","Info: signed release artifact: checksums.txt.sig: https://github.com/lfaoro/flares/releases/tag/2.3.2","Info: signed release artifact: checksums.txt.sig: https://github.com/lfaoro/flares/releases/tag/v2.3.1","Info: signed release artifact: checksums.txt.sig: https://github.com/lfaoro/flares/releases/tag/v2.3.0","Info: signed release artifact: checksums.txt.sig: https://github.com/lfaoro/flares/releases/tag/v2.2.1","Warn: release artifact v3.0.0 does not have provenance: https://api.github.com/repos/lfaoro/flares/releases/51476699","Warn: release artifact 2.3.2 does not have provenance: https://api.github.com/repos/lfaoro/flares/releases/19066343","Warn: release artifact v2.3.1 does not have provenance: https://api.github.com/repos/lfaoro/flares/releases/17833587","Warn: release artifact v2.3.0 does not have provenance: https://api.github.com/repos/lfaoro/flares/releases/17804007","Warn: release artifact v2.2.1 does not have provenance: https://api.github.com/repos/lfaoro/flares/releases/17791694"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":3,"reason":"dependency not pinned by hash detected -- score normalized to 3","details":["Warn: containerImage not pinned by hash: Dockerfile:1","Warn: containerImage not pinned by hash: Dockerfile:8: pin your Docker image by updating alpine:latest to alpine:latest@sha256:4bcff63911fcb4448bd4fdacec207030997caf25e9bea4045fa6c8c44de311d1","Info:   0 out of   2 containerImage dependencies pinned","Info:   1 out of   1 goCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 19 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-20T20:42:46.847Z","repository_id":34833474,"created_at":"2025-08-20T20:42:46.847Z","updated_at":"2025-08-20T20:42:46.847Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32921636,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-11T17:09:15.040Z","status":"online","status_checked_at":"2026-05-12T02:00:06.338Z","response_time":102,"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":["backup","cloudflare","dns","export"],"created_at":"2024-07-31T16:01:05.619Z","updated_at":"2026-05-12T03:08:23.518Z","avatar_url":"https://github.com/lfaoro.png","language":"Go","funding_links":[],"categories":["Go","DNS","cloudflare"],"sub_categories":[],"readme":"# Flares 🔥\n\nCloudflare DNS backup tool — exports DNS records as BIND-formatted zone files to stdout or disk.\n\n## Quick Start\n\n```bash\nexport CLOUDFLARE_API_TOKEN=\"KClp4y8BgD2LQiz2...\"\n\n# Show DNS records for a domain\nflares show example.com\n\n# Export as BIND zone file\nflares export example.com\n\n# All zones at once\nflares show --all\nflares export --all\n\n# List zones\nflares zones\n```\n\nGet your token at https://dash.cloudflare.com/profile/api-tokens (Create Token → Zone.DNS → Read → All zones).\n\n## Install\n\n### One-liner\n\n```bash\ncurl -sfL https://raw.githubusercontent.com/lfaoro/flares/main/install.sh | sh\n```\n\nInstall a specific version to a custom path:\n\n```bash\ncurl -sfL https://raw.githubusercontent.com/lfaoro/flares/main/install.sh | sh -s -- -b /usr/local/bin v4.0.1\n```\n\n### Package Managers\n\n| Platform | Command |\n|----------|---------|\n| macOS / Linux | `brew install lfaoro/tap/flares` |\n| Arch Linux | `yay -S flares-bin` (AUR) |\n| Nix | `nix profile install github:lfaoro/tap#flares` |\n| Go | `go install github.com/lfaoro/flares/cmd/flares@latest` |\n\n### Pre-built Binaries\n\nDownload the latest archive for your platform from the [releases page](https://github.com/lfaoro/flares/releases), then:\n\n```bash\ntar xzf flares_*.tar.gz\nsudo mv flares /usr/local/bin/\n```\n\n### Docker\n\n```bash\ndocker pull ghcr.io/lfaoro/flares\ndocker run --rm -e CLOUDFLARE_API_TOKEN=\"$CLOUDFLARE_API_TOKEN\" \\\n  ghcr.io/lfaoro/flares show example.com\n```\n\n## Usage\n\n```\nflares [--token TOKEN] [--debug] \u003ccommand\u003e [flags] [\u003cdomain\u003e...]\n\nCommands:\n  show      Print DNS records\n    --all, -a             All zones\n    --output, -o FORMAT   Output format: text (default) or json\n\n  export    Write BIND zone files\n    --all, -a             All zones\n\n  zones     List all zone IDs and names\n\nGlobal flags:\n  --token, -t   Cloudflare API token  [$CLOUDFLARE_API_TOKEN, $CF_API_TOKEN]\n  --debug, -d   Enable debug output   [$FLARES_DEBUG]\n  --threads, -c Max concurrent API requests for --all (default: 10) [$FLARES_THREADS]\n```\n\n### JSON Output\n\n```bash\nflares show --output json example.com\n```\n\nReturns `{\"example.com\": \"; Domain: example.com\\n...BIND records...\"}` — useful for scripting.\n\n### Using --all\n\n```bash\n# Dump all zones to stdout\nflares show --all\n\n# Export every zone to its own file in the current directory\nflares export --all\n```\n\nConcurrent exports are throttled to 10 simultaneous requests to avoid Cloudflare rate limits.\n\n## Token\n\nCreate a token at https://dash.cloudflare.com/profile/api-tokens with:\n\n- **Permissions**: Zone → DNS → Read\n- **Zone Resources**: Include → All zones\n\nVerify your token:\n\n```bash\ncurl -H \"Authorization: Bearer $CLOUDFLARE_API_TOKEN\" \\\n  https://api.cloudflare.com/client/v4/user/tokens/verify\n```\n\n## Development\n\n```bash\nnix-shell                 # Go 1.26, golangci-lint, goreleaser, gofumpt\nmake build               # Build binary\nmake test                # Run all tests\nmake lint                # golangci-lint (30+ linters)\nmake reltest             # Dry-run goreleaser snapshot\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flfaoro%2Fflares","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flfaoro%2Fflares","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flfaoro%2Fflares/lists"}