{"id":17653079,"url":"https://github.com/yuchanns/warpflare","last_synced_at":"2025-03-27T07:31:35.234Z","repository":{"id":228208222,"uuid":"768140171","full_name":"yuchanns/warpflare","owner":"yuchanns","description":"Keep your WARP+ traffic topped up with Cloudflare Workers.","archived":true,"fork":false,"pushed_at":"2024-06-10T09:46:52.000Z","size":229,"stargazers_count":335,"open_issues_count":8,"forks_count":221,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-24T00:52:10.038Z","etag":null,"topics":["cloudflare","cloudflare-worker","telegram-bot","warp","warp-plus"],"latest_commit_sha":null,"homepage":"https://1.1.1.1","language":"TypeScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yuchanns.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":"2024-03-06T14:43:12.000Z","updated_at":"2025-03-21T16:43:54.000Z","dependencies_parsed_at":"2024-06-10T11:22:16.411Z","dependency_job_id":"175de4d5-3854-4c84-9da1-00e7449e83b6","html_url":"https://github.com/yuchanns/warpflare","commit_stats":null,"previous_names":["yuchanns/warpflare"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuchanns%2Fwarpflare","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuchanns%2Fwarpflare/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuchanns%2Fwarpflare/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yuchanns%2Fwarpflare/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yuchanns","download_url":"https://codeload.github.com/yuchanns/warpflare/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245802688,"owners_count":20674727,"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":["cloudflare","cloudflare-worker","telegram-bot","warp","warp-plus"],"created_at":"2024-10-23T11:59:44.530Z","updated_at":"2025-03-27T07:31:30.225Z","avatar_url":"https://github.com/yuchanns.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# warpflare\n\n![GitHub License](https://img.shields.io/github/license/yuchanns/warpflare)\n\nKeep your WARP+ traffic topped up with Cloudflare Workers.\n\nThis project is inspired by [WARP-CLASH](https://github.com/vvbbnn00/WARP-Clash-API).\n\n\u003e **Warning**\n\u003e\n\u003e This project is entirely non-commercial and is intended solely for educational\n\u003e and communicative purposes. Please do not use it for illegal activities, as\n\u003e the consequences will be borne by the user.\n\u003e\n\u003e This project is exclusively for advanced users with programming skills and is not recommended for beginners.\n\n## Requirement\n- A Cloudflare account is required.\n\n## Instructions\nTo get started, follow these steps:\n\n1. **Fork** this project by [![Deploy to Cloudflare Workers](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/yuchanns/warpflare).\n2. Add **three** required secrets to `Settings \u003e Security \u003e Secrets and variables \u003e Actions \u003e Repository Secrets \u003e New repository secrets`:\n    - `CLOUDFLARE_ACCOUNT_ID`: Find your account ID using the [instructions here](https://developers.cloudflare.com/fundamentals/setup/find-account-and-zone-ids/).\n    - `CLOUDFLARE_API_TOKEN`: Create this token with the `Edit Cloudflare Workers` template and permission of `D1 Edit` included. See image below for reference:\n        ![api token](https://github.com/yuchanns/warpflare/assets/25029451/89da63d6-6db4-4320-8d63-46b8fd11fe8d)\n    - `SECRET_KEY`: Choose any value for authorizing access to the subscription URL.\n\n3. Go to `Actions \u003e Deploy` and manually run the workflow by clicking `Run workflow`. The firs deploy might be failed, please retry.\n4. Find the route for your worker in your Cloudflare dashboard under `Workers \u0026 Pages`.\n5. Assuming the route is `warp.xxx.workers.dev`, you can access the subscription using:\n    - `https://warp.xxx.workers.dev/sub?token=${SECRET_KEY}\u0026proxyFormat=full\u0026randomName=true\u0026best=true`: detect the subscription type based on user-agent.\n    - `https://warp.xxx.workers.dev/api/:subType?token=${SECRET_KEY}\u0026proxyFormat=full\u0026randomName=true\u0026best=true`: manually specify the subscription type to use.\n\nThe available parameters are shown in the table below:\n\n|Name|Options|Description|\n|---|---|---|\n|subType|clash, quantumult, v2ray, shadowrocket, sing-box|**PR**s are welcome|\n|proxyFormat|only_proxies, with_groups, full|only for clash|\n\nYou can control the worker behavior using the following environment variables (**not** secrets):\n\n|Name|Default|Description|\n|---|---|---|\n|LOSS_THRESHOLD|10|Packet loss rate (percentage)|\n|DELAY_THRESHOLD|500|Delay threshold (ms)|\n|RANDOM_COUNT|The number of nodes|10|\n|GET_DATA_INTERVAL|2|Interval for replenishing `WARP+` traffic (min)|\n|SAVE_ACCOUNT_INTERVAL|10|Interval for dropping accounts (min)|\n|RESET_ACCOUNT_INTERVAL|2880|Interval for resetting accounts (min)|\n\n**Why do I need to reset the account?**\n\nIf you replenish your traffic excessively using an account, Cloudflare will reject your request and\nyou will receive an error 426 which represents that you have sent too many requests.\nSimply proxying your requests will not solve the issue as the limitation is account-specific.\nTherefore, you need to reset your account.\nAfter resetting your account, please refresh your subscription to obtain the updated private key.\n\n## Optimization\n\nEven though default IPs are embedded, you may encounter varying levels of loss and delay based on your location. To enhance your overall experience, it is essential to optimize your IP.\n\nTo get started, clone this project and turn off all the proxies on your local network. Make sure to have a node environment and pnpm installed. Install project dependencies for the first time using `pnpm install`.\n\nNext, navigate to the project path and run the following command:\n\n```bash\npnpm optimize\n```\n\nThis will upload a sql to your worker to obtain optimized IPs. Once the subscription is refreshed, a set of optimized nodes will be distributed.\n\n## Roadmap\n\n- [ ] Telegram bot\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuchanns%2Fwarpflare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyuchanns%2Fwarpflare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyuchanns%2Fwarpflare/lists"}