该项目可以让你通过订阅的方式使用Cloudflare WARP+,自动获取流量。This project enables you to use Cloudflare WARP+ through subscription, automatically acquiring traffic.
Go to file
2024-02-27 11:47:55 +08:00
.github/workflows ci: build docker image for arm64 arch 2024-02-25 16:50:41 +08:00
account Fixed the issue where account.json could not be created under specific circumstances. 2023-08-24 01:48:56 +08:00
config fix: Fix the bug where the IP Optimization had no effect. (https://github.com/vvbbnn00/WARP-Clash-API/issues/34) 2024-02-22 23:02:19 +08:00
logs add only proxy and proxy group 2023-11-22 22:23:53 +08:00
models Fixed the issue where account.json could not be created under specific circumstances. 2023-08-24 01:48:56 +08:00
scripts fix: Fix the bug where the IP Optimization had no effect. (https://github.com/vvbbnn00/WARP-Clash-API/issues/34) 2024-02-22 23:02:19 +08:00
services feat: Log error messages when updating LicenseKey fails. 2024-02-27 11:46:08 +08:00
templates feat: Add support for selecting 'proxy & proxy group' and 'only proxy' subscription return formats, passed through URL parameters. Additionally, consider deprecating the original 'only_proxy' interface in the future. 2024-02-23 03:18:58 +08:00
tests feat: Modified the node naming convention to enhance readability. 2024-01-29 22:24:05 +08:00
utils feat: Add scheduled tasks to support regular IP optimization. 2024-02-23 16:55:25 +08:00
.dockerignore fix: fix docker container not work 2024-01-30 19:45:01 +08:00
.gitignore feat: add surge subscrtion 2024-01-28 11:54:22 +08:00
app.py feat: Add scheduled tasks to support regular IP optimization. 2024-02-23 16:55:25 +08:00
config.py feat: Add GET_WARP_DATA_INTERVAL configuration option to support setting the frequency of getting WARP data. 2024-02-27 11:43:49 +08:00
docker-compose.yaml Add index.html, fix some minor bugs, and improve README.md. 2023-08-24 03:07:23 +08:00
Dockerfile chore: Modify the execution order in Dockerfile to speed up image build. 2024-02-23 16:49:51 +08:00
LICENSE Create LICENSE 2023-08-24 03:21:03 +08:00
README_en.md docs: Add documentation for the GET_WARP_DATA_INTERVAL variable. 2024-02-27 11:47:55 +08:00
README.md docs: Add documentation for the GET_WARP_DATA_INTERVAL variable. 2024-02-27 11:47:55 +08:00
requirements.txt chore: update requirements.txt 2024-02-23 02:20:18 +08:00

WARP Clash API

中文 | English

Warning

This project is entirely non-commercial and is intended solely for educational and communicative purposes. Please do not use it for illegal activities, as the consequences will be borne by the user.

🤔 What is This?

This project allows you to use WARP+ through a subscription, supporting clients like Clash, Shadowrocket, etc. The project includes a feature to replenish WARP+ traffic, enabling your WARP+ traffic to be unrestricted (1GB of traffic every 18 seconds). Additionally, it comes with IP optimization. It supports one-click deployment through Docker compose, so you can enjoy your private high-speed WARP+ node without extra hassle!

💡 Key Features

  • 💻 Supports clients such as Clash, Surge, Shadowrocket, etc.
  • 🔑 Supports setting your own LicenseKey.
  • 🌏 Supports IP optimization.
  • 🐋 Supports one-click deployment using Docker compose.
  • 📕 Automatically replenishes WARP+ traffic, requests are proxied, preserving your IP from getting blocked.
  • Randomly selects nodes each subscription update, adding a sense of randomness to your experience.

🚀 Quick Start

1. Install Docker and Docker compose

2. Download the Project

git clone https://github.com/vvbbnn00/WARP-Clash-API.git

3. [Optional] Configure SECRET_KEY

If you plan to deploy this project on the public internet, it's recommended to set up the SECRET_KEY. Create a .env.local file in the project directory and add the following:

SECRET_KEY=your_secret_key

For more information on environment variables, refer to Environment Variables.

4. Build and Run

docker-compose up -d

Visit http://your_IP:21001, enter the SECRET_KEY and PUBLIC_URL (if configured), and you can get the subscription link.

🎉 Congratulations, you're all set!

🌏 Manual IP Optimization

The project includes a pre-optimized list of IPs, but due to the dynamic nature of WARP IPs, there might be cases where IPs become unusable. If you wish to optimize manually, follow these steps:

If you deployed via docker-compose, you can manually execute IP optimization with the following command in the project directory:

docker-compose exec warp-clash python3 app.py optimize

Otherwise, you can execute the following command in the project directory:

python3 app.py optimize

🔧 Environment Variables

Yes, you can configure this project using environment variables. Simply create a .env.local file and add the required environment variables.

Here are the available environment variables:

Variable Name Default Description
DELAY_THRESHOLD 500 Delay threshold; IPs exceeding this threshold will be removed.
DO_GET_WARP_DATA True Whether to get WARP+ data. If set to False, the WARP+ data will not be obtained.
GET_WARP_DATA_INTERVAL 18 Time interval for obtaining WARP+ data, in seconds. WARP+ data will be obtained every this interval, it is not recommended to set the interval too short.
LOSS_THRESHOLD 10 Packet loss threshold; IPs exceeding this threshold will be removed.
PROXY_POOL_URL https://getproxy.bzpl.tech/get/ IP proxy pool address, used to get WARP+ traffic. You can build it yourself, check proxy_pool for more information.
PUBLIC_URL None When deployed on the public network, fill in the public IP or domain name to generate subscription links. for example https://subs.zeabur.app
RANDOM_COUNT 10 Number of randomly selected nodes during each subscription update.
REOPTIMIZE_INTERVAL -1 Re-optimization interval in seconds, if less than or equal to 0, re-optimization will not occur, otherwise it will re-optimize every this interval, it is not recommended to set the interval too short.
REQUEST_RATE_LIMIT 0 Limits requests to once every X seconds. This feature is unstable; it's recommended not to enable it.
SECRET_KEY None Used to protect the subscription link. If not configured, no SECRET_KEY input is required to get the link.
SHARE_SUBSCRIPTION False If you want to share subscriptions with the community but doesn't want your account information to be publicly accessible or modified, you can set this to True. In this case, accessing the subscription link does not require entering the SECRET_KEY, but for other operations, the SECRET_KEY is still required.

🧰 Advanced Operations

Resetting the PublicKey and PrivateKey of an Account

The project supports resetting the PublicKey and PrivateKey by requesting the following interface:

curl -X POST http://host:port/api/account/reset_key

After resetting, it is necessary to re-acquire the subscription content; otherwise, it may not be usable.

Setting Your Own LicenseKey

If you already have a WARP+ LicenseKey, you can set it through the following interface:

curl -X POST http://host:port/api/account/update_license -H "Content-Type: application/json" -d "{\"license_key\": \"your_license_key\"}"

Please note that when you set the LicenseKey, your PublicKey and PrivateKey will be reset, and you will need to re-acquire the subscription content.

🗂️ Attribution

This project's development was influenced by the following projects. Thanks to the authors of these open-source projects:

👥 The Instance deployed by Community

A free WARP Clash API instance deployed by community.