{"id":19933983,"url":"https://github.com/proffan/cloudflare-proxy-rs","last_synced_at":"2025-07-29T05:32:33.674Z","repository":{"id":39493797,"uuid":"165657150","full_name":"ProfFan/cloudflare-proxy-rs","owner":"ProfFan","description":"Proxy for not sharing your Cloudflare private key everywhere on untrusted servers.","archived":false,"fork":false,"pushed_at":"2023-03-04T04:11:11.000Z","size":736,"stargazers_count":8,"open_issues_count":6,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-21T18:31:11.199Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ProfFan.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}},"created_at":"2019-01-14T12:24:25.000Z","updated_at":"2023-02-14T15:43:33.000Z","dependencies_parsed_at":"2024-01-14T10:59:39.246Z","dependency_job_id":"81bd6f53-2d68-4ba3-af26-7a61b8497c0a","html_url":"https://github.com/ProfFan/cloudflare-proxy-rs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ProfFan/cloudflare-proxy-rs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProfFan%2Fcloudflare-proxy-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProfFan%2Fcloudflare-proxy-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProfFan%2Fcloudflare-proxy-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProfFan%2Fcloudflare-proxy-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ProfFan","download_url":"https://codeload.github.com/ProfFan/cloudflare-proxy-rs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProfFan%2Fcloudflare-proxy-rs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267633670,"owners_count":24118777,"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","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"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":[],"created_at":"2024-11-12T23:15:32.172Z","updated_at":"2025-07-29T05:32:33.641Z","avatar_url":"https://github.com/ProfFan.png","language":"Rust","readme":"# `cloudflare-proxy`\n\nProxy for Cloudflare API written in Rust. This is mainly designed to solve the problem that Cloudflare only has one API key for all sites belonging to an account.\n\nThis program provides a Certbot DNS challenge provider [`certbot-dns-cfproxy`](https://github.com/ProfFan/certbot-dns-cfproxy) that you can install via Pypi for easy tiered management of SSL certs for your personal servers while not leaking your CF API key everywhere on different cloud server providers.\n\n# Usage\n\nFirst install PostgreSQL, create the user and database, change the `.env` file (follow the http://diesel.rs/ tutorial):\n\n```\nDATABASE_URL=postgres://user_pass@localhost/DB_NAME\n```\n\nThen create a user, a site and give the user privilege:\n\n```\ndiesel setup\n\n\u003e cargo run --bin new_user\nInput username:\ncargo\n\nOk! Input the API Key for cargo\n\nsuper_secret_key\n\nCreated user cargo with id 2\n\n\u003e cargo run --bin new_site\nInput site name:\nG00gle\n\nOk! Input the zone (domain name) for G00gle\n\ngoogle.com\n\nCreated site G00gle with id 2\n\n\u003e cargo run --bin new_priv\nInput user:\ncargo\n\nOk! Input the zone (domain name):\n\ngoogle.com\nInput the regex pattern:\n.*\\.google\\.com\nMake him superuser for cargo: (y/N)\nn\n```\n\nAnd run the web app with you cloudflare credentials:\n\n```\nROCKET_CFUSER=\u003cCF_EMAIL\u003e ROCKET_CFKEY=\u003cCF_KEY\u003e cargo run\n```\n\nNow you can call the API with:\n\n```\ncurl --verbose  --header \"Content-Type: application/json\" \\\n  --data '{\"user\":\"username\",\"key\":\"fdsfdafsas\",\"zone\":\"google.com\",\"rec\":\"vu1.google.com\",\"rectype\":\"A\", \"value\":\"10.2.22.2\"}' \\\n  http://localhost:8000/update\n```\n\n# ACME (Let's Encrypt)\n\nUse with [`certbot-dns-cfproxy`](https://github.com/ProfFan/certbot-dns-cfproxy)\n\n# LICENSE\n\nMIT or Apache\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproffan%2Fcloudflare-proxy-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fproffan%2Fcloudflare-proxy-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproffan%2Fcloudflare-proxy-rs/lists"}