{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"],"fields":{"title":{"boost":1000.0},"text":{"boost":1.0},"tags":{"boost":1000000.0}}},"docs":[{"location":"","title":"BPB Panel","text":""},{"location":"#introduction","title":"Introduction","text":"<p>This project is aimed to provide a user panel to access FREE, SECURE and PRIVATE VLESS, Trojan and Warp configs, It ensures connectivity even when domains or Warp services are blocked by ISPs, offering two deployment options:</p> <ul> <li>Workers deployment</li> <li>Pages deployment</li> </ul> <p>\ud83c\udf1f If you found BPB Panel valuable, Your donations make all the difference \ud83c\udf1f</p> USDT (BEP20)<pre><code>0xbdf15d41C56f861f25b2b11C835bd45dfD5b792F\n</code></pre>"},{"location":"#features","title":"Features","text":"<ol> <li>Free and Private: No costs involved and the server is private.</li> <li>Intuitive Panel: Streamlined for effortless navigation, configuration and use.</li> <li>Versatile Protocols: Provides VLESS, Trojan and Wireguard (Warp) protocols.</li> <li>Private DoH: A ready to use DoH server, capable of customizing underlying DNS server.</li> <li>Warp Pro configs: Optimized Warp for crucial circumstances.</li> <li>Fragment support: Supports Fragment functionality for crucial network situations.</li> <li>Comprehensive Routing Rules: Bypassing Iran/China/Russia, Blocking QUIC, Porn, Ads, Malwares, Phishing and also bypassing sanctions.</li> <li>Chain Proxy: Capable of adding a chain proxy (VLESS, Trojan, Shadowsocks, socks and http) to fix IP.</li> <li>Broad client compatibility: Offers subscription links for Xray, Sing-box and Clash-Mihomo core clients.</li> <li>Password-protected panel: Provides secure and private panel with password protection.</li> <li>Fully customizable: Supports setting up clean IP-domains, Proxy IPs, DNS servers, choosing ports and protocols, Warp endpoints and more.</li> </ol>"},{"location":"#limitations","title":"Limitations","text":"<ol> <li>UDP transport: VLESS and Trojan protocols on workers do not handle UDP properly, so it is disabled by default (affecting features like Telegram video calls), UDP DNS is also unsupported. DoH is enabled by default for enhanced security.</li> <li>Request limit: each worker supports 100K requests per day for VLESS and Trojan, suitable for 2-3 users. You can use limitless Warp configs.</li> </ol>"},{"location":"#getting-started","title":"Getting started","text":"<ul> <li>Installation methods</li> <li>Configuration</li> <li>How to use</li> <li>FAQ</li> </ul>"},{"location":"#supported-clients","title":"Supported Clients","text":"Client Version Fragment support Warp Pro support v2rayNG 1.10.26 or higher MahsaNG 14 or higher v2rayN 7.15.4 or higher v2rayN-PRO 1.9 or higher Sing-box 1.12.0 or higher Streisand 1.6.64 or higher Clash Meta Clash Verge Rev FLClash AmneziaVPN WG Tunnel"},{"location":"#environment-variables","title":"Environment variables","text":"Variable Usage Mandatory UUID VLESS UUID TR_PASS Trojan Password PROXY_IP Proxy IP or domain (VLESS, Trojan) PREFIX NAT64 Prefixes (VLESS, Trojan) SUB_PATH Subscriptions' URI FALLBACK Fallback domain (VLESS, Trojan) DOH_URL Core DOH"},{"location":"#stargazers-over-time","title":"Stargazers Over Time","text":""},{"location":"faq/","title":"Frequently Asked Questions","text":"Why don't v2ray configs connect? <p>If you enabled <code>Routing rules</code> and the VPN doesn't connect, the only reason is that the Geo assets are not updated. In the v2rayN(G) client menu, go to the <code>Asset files</code> section and tap the cloud or download icon to update. Note that it takes a while to update, you have to wait to see <code>success</code> for all files. If the update fails, it won't connect. If you tried everything and it still doesn't update, download the two files below from the links and instead of updating, tap the add button and import these two files: GeoIP<pre><code>https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat\n</code></pre> GeoSite<pre><code>https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat\n</code></pre></p> Why don't Raw subscription configs connect or cannot open websites? <p>To use these configs, disable <code>Mux</code> in the settings of whichever app you\u2019re using. Also set remote DNS to DOH, DoT or TCP: DoH<pre><code>https://8.8.8.8/dns-query\n</code></pre> DoT<pre><code>tls://8.8.8.8  \n</code></pre> TCP<pre><code>tcp://8.8.8.8  \n</code></pre></p> Why configs connect in v2rayNG and not Streisand for example? <p>BPB tries adapting new cores' features ASAP, meanwhile some developers just upgrade cores to the latest version regardless of full features adaption and optimizations. So you should communicate such issues with their own developers.</p> Why Fragment configs speed is slow on my ISP? <p>Each ISP has its own prefered Fragment settings. Most are fine with the panel defaults, but these values may work well on yours. You may need to change Fragment profile to <code>Medium</code>, <code>High</code> or even manually change settings in <code>Custom</code> profile to achieve better results. Also MahsaNG is recommended to connect to fragment configs.</p> I extracted and used a Proxy IP regarding tutorials, why some sites or applications like X still won't work! <p>There are many public IPs and some of them might be unstable. You need to test to find a good one.  </p> It worked when I set a proxy IP, but now it's not working! <p>If you use a single IP, it may stop working after some time and many sites won\u2019t open. You need to redo the steps. Preferably, if you're not doing anything that needs a static IP, just use the panel default and don't use a single proxy IP.  </p> Why do I get an error when I go to the <code>panel/</code> address? <p>Follow the installation guide or use Wizard; KV, UUID or Trojan password are not properly configured.  </p> I deployed it but Cloudflare returns error 1101! <p>Your Cloudflare account has likely been flagged. Create a new Cloudflare account with an official email like Gmail and. Also, make sure the project name doesn't include the word \"bpb\". It is recommended to use Wizard for installation.  </p> Can I use this for trading? <p>If your Cloudflare IP is located in Germany (which it usually is), using a single Germany proxy IP should be fine. But preferably use the Chain Proxy method to stabilize the IP.  </p> Why I can't see non-TLS ports in panel? <p>To use non-TLS configs, you must deploy via Workers method and without a custom domain.  </p> Why doesn\u2019t the Best Fragment config connect or work properly? <p>Turn off <code>Prefer IPv6</code> in settings.  </p> Why don't Telegram calls or Clubhouse work? <p>Cloudflare can't properly handle the UDP traffic. There is currently no effective solution. Use Warp configs instead.  </p> Why won't ChatGPT open? <p>Because the panel's default proxy IPs are public and many might appear suspicious to ChatGPT. Set a single clean Proxy IP regarding instructions or enable the <code>Bypass ChatGPT</code> option in the routing section of the panel.  </p> I forgot the panel password. What should I do? <p>Go to your Cloudflare dashboard, find the KV created for Worker or Pages, click view, go to the KV Pairs section. In the table, you\u2019ll see a <code>pwd</code> key \u2014 the value next to it is your password.  </p> What happens if I don\u2019t change the UUID and Trojan password? <p>From version 2.7.7 onward, setting these two parameters is mandatory and the panel won\u2019t run without them.  </p> I used the Pages upload method but I get a 404. <p>Cloudflare takes about 4\u20135 minutes to register Pages domains. Give it time, refresh, and it should work.  </p> Why doesn\u2019t the panel show the Block Ads checkbox? <p>Extensions like <code>uBlock</code>, <code>AdGuard</code> or even some browsers with built-in ad-block settings, can hide it. Disable them for the panel.</p> Why wizard is detected as Virus in windows? <p>The wizard app lacks <code>Code signing certificate</code> and has to download worker.js on you PC, customize it and deploy to Cloudflare which is a suspicious behaviour to Anti Viruses, known as Trojan/Downloader. So you have to temporarily disable Windows defender or any other Anti Virus program.</p> Why v2rayN cannot ping test configs? <p>Right now v2rayN is experiencing some issues with custom configs and BPB panel configs are all custom. No worries, just enable config and use it. You also have Best Ping config in all subscriptions which connects to best IP automatically, so you don't need to test all configs everytime.</p> Why sing-box throws error while importing subscription? <p>BPB only supports sing-box 1.12.0 or higher</p>"},{"location":"configuration/","title":"Settings Configuration","text":"<p>Tip</p> <p>Please don't worry about incorrect configurations. There's a <code>Reset Settings</code> button next to the <code>Apply Settings</code> button that will reset the panel to default settings.</p> <p>Info</p> <p>You must update your subscriptions after making any changes.</p> <ul> <li> <p> Common</p> <p>Configure shared settings across all protocols and subscriptions.</p> <p> Getting started</p> </li> <li> <p> VLESS - Trojan</p> <p>Configure general VLESS and Trojan settings such as DNS Servers, Clean IPs, Ports, and more.</p> <p> Getting started</p> </li> <li> <p> Fragment</p> <p>Configure Fragment settings to mitigate ISP or regional disruptions.</p> <p> Getting started</p> </li> <li> <p> Warp</p> <p>Common Warp settings for Warp and Warp PRO subscriptions, including Endpoints, Scanner, IPv6, etc.</p> <p> Getting started</p> </li> <li> <p> Warp PRO</p> <p>PRO settings designed to bypass Warp blockage by your ISP.</p> <p> Getting started</p> </li> <li> <p> Routing Rules</p> <p>Add routing rules to bypass local websites, block Ads, block unwanted content, and more.</p> <p> Getting started</p> </li> </ul>"},{"location":"configuration/common/","title":"Common settings","text":"<p>This section provides shared settings between all subscriptions and protocols.</p>"},{"location":"configuration/common/#local-dns","title":"Local DNS","text":"<p>The local DNS is mainly used for routing bypass rules. By default the local DNS server is set to Google DNS.</p> <p>Many DNS servers are available to use as Local DNS in shape of IP, however you can use localhost which uses your ISP DNS server which is fine for routing purposes.</p>"},{"location":"configuration/common/#fake-dns","title":"Fake DNS","text":"<p>You may enable Fake DNS to reduce DNS query latency, but use caution, it may be incompatible with some applications or interfere with system DNS. If you're unsure about its functionality, avoid enabling it.</p>"},{"location":"configuration/common/#anti-sanction-dns","title":"Anti Sanction DNS","text":"<p>This DNS server is used for Sanction Rules explained here. The default DNS server is Shecan (for iranian users). You should check whether it supports your desired domains before setting routing rules.</p> <p>Info</p> <p>DNS server can be in shape of an IP (UDP DNS), TCP DNS, DOT or DoH.</p>"},{"location":"configuration/common/#enabling-ipv6","title":"Enabling IPv6","text":"<p>The panel provides IPv6 VLESS/Trojan configs by default. If your ISP doesn\u2019t support IPv6, disable it to reduce the number of configs and also optimize DNS and routing settings for VLESS, Trojan and Warp configs.</p>"},{"location":"configuration/common/#allow-connections-from-lan","title":"Allow connections from LAN","text":"<p>If you enable this feature, others in you network (for example WiFi network) can use your proxy by knowing your device local IP. They can set a socks proxy on their device, set your local IP as address and these ports based on which client you are using:</p> <ul> <li>v2ray: 10808</li> <li>sing-box: 2080</li> <li>Clash: 7890</li> </ul> <p>Please note that this can be risky to use in office or public networks.</p>"},{"location":"configuration/common/#log-level","title":"Log Level","text":"<p>Specifies the level of client logs. Normally it's \"warning\" which is enough to debug issues, however you may need to change it to submit issues in Github or check your proxy activity.</p>"},{"location":"configuration/fragment/","title":"Fragment settings","text":"<p>Fragment solution almost solves Clean IP issue for Cloudflare CDN by hiding SNI from MitM, however, settings should be obtained based on ISP. Also please note that Fragment can be enabled for sing-box, however sing-box does not use fragment settings and has its own default settings.</p> <p></p> <p>By default settings are:</p> <ul> <li>Length: 100-200</li> <li>Interval: 1-1</li> <li>Packets: tlshello</li> </ul> <p>You can also switch Fragment modes and test based on network situation. Usually default or <code>Low</code> mode should be ok. Please note that by switching to <code>Medium</code>, <code>High</code> or <code>Severe</code> profiles, handshake ping goes higher but it can result in better and more stable connection in high situations. The <code>Best Fragment</code> config is always the best and smart solution, just connect and wait for at least 30 seconds.</p> <p>You can set the parameters based on your ISP's situation.</p> <p>Info</p> <p>Packets have multiple modes. However, <code>tlshello</code> only applies to TLS configurations; ports like 80, 8080, etc., are not affected.</p> <p>Tip for Iranians</p> <p>Currently, fragment performance is significantly more efficient on clients using the Xray Knocker core, specifically MahsaNG and v2rayN PRO clients. This core was developed and customized for conditions in Iran.</p> <p>Tip</p> <p>If you cannot find the optimum fragment settings for your ISP, there is a Best fragment configuration available in the subscription. Simply connect to it and wait a short while; it tests nearly all valid fragment settings and automatically connects to the best one.</p> <p>Note</p> <p>Fragment values have maximum limits. The Length cannot exceed 500, and the Interval cannot exceed 30ms.</p> <p>Warning</p> <p>Max Split feature is recently added to Xray core and is a little bit tricky, so please read Xray documents first before setting any value.</p>"},{"location":"configuration/routing-rules/","title":"Routing Rules","text":""},{"location":"configuration/routing-rules/#predefined-rules","title":"Predefined rules","text":"<p>Using predefined routing rules, you can apply these settings to configs:</p> <ul> <li>Connect directly to Iranian addresses without a proxy (no need to disconnect for visiting some websites, especially payment gateways).</li> <li>Have direct access to Chinese websites.</li> <li>Have direct access to Russian websites.</li> <li>Block Iranian and foreign ads, up to 90 percent.</li> <li>Block Porn content websites.</li> <li>Block QUIC connections (due to network instability).</li> <li>Block Malware (Read warning)</li> <li>Block Phishing (Read warning)</li> <li>Block Cryptominers (Read warning)</li> </ul> <p>Direct access to local addresses like 127.0.0.1 is set by default on configs and there's no need to manually add them.</p> <p>Warning</p> <p>v2ray users should change Geo Assets to Chocolate4U and download assets if they wanna use <code>Malware</code>, <code>Phishing</code> and <code>Cryptominers</code> rules, otherwise configs won't connect.</p> <p>Warning</p> <p>If you enable routing rules and the client does not connect, the primary reason is that the Geo asset is not updated. Go to the Geo assets settings in the v2rayNG menu and click the cloud or download icon to update them. If the update process is unsuccessful, you will not be able to connect. If you have tried everything and it still does not update, download the two files from the links below, and instead of clicking the update button, click the add button and import these two files:</p> GeoIP<pre><code>https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat\n</code></pre> GeoSite<pre><code>https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat\n</code></pre>"},{"location":"configuration/routing-rules/#custom-rules","title":"Custom Rules","text":"<p>There are cases which predefined rules cannot help. For example, if you have blocked porn contents but a specific website was not on the list and is not blocked, you will need to use custom rules.</p> <p>You can use three different formats in this section i.e. Domain, IP and IP/CIDR.</p> <p>Please be aware that if you enter <code>google.com</code>, all of its subdomains will also be blocked or routed directly, such as <code>drive.google.com</code> or <code>mail.google.com</code>. Examples:</p> Domain<pre><code>google.com\n</code></pre> IPv4<pre><code>192.168.1.1\n</code></pre> IPv6<pre><code>2606:4700::6810:85e5\n</code></pre> IPv4 CIDR<pre><code>192.168.1.1/32\n</code></pre> IPv6 CIDR<pre><code>2606:4700::6810:85e5/128\n</code></pre>"},{"location":"configuration/routing-rules/#sanction-rules","title":"Sanction Rules","text":"<p>In case you need some websites to just bypass sanctions and connect directly (without proxy), you can use this section. You can set your desired DNS server in common settings (which should be a transparent proxy also) and choose preset rules or fill in custom addresses. you can even use configs like <code>WorkerLess</code> which do not use any proxy and access sanctioned websites.</p> <p>Info</p> <p>Please be aware that if you enter <code>google.com</code> in custom rules, all of its subdomains will also be routed directly, such as <code>drive.google.com</code> or <code>mail.google.com</code>.</p> <p>Note</p> <p>When these rules are activated, you should make sure the DNS supports domain, for example if you activate <code>Microsoft</code> rule and the DNS does not support it, you will fail to connect to Microsoft domains. Please check DNS catalogue and make sure your target rule or domain is supported.</p>"},{"location":"configuration/vless-trojan/","title":"VLESS and Trojan settings","text":""},{"location":"configuration/vless-trojan/#remote-dns","title":"Remote DNS","text":"<p>By default, the remote DNS is Google DNS over HTTPS (DoH). However, you can use other DoH or DoT servers, except Cloudflare DNS servers:</p> <p>Well known DOH and DOT servers</p> <ul> <li><code>https://dns.google/dns-query</code></li> <li><code>https://dns.adguard-dns.com/dns-query</code></li> <li><code>https://dns.quad9.net/dns-query</code></li> <li><code>tls://dns.google</code></li> </ul>"},{"location":"configuration/vless-trojan/#chain-proxy","title":"Chain Proxy","text":"<p>As noted, a Proxy IP fixes the IP for Cloudflare target addresses, but node IPs may differ for other targets. A Chain Proxy ensures a consistent IP for all targets. You can use a free config here, even if it\u2019s blocked by your ISP, to permanently fix your IP to the Chain Proxy IP.</p>"},{"location":"configuration/vless-trojan/#supported-protocols","title":"Supported protocols","text":"<ul> <li>VLESS</li> <li>VMess</li> <li>Trojan</li> <li>Shadowsocks</li> <li>Socks</li> <li>Http</li> </ul>"},{"location":"configuration/vless-trojan/#supported-transports","title":"Supported Transports","text":"<ul> <li>TCP</li> <li>TCP http header</li> <li>Websocket</li> <li>GRPC</li> <li>Httpupgrade</li> </ul>"},{"location":"configuration/vless-trojan/#supported-tls","title":"Supported TLS","text":"<ul> <li>TLS</li> <li>Reality</li> </ul> <p>Note</p> <p>The Chain Proxy config must not be a worker itself, or the final IP will still change.</p> <p>Info</p> <p>Socks and http configs should have username and password, Xray does not support raw configs.</p> <p>Info</p> <p>Shadowsocks cannot have any transport like websocket, grpc... and cannot have TLS.</p> <p>Warning</p> <p>VLESS, VMess and Trojan configs with <code>randomized</code> ALPN values are incompatible with Clash due to lack of Fingerprint</p> <p>This setting applies to Normal and Fragment subscriptions. After applying, update the subscription. The chained configs will be added alongside original configs using \ud83d\udd17 icon. This way, when Chain Proxy stops working, you still have access to original configs.</p>"},{"location":"configuration/vless-trojan/#clean-ipdomains","title":"Clean IP/Domains","text":"<p>For non-Normal subscription, you may want to use clean IPs. The panel includes a scanner, downloadable as a zip file for your operating system. Run the CloudflareScanner, and results will be saved in <code>result.csv</code>, allowing you to select IPs based on delay and download speed. Windows is recommended for this process, and ensure your VPN is disconnected during the test. For advanced scanning, refer to this guide.</p> <p>Tip for Iranian Users</p> <p>On ISPs supporting IPv6 (e.g., Rightel, Irancell, Asiatech), enable IPv6 on your SIM card, activate the Prefer IPv6 option in client settings, and use the last two or first default configs. IPv6 IPs generally perform better.</p> <p>Tip</p> <p>When using Fragment, Clean IPs do not play a significant role, but some ISPs, like Rightel, may still require them.</p> <p>To add custom configs alongside default ones, enter clean IPs or domains as shown in the section image and click Apply. Updated subscription will import these new configs, which are also added to Best Ping and Best Fragment configs.</p>"},{"location":"configuration/vless-trojan/#protocol-selection","title":"Protocol Selection","text":"<p>Enable either or both VLESS and Trojan protocols.</p>"},{"location":"configuration/vless-trojan/#port-selection","title":"Port Selection","text":"<p>Select the required ports. TLS ports offer more secure configs, but during TLS disruptions or when Fragment underperforms, non-TLS configs can be a viable alternative.</p> <p>Note</p> <p>Non-TLS configs require the panel to be deployed using the Workers method. HTTP ports will not appear in the panel if the Pages method is used or you set a custom domain.</p> <p>Info</p> <p>Non-TLS configs are only added to Normal subscription.</p>"},{"location":"configuration/vless-trojan/#fingerprint","title":"Fingerprint","text":"<p>Here you can select TLS fingerprint, default to randomized.</p>"},{"location":"configuration/vless-trojan/#best-interval","title":"Best Interval","text":"<p>By default, Best configs test every 30 seconds to identify the optimal config or Fragment value. For low-speed networks during activities like video streaming or gaming, this may cause lag. Adjust the interval between 10 and 90 seconds as needed.</p>"},{"location":"configuration/vless-trojan/#tcp-fast-open","title":"TCP Fast Open","text":"<p>If your device supports TCP Fast Open and your ISP does not interfere with TFO, you can enable the feature to enhance your connections. Please note that Linux users have to enable TFO before activating this feature.</p>"},{"location":"configuration/vless-trojan/#ech-encrypted-client-hello","title":"ECH (Encrypted Client Hello)","text":"<p>As you may know there are several techniques to obfuscate connection SNI to bypass firewall. Fragment hides SNI, Custom domain changes SNI and finally ECH can change SNI to Cloudflare default ECH domain. The problem is that Cloudflare uses a default domain named <code>cloudflare-ech.com</code> for all CDN and Worker domains, so the blockage is easy for ISPs. This option will not be activated on <code>Fragment</code> subscription.</p>"},{"location":"configuration/vless-trojan/#ech-server-name","title":"ECH Server Name","text":"<p>If you leave this field empty, the ECH config will be queried from your worker domain. however, if your worker domain is blocked, you can use another domains which have enabled ECH on Cloudflare CDN. To check this, visit here and resolve your desired domain, you should see an <code>ech</code> value in <code>Answer</code> field.</p> <p>Warning</p> <p>Please note that <code>ECH Server Name</code> option is available in Xray for a while, however sing-box supports this feature from 1.13.0 and Clash supports it from v1.19.20. So if your client doesn't meet these versions, please leave it empty.</p>"},{"location":"configuration/vless-trojan/#proxy-ip","title":"Proxy IP","text":""},{"location":"configuration/vless-trojan/#mode","title":"Mode","text":"<p>Starting with version 3.4.2 you can choose to use Proxy IP or NAT64 Prefix for connecting to Cloudflare CDN addresses.</p>"},{"location":"configuration/vless-trojan/#proxy-ips-domains","title":"Proxy IPs / Domains","text":"<p>You can change the Proxy IP via the panel by applying the change and updating the subscription. However, setting the Proxy IP through the Cloudflare dashboard or using wizard is recommended because:</p> <p>Note</p> <p>Changing the Proxy IP via the panel requires updating the subscription if the IP stops working. This can disrupt donated configs, as users without an active subscription cannot update them. Use this method only for personal usage. Other methods don\u2019t require subscription updates.</p> <p>You can check available Proxy IPs by clicking the icon beside this field in panel or visiting <code>/proxy-ip</code> in browser, which lists IPs by region and ISP.</p> <p>Info</p> <p>To use multiple Proxy IPs, fill in them below each other.</p>"},{"location":"configuration/vless-trojan/#nat64-prefixes","title":"NAT64 Prefixes","text":"<p>You can change the Proxy IP mode and fill in NAT64 Prefixes via the panel by applying the changes and updating the subscription. However, setting the NAT64 prefixes through the Cloudflare dashboard or using wizard is recommended because:</p> <p>Note</p> <p>Changing the NAT64 Prefixes via the panel requires updating the subscription if the IP stops working. This can disrupt donated configs, as users without an active subscription cannot update them. Use this method only for personal usage. Other methods don\u2019t require subscription updates.</p> <p>You can find available NAT64 Prefixes in here, which lists IPs by region and ISP.</p> <p>Info</p> <p>To use multiple Prefixes, fill them in below each other.</p>"},{"location":"configuration/vless-trojan/#custom-cdn","title":"Custom CDN","text":"<p>Use a Custom CDN (e.g., Fastly, Gcore) to mask your Worker domain. Configure the following three sections:</p>"},{"location":"configuration/vless-trojan/#addresses","title":"Addresses","text":"<p>These are the IPs or clean IPs specific to the CDN. You must use the CDN\u2019s own IPs, not Cloudflare\u2019s. Enter domains, IPv4, or IPv6 addresses as shown, with IPv6 addresses enclosed in brackets, e.g., <code>[2a04:4e42:200::731]</code>.</p>"},{"location":"configuration/vless-trojan/#host","title":"Host","text":"<p>The host defined in the CDN that points to your Worker, such as a fake domain in Fastly.</p>"},{"location":"configuration/vless-trojan/#sni","title":"SNI","text":"<p>A fake domain or a site on the same CDN, e.g., <code>speedtest.net</code> (without <code>www</code>) for Fastly.</p> <p>After configuring these fields, related configs will be added to Normal subscription, tagged with a <code>C</code> flag to distinguish them.</p> <p>Info</p> <p>Only ports 443 and 80 are supported for these configs.</p>"},{"location":"configuration/warp-pro/","title":"Warp Pro settings","text":"<p>This section applies exclusively to the Warp Pro subscription, as detailed here.  </p> <p></p>"},{"location":"configuration/warp-pro/#definitions","title":"Definitions","text":"<p>Several common terms are used across all implementations of Warp noise (fake packets). Most cores, including Xray, Xray Knocker, and Amnezia, share at least two parameters:</p>"},{"location":"configuration/warp-pro/#mode","title":"Mode","text":"<p>Each Warp noise implementation has a specific mode that determines in which shape noise is sent to the server to obfuscate the connection.</p>"},{"location":"configuration/warp-pro/#count","title":"Count","text":"<p>The number of noise packets sent by the client to the server.</p>"},{"location":"configuration/warp-pro/#size","title":"Size","text":"<p>The size of each noise packet, measured in bytes.</p>"},{"location":"configuration/warp-pro/#delay","title":"Delay","text":"<p>The interval between sending noise packets.</p>"},{"location":"configuration/warp-pro/#mahsang","title":"MahsaNG","text":""},{"location":"configuration/warp-pro/#mahsang-mode","title":"MahsaNG Mode","text":"<ul> <li>none: No noise is applied, equivalent to a standard Warp config.</li> <li>quic: Recommended by developers for conditions in Iran.</li> <li>random: Generates noise randomly.</li> <li>Custom mode: Allows use of a custom HEX string (e.g., <code>fe09ad5600bc...</code>).</li> </ul>"},{"location":"configuration/warp-pro/#clash-and-amnezia","title":"Clash and Amnezia","text":"<p>This section applies to Amnezia, WG Tunnel, and Clash-Mihomo core clients, which share the same settings. You specify the number of noise packets and their minimum and maximum sizes. In the Warp Pro subscription table, you can also download a zip file for Amnezia and WG Tunnel configs, in addition to the subscriptions.</p> <p>These settings are determined experimentally for each ISP through trial and error.</p>"},{"location":"configuration/warp-pro/#v2rayng-and-v2rayn","title":"v2rayNG and v2rayN","text":""},{"location":"configuration/warp-pro/#v2ray-modes","title":"v2ray Modes","text":"<p>Four modes are available for v2rayNG and v2rayN clients: base64, string, hex, and random. In the Noise Count section, you can specify how many noise packets to include in the config. Multiple noises with different types can be added; they do not need to be uniform.</p>"},{"location":"configuration/warp-pro/#noise-packet","title":"Noise Packet","text":"<p>The packet value must correspond to the selected mode:  </p> <ul> <li>Base64: Requires a valid Base64 value.</li> <li>String: Can be any string.</li> <li>Random: Specify the string length.</li> <li>Hex: Requires a Hex string.</li> </ul> <p>Example:</p> Base64<pre><code>NTUyMjU0NjItN2I4MC00YWFmLWE3NDgtNjZiYWZiNjlmNmQ2\n</code></pre> String<pre><code>salamchetori123\n</code></pre> Random<pre><code>10-30\n</code></pre> Hex<pre><code>01d800f9373b2c418713aafde43021004ac3b89f\n</code></pre> <p>Tip</p> <ul> <li>Convert text to Base64 using this tool.</li> <li>Generate a Hex string with this tool.</li> </ul>"},{"location":"configuration/warp-pro/#applies-to","title":"Applies To","text":"<p>Specifies which type of IPs the noise apply to. The default is IP which applies to both IPv4 and v6.</p>"},{"location":"configuration/warp/","title":"Warp General settings","text":"<p>These settings apply to both Warp and Warp Pro subscriptions.  </p> <p></p>"},{"location":"configuration/warp/#remote-dns","title":"Remote DNS","text":"<p>Warp remote DNS can be only of type IPv4 for performance and compatibility. The default DNS is Cloudflare public DNS which is a perfect candidate. It's highly recommended to use Cloudflare DNS servers if you insist on changing it, which have most compatibility and efficiency when used with Cloudflare Warp, like:</p> <ul> <li>1.1.1.2, 1.0.0.2 (Cloudflare security DNS)</li> <li>1.1.1.3, 1.0.0.3 (Cloudflare adult DNS)</li> </ul>"},{"location":"configuration/warp/#endpoints-scanner","title":"Endpoints - Scanner","text":"<p>Endpoints for Warp function similarly to Clean IPs for VLESS and Trojan. The panel provides a scanner that you can run on Termux (Android), Windows, macOS or Linux and input the results here. Note that the results are not 100% reliable, so testing is necessary. Please note that you have to exit any proxy app before testing, if you use v2rayN, you should completely exit it from taskbar, clearing proxy is not enough.</p> <p>Info</p> <ul> <li>Endpoints are formatted as IP:Port or Domain:Port and must be entered one per line.</li> <li>For IPv6 addresses, enclose them in square brackets. See the example below:</li> </ul> <p>IPv4<pre><code>123.45.8.6:1701\n</code></pre> IPv6<pre><code>[2a06:98c1:3120::3]:939\n</code></pre> Domain<pre><code>engage.cloudflareclient:2408\n</code></pre></p>"},{"location":"configuration/warp/#fake-dns","title":"Fake DNS","text":"<p>You can enable Fake DNS for Warp configs to reduce DNS latency. However, use caution, as it may be incompatible with some applications or interfere with system DNS. If you're unsure about its functionality, avoid enabling it.</p>"},{"location":"configuration/warp/#enabling-ipv6","title":"Enabling IPv6","text":"<p>If your ISP does not support IPv6, disable it to optimize DNS and proxy performance.</p>"},{"location":"configuration/warp/#best-interval","title":"Best Interval","text":"<p>Warp and Warp Pro subscriptions include Best Ping configs. By default, these test configs every 30 seconds to identify the optimal config or Endpoint for connection. On slower networks, this interval may cause lag during activities like video streaming or gaming. You can adjust the interval between 10 and 90 seconds.</p>"},{"location":"configuration/warp/#warp-accounts","title":"Warp Accounts","text":"<p>Updating the accounts retrieves new Warp accounts from Cloudflare. This process does not affect connection speed or other settings.</p>"},{"location":"installation/pages-manual/","title":"Pages manual installation (Direct Upload)","text":"<p>It is highly recommended to use Wizard installation to avoid Cloudflare 1101 error, user errors and also save time to setup panel.</p>"},{"location":"installation/pages-manual/#steps","title":"Steps","text":""},{"location":"installation/pages-manual/#1-create-cloudflare-account","title":"1. Create Cloudflare Account","text":"<p>If you don\u2019t have a Cloudflare account, create one from here. You only need an email for registration. Due to Cloudflare\u2019s restrictions, use a reputable email provider like Gmail.</p>"},{"location":"installation/pages-manual/#2-create-pages-project","title":"2. Create Pages Project","text":"<p>Download the Worker zip file from here.</p> <p>In your Cloudflare account, navigate to the <code>Developer Platform</code> section, click <code>Create application</code>, select <code>Pages</code> tab and then <code>Use direct upload</code> &gt; <code>Get started</code>.</p> <p>Enter a <code>Project Name</code>, which will form your panel\u2019s domain.</p> <p>Danger</p> <p>Choose a name that does not include the word <code>bpb</code>, as this may trigger Cloudflare\u2019s detection and result in a <code>1101</code> error.</p> <p>Click <code>Create Project</code> and then Upload the downloaded zip file by clicking <code>Select from computer</code>, selecting <code>Upload zip</code>.</p> <p>Now click <code>Deploy site</code> and then <code>Continue to project</code>.</p> <p>Your project is created but not yet functional. From the <code>Deployment</code> page, in the <code>Production</code> section, click <code>Visit</code>.</p> <p>Warning</p> <p>Cloudflare may take up to 5 minutes to set up the Pages domain. Don\u2019t worry if the URL isn\u2019t immediately accessible.</p> <p>You\u2019ll encounter an error indicating that the UUID and Trojan Password must be set. A link will be provided; open it in your browser and save it for the next step.</p> <p></p>"},{"location":"installation/pages-manual/#3-create-kv","title":"3. Create KV","text":"<p>From the left menu, go to <code>Storage and Databases</code> &gt; <code>KV</code>:</p> <p></p> <p>Click <code>Create</code>, assign a desired name, and click <code>Add</code>.</p> <p>Return to the <code>Workers &amp; Pages</code> section and open your Pages project. Go to the <code>Binding</code> section, as shown below:</p> <p></p> <p>In the <code>Bindings</code> section, click <code>Add</code> and select <code>KV Namespace</code>. Set the <code>Variable name</code> to <code>kv</code> (exactly as shown) and select the KV created earlier for <code>KV namespace</code>. Click <code>Save</code>.</p> <p></p> <p>The KV setup is now complete.</p>"},{"location":"installation/pages-manual/#4-set-uuid-trojan-password-and-subscription-path","title":"4. Set UUID, Trojan password and Subscription path","text":"<p>Click <code>Copy all</code> from the <code>Secrets generator</code> page provided earlier, In Cloudflare dashboard go to <code>Settings</code> section, locate the <code>Variables and Secrets</code> section. Click <code>Add</code> and paste into the <code>Variable name</code> field and click <code>Save</code>. This will automatically add these 3 parameters to panel.</p> <p>Click <code>Create deployment</code> at the top of the page and upload the same zip file again, as done previously.</p> <p>Return to the <code>Deployments</code> page, click <code>Visit</code> in the <code>Production</code> section, append <code>panel/</code> to the URL, and access the panel.</p> <p>Additional configuration and tips are available in the main guide. The installation is complete, and the following advanced settings are optional.</p>"},{"location":"installation/pages-manual/#advanced-configuration-optional","title":"Advanced configuration (Optional)","text":""},{"location":"installation/pages-manual/#fixing-the-proxy-ip","title":"Fixing the Proxy IP","text":"<p>By default, the code uses multiple Proxy IPs randomly, assigning a new random IP for each connection to Cloudflare addresses (covering much of the web). This IP rotation may cause issues, particularly for traders. From version 2.3.5 onward, you can change the Proxy IP via the panel and update the subscription. However, the method below is recommended:</p> <p>Note</p> <p>Changing the Proxy IP via the panel requires updating the subscription if the IP stops working, which can disrupt donated configurations, as users without an active subscription cannot update them. Use this method only for personal use. Other methods don\u2019t require subscription updates.</p> <p>In the project\u2019s <code>Settings</code> section, open <code>Variables and Secrets</code>:</p> <p></p> <p>Click <code>Add</code> and enter <code>PROXY_IP</code> (in capital letters) in the first box. You can check available Proxy IPs by clicking the icon beside <code>Proxy IPs / Domains</code> field in the panel or visiting <code>/proxy-ip</code> in browser, which lists IPs by region and ISP.</p> <p></p> <p>Info</p> <p>To use multiple Proxy IPs, fill them comma-separated. Example<pre><code>151.213.181.145, 5.163.51.41, bpb.yousef.isegaro.com\n</code></pre></p> <p>Enter the IPs in the <code>Value</code> field and click <code>Save</code>. Click <code>Create deployment</code> at the top of the page and upload the zip file again. The changes will take effect.</p>"},{"location":"installation/pages-manual/#fixing-the-nat64-prefixes","title":"Fixing the NAT64 Prefixes","text":"<p>By default, the code uses multiple NAT64 prefixes randomly, assigning a new random prefix for each connection to Cloudflare addresses (covering much of the web). This IP rotation may cause issues, particularly for traders. From version 3.4.2 onward, you can change the prefixes via the panel and update the subscription. However, the method below is recommended:</p> <p>Note</p> <p>Changing the NAT64 prefixes via the panel requires updating the subscription if the IP stops working, which can disrupt donated configurations, as users without an active subscription cannot update them. Use this method only for personal use. Other methods don\u2019t require subscription updates.</p> <p>In the project\u2019s <code>Settings</code> section, open <code>Variables and Secrets</code>, click <code>Add</code> and enter <code>NAT64_PREFIX</code> (in capital letters) in the first box. Obtain IPs from the following link, which lists IPs from various regions and ISPs:</p> <pre><code>https://github.com/bia-pain-bache/BPB-Worker-Panel/blob/main/NAT64Prefixes.md\n</code></pre> <p>Info</p> <p>To use multiple IPs, fill them comma-separated. Example<pre><code>[2602:fc59:b0:64::], [2602:fc59:11:64::]\n</code></pre></p> <p>Enter the IPs in the <code>Value</code> field and click <code>Save</code>. Click <code>Create deployment</code> at the top of the page and upload the zip file again. The changes will take effect.</p>"},{"location":"installation/pages-manual/#setting-fallback-domain","title":"Setting Fallback Domain","text":"<p>By default, accessing the main Pages domain redirects to the Cloudflare speed test site. To change this, follow the same steps as for the Proxy IP, but set the variable name to <code>FALLBACK</code> and provide a domain (without <code>https://</code> or <code>http://</code>) as the value, e.g., <code>www.speedtest.net</code> or <code>npmjs.org</code>.</p>"},{"location":"installation/pages-manual/#changing-the-subscription-path","title":"Changing the Subscription Path","text":"<p>The default subscription link path uses the same UUID as VLESS. For increased privacy, you can change this. Follow the same steps as above, but set the variable name to <code>SUB_PATH</code>. The secrets page or Secrets generator provides a <code>Random Subscription URI path</code> value, which you can use or replace with a custom value (using allowed characters).</p>"},{"location":"installation/pages-manual/#adding-custom-domain","title":"Adding Custom Domain","text":"<p>In your Cloudflare dashboard, navigate to <code>Compute (Workers)</code> &gt; <code>Workers &amp; Pages</code> and select your panel. In the <code>Custom domains</code> tab, click <code>Set up a custom domain</code>. Enter a domain (you must own and have activated it on the same account). For example, if you own <code>bpb.com</code>, you can use the domain itself or a subdomain like <code>xyz.bpb.com</code>. Click <code>Continue</code> and then <code>Activate domain</code>.</p> <p>In your domain zone, add a CNAME DNS Record for <code>xyz.bpb.com</code> pointing to your Pages domain. Cloudflare will connect the Pages to your domain after a short period. You can then access your panel via <code>https://xyz.bpb.com/panel</code> and retrieve new subscriptions.</p>"},{"location":"installation/pages-manual/#updating-the-panel","title":"Updating the Panel","text":"<p>To update your panel, download the new zip file from here. In your Cloudflare account, go to <code>Compute (Workers)</code> &gt; <code>Workers &amp; Pages</code>, select your Pages project, click <code>Create deployment</code>, and upload the new zip file.</p>"},{"location":"installation/wizard/","title":"Workers and Pages installation - Wizard","text":"<p>To simplify the setup process and prevent user mistakes during creation, the BPB Wizard project was launched. It supports both Workers and Pages methods and is highly recommended to use.</p> <p></p>"},{"location":"installation/wizard/#1-cloudflare-account","title":"1. Cloudflare account","text":"<p>To use this method, all you need is a Cloudflare account. You can sign up here, and don\u2019t forget to check your email afterward to verify your account.</p>"},{"location":"installation/wizard/#2-install-bpb-panel","title":"2. Install BPB Panel","text":"<p>Warning</p> <p>If you're connected to a VPN, disconnect it.</p>"},{"location":"installation/wizard/#windows-linux-macos","title":"Windows - Linux - macOS","text":"<p>Based on your operating system, download the ZIP file, unzip it, and run the program.</p>"},{"location":"installation/wizard/#android","title":"Android","text":"<p>Android users who have Termux installed on their phone can install the BPB Panel by just copying this code into Termux:</p> Termux - Linux<pre><code>bash &lt;(curl -fsSL https://raw.githubusercontent.com/bia-pain-bache/BPB-Wizard/main/install.sh)\n</code></pre> <p>Warning</p> <p>Be sure to download and install Termux only from its official source. Installing via Google Play might cause issues.</p> <p>The first question asks whether you want to create a new panel or modify existing panels in the account.</p> <p>Then logs into your Cloudflare account, Asks for your permission, returns to the terminal and asks you a series of questions.</p> <p>If you choose option 1, it will ask a series of configuration questions. You can use the default values or input your own. In the end, it opens the panel for you in your browser \u2014 that\u2019s it.</p> <p>Note</p> <p>For each setting it asks about, it has already generated a secure, personal value for you. You can simply press Enter to accept it and move on to the next question, or input your own values.</p> <p>If you choose option 2, it lists deployed Workers and Pages projects and you can choose which one to modify.</p>"},{"location":"installation/wizard/#updating-panel","title":"Updating Panel","text":"<p>Just run wizard and select option 2 for the first question. It will show you a list of project names in your account \u2014 you can choose any to update or delete.</p>"},{"location":"installation/workers-manual/","title":"Workers manual installation","text":"<p>It is highly recommended to use Wizard installation to avoid Cloudflare 1101 error, user errors and also save time to setup panel.</p>"},{"location":"installation/workers-manual/#installation","title":"Installation","text":""},{"location":"installation/workers-manual/#1-create-cloudflare-account","title":"1. Create Cloudflare Account","text":"<p>If you don\u2019t have a Cloudflare account, create one from here. You only need an email for registration. Due to Cloudflare\u2019s restrictions, use a reputable email provider like Gmail.</p>"},{"location":"installation/workers-manual/#2-create-worker","title":"2. Create worker","text":"<p>First, download the Worker code from from here.</p> <p>In your Cloudflare account, navigate to the <code>Developer Platform</code> tab and click <code>Create application</code>, from <code>Workers</code> tab find <code>Start with Hello World!</code> and <code>Get started</code>.</p> <p>Enter a desired name, which will form your panel\u2019s domain and <code>Deploy</code>.</p> <p>Danger</p> <p>Choose a name that does not include the word <code>bpb</code>, as this may trigger Cloudflare\u2019s detection and result in a <code>1101</code> error.</p> <p>Then click <code>Edit code</code> here. In the left sidebar, delete the <code>worker.js</code> file and upload the new one. If it gives an error, delete the <code>package-lock.json</code> file too. Since the code has become large, copying and pasting on mobile is difficult \u2014 refer to the image below and upload it properly. On mobile, open the side menu, long-press the Explorer, and click <code>Upload...</code>.</p> <p></p> <p>Finally, <code>Deploy</code> the Worker.</p> <p>Tip</p> <p>Note that the panel update process is exactly the same \u2014 you delete the old files, upload the new ones, and deploy. Previous settings remain safe, only the panel gets updated.</p> <p>First, at the top of the dashboard, click <code>Visit</code>. You\u2019ll see an error saying you need to set the UUID and Trojan Password first. It includes a link (Secrets generator) \u2014 open it in your browser and keep it open for the next step.</p> <p></p>"},{"location":"installation/workers-manual/#3-create-kv","title":"3. Create KV","text":"<p>Return to the Worker dashboard and follow these steps:</p> <p></p> <p>From here, go to the <code>KV</code> page:</p> <p></p> <p>In the KV section, click <code>Create</code>, give it a name (e.g., Test), and click <code>Add</code>.</p> <p>Again, go to the <code>Developer Platform</code> section, open the Worker you just created, go to <code>Bindings</code>. Click <code>Add binding</code> and choose <code>KV Namespace</code>. From the dropdown, select the KV you just created (e.g., Test). What\u2019s important is the first field \u2014 it must be set to <code>kv</code>. Then click <code>Deploy</code>.</p> <p></p>"},{"location":"installation/workers-manual/#4-set-uuid-trojan-password-and-subscription-path","title":"4. Set UUID, Trojan password and Subscription path","text":"<p>Click <code>Copy all</code> from the <code>Secrets generator</code> page provided earlier, In Cloudflare dashboard go to <code>Settings</code> section, locate the <code>Variables and Secrets</code> section. Click <code>Add</code> and paste into the <code>Variable name</code> field and click <code>Deploy</code>. This will automatically add these 3 parameters to panel.</p> <p>Again click <code>Visit</code> in your worker dashboard, you see speedtest in browser, just add <code>/panel</code> to the end of address and see your panel:</p> <p>It will ask you to set a new password and log in \u2014 that\u2019s it. Installation is complete; the rest of the information below may not be needed by everyone. For settings tutorials and tips, refer to the main guide.</p>"},{"location":"installation/workers-manual/#advanced-configuration-optional","title":"Advanced configuration (Optional)","text":""},{"location":"installation/workers-manual/#fixing-the-proxy-ip","title":"Fixing the Proxy IP","text":"<p>By default, the code uses multiple Proxy IPs randomly, assigning a new random IP for each connection to Cloudflare addresses (covering much of the web). This IP rotation may cause issues, particularly for traders. From version 2.3.5 onward, you can change the Proxy IP via the panel and update the subscription. However, the method below is recommended:</p> <p>Note</p> <p>Changing the Proxy IP via the panel requires updating the subscription if the IP stops working, which can disrupt donated configurations, as users without an active subscription cannot update them. Use this method only for personal use. Other methods don\u2019t require subscription updates.</p> <p>To change the Proxy IP, go to <code>Workers &amp; Pages</code>, open your Worker, then go to <code>Settings</code> \u2192 <code>Variables and Secrets</code>:</p> <p></p> <p>Click <code>Add</code>, write <code>PROXY_IP</code> (uppercase) as the <code>Variable name</code>. You can check available Proxy IPs by clicking the icon beside <code>Proxy IPs / Domains</code> field in the panel or visiting <code>/proxy-ip</code> in browser, which lists IPs by region and ISP.</p> <p></p> <p>Info</p> <p>To use multiple Proxy IPs, enter them comma-separated. Example<pre><code>151.213.181.145, 5.163.51.41, bpb.yousef.isegaro.com\n</code></pre></p> <p>Enter the IPs in the <code>Value</code> field and click <code>Deploy</code>.</p>"},{"location":"installation/workers-manual/#fixing-the-nat64-prefixes","title":"Fixing the NAT64 Prefixes","text":"<p>By default, the code uses multiple NAT64 prefixes randomly, assigning a new random prefix for each connection to Cloudflare addresses (covering much of the web). This IP rotation may cause issues, particularly for traders. From version 3.4.2 onward, you can change the prefixes via the panel and update the subscription. However, the method below is recommended:</p> <p>Note</p> <p>Changing the NAT64 prefixes via the panel requires updating the subscription if the IP stops working, which can disrupt donated configurations, as users without an active subscription cannot update them. Use this method only for personal use. Other methods don\u2019t require subscription updates.</p> <p>In the project\u2019s <code>Settings</code> section, open <code>Variables and Secrets</code>, click <code>Add</code> and enter <code>NAT64_PREFIX</code> (in capital letters) in the first box. Obtain IPs from the following link, which lists IPs from various regions and ISPs:</p> <pre><code>https://github.com/bia-pain-bache/BPB-Worker-Panel/blob/main/NAT64Prefixes.md\n</code></pre> <p>Info</p> <p>To use multiple IPs, fill them comma-separated. Example<pre><code>[2602:fc59:b0:64::], [2602:fc59:11:64::]\n</code></pre></p> <p>Enter the IPs in the <code>Value</code> field and click <code>Deploy</code>.</p>"},{"location":"installation/workers-manual/#setting-fallback-domain","title":"Setting Fallback Domain","text":"<p>By default, accessing the main Worker domain redirects to the Cloudflare speed test site. To change this, follow the same steps as for the Proxy IP, but set the variable name to <code>FALLBACK</code> and provide a domain (without <code>https://</code> or <code>http://</code>) as the value, e.g., <code>www.speedtest.net</code> or <code>npmjs.org</code>.  </p>"},{"location":"installation/workers-manual/#changing-the-subscription-path","title":"Changing the Subscription Path","text":"<p>The default subscription link path uses the same UUID as VLESS. For increased privacy, you can change this. Follow the same steps as above, but set the variable name to <code>SUB_PATH</code>. The Secrets generator at <code>/secrets</code> provides a <code>Random Subscription URI path</code> value, which you can use or replace with a custom value (using allowed characters).</p>"},{"location":"installation/workers-manual/#adding-custom-domain","title":"Adding Custom Domain","text":"<p>Go to your Cloudflare dashboard, open your Worker from <code>Compute (Workers)</code> &gt; <code>Workers &amp; Pages</code>. Go to <code>Settings</code> and at the top, you\u2019ll see <code>Domains &amp; Routes</code>. Click <code>Add +</code>, then choose <code>Custom domain</code>.</p> <p>Enter a domain (you must own and have activated it on the same account).</p> <p>Suppose your domain is <code>bpb.com</code>. You can enter the main domain or a subdomain, like <code>xyz.bpb.com</code>, then click <code>Add domain</code>.</p> <p>Cloudflare will connect the Worker to your domain (this might take a while \u2014 they say up to 24 hours).</p> <p>Then click <code>Add +</code> again, but this time select <code>Route</code>. Choose your domain from the <code>Zone</code> section, and in the <code>Route</code> section, enter it like this:</p> Route<pre><code>*bpb.com/*\n</code></pre> <p>You can then access your panel via <code>https://xyz.bpb.com/panel</code> and retrieve new subscriptions.</p> <p>Tip</p> <ul> <li>If you connect a domain to the Worker, your traffic becomes probably unlimited.</li> <li>Worker panels support non-TLS ports like 80, 8080, etc. But once you add a custom domain, those ports stop working and won\u2019t be available in the panel.</li> </ul>"},{"location":"installation/workers-manual/#updating-the-panel","title":"Updating the Panel","text":"<p>To update your panel, download the new worker.js file from here. In your Cloudflare account, go to <code>Compute (Workers)</code> &gt; <code>Workers &amp; Pages</code>, select your Worker project, edit it, delete old worker, upload new one and Deploy.</p>"},{"location":"usage/","title":"How to use","text":"<p>First, update your client to the latest version or refer to the table below. These are the tested and verified clients officially supported by the BPB project. You may use other clients at your own risk.</p> Client Version Fragment support Warp Pro support v2rayNG 1.10.11 or higher MahsaNG 14 or higher v2rayN 7.14.6 or higher v2rayN-PRO 1.9 or higher Sing-box 1.12.0 or higher Streisand 1.6.60 or higher Clash Meta Clash Verge Rev FLClash AmneziaVPN WG Tunnel <p>Warp and Warp Pro subscriptions which provide WireGuard configs, need scanning some endpoints first. You can refer to this guide to learn how to scan some endpoints.</p> <ul> <li> <p> Normal</p> <p>Connect to VLESS and Trojan configs with fully bundled configurations, no need to configure manually.</p> <p> Getting started</p> </li> <li> <p> Fragment</p> <p>Connect even if your domain is blocked with fully bundled configurations.</p> <p> Getting started</p> </li> <li> <p> Raw</p> <p>Connect to Raw VLESS and Trojan configs which don't include panel settings.</p> <p> Getting started</p> </li> <li> <p> Warp</p> <p>Connect to Cloudflare Warp servers after scanning some endpoints.</p> <p> Getting started</p> </li> <li> <p> Warp Pro</p> <p>Connect to Cloudflare Warp even if Warp is blocked in your region.</p> <p> Getting started</p> </li> <li> <p> DNS over HTTPS</p> <p>Set DoH in your browser or use in DNS based clients like Intra.</p> <p> Getting started</p> </li> </ul>"},{"location":"usage/doh/","title":"DNS over HTTPS (DoH)","text":"<p>As most of famous public DoH servers are blocked by firewalls, we can use domain fronting to successfully use them. BPB DoH only supports RFC 8484 standard DoH servers which typically are in <code>https://domain/dns-query</code> format. For example Google has two types of DoH <code>https://dns.google/dns-query</code> which is RFC 8484 and <code>https://dns.google/resolve</code> which is JSON API. BPB only supports the first type.</p> <p>To change underlying DoH you can set an environment variable named <code>DOH_URL</code> in worker settings and set your desired DoH.</p> <p>Warning</p> <p>Avoid using BPB DoH for <code>remote DNS</code>, otherwise you will waste your worker requests. It's better be use in browsers or DoH based clients like Intra, Rethink...</p>"},{"location":"usage/fragment/","title":"Fragment subscription","text":"<p>Benefits of Fragment configs</p> <ul> <li>Maintains connectivity even if the Custom Domain or Worker domain is blocked by the ISP.</li> <li>Enhances stability and speed across all ISPs, particularly those experiencing disruptions with Cloudflare.</li> </ul>"},{"location":"usage/fragment/#fragment-for-xray","title":"Fragment for Xray","text":"<p>This applies to clients using the Xray core, such as v2rayNG, MansaNG, and v2rayN PRO. Imported configs are marked with an <code>F</code> flag in their names. This subscription provides the same number of configs as the Normal subscription, enhanced with fragment settings adjustable in the panel, plus Best Fragment and Workerless configs. Any panel setting changes are applied to all configs upon subscription update.</p> What is the Workerless config? <p>The Workerless config unblocks many restricted websites and applications (e.g., YouTube, Twitter, Google Play...) without using a Worker. Note that this config does not change your local IP, so avoid using it for activities requiring security or anonymity. Fragment setting changes apply to this config, except for Chain Proxy.</p> What is the Best Fragment config? <p>The Best Fragment config tests 18 different fragment settings, selecting the fastest based on your ISP\u2019s performance. These modes are designed to cover all primary scenarios, with the config testing all modes every 30s and connecting to the optimal one. Advanced fragment settings are explained here.</p>"},{"location":"usage/fragment/#fragment-for-sing-box","title":"Fragment for sing-box","text":"<p>Starting from version 1.12.0 sing-box core and related clients support fragment, you can use this sub by official sing-box client like husi or v2rayN which has sing-box core embeded.</p>"},{"location":"usage/my-ip/","title":"My IP","text":"<p>After connecting to the proxy, refresh this section and check it to view your IPs. The table displays two rows:</p> <ul> <li>The first row shows your node IP for Cloudflare target addresses. If a Proxy IP is set, this will be your IP for Cloudflare addresses, while other target addresses use a random Cloudflare IP. This allows you to verify if the Proxy IP is functioning.</li> <li>If using Warp configs, both rows should display the same IP.</li> </ul> <p>Warning</p> <p>Disable extensions like <code>uBlock</code> or <code>AdGuard</code>, Otherwise this section won't work properly.</p>"},{"location":"usage/normal/","title":"Normal subscription","text":"<p>This subscription applies all optimal VLESS and Trojan settings, DNS servers, routing rules etc., minimizing user errors. It also includes a Best Ping config.</p> What is the Best Ping config? <p>This config aggregates all panel configs and checks every 30 seconds to identify and connect to the fastest one. If you\u2019ve added Clean IPs, enabled the Trojan protocol, or selected additional ports, these are included in the Best Ping config too. This feature is also available in Fragment and Warp subscriptions.</p> <p>With routing settings applied, this subscription blocks approximately 90% of Iranian and foreign ads, bypasses Iranian, Chinese, and Russian websites (eliminating the need to disable the VPN for payment gateways), bypasses LAN, blocks porn and QUIC protocol, and for Sing-box and Clash subscriptions, effectively blocks phishing and malware content.</p>"},{"location":"usage/raw/","title":"Raw subscription","text":"<p>The Normal subscription is strongly recommended over this subscription, as it automatically applies all panel settings without requiring manual configuration. Note that almost all of panel settings are not applied to this subscription and must be configured manually in the client.</p> <p>Warning</p> <p>Raw configs consume more Worker requests compared to <code>Normal</code> configs and have more worker errors.</p> <p>Warning</p> <p>You must set the remote DNS to a DoH, DoT, or TCP DNS server in your client, otherwise, this subscription\u2019s configs will not work. Examples: DoH<pre><code>https://8.8.8.8/dns-query\n</code></pre> DoT<pre><code>tls://8.8.8.8  \n</code></pre> TCP<pre><code>tcp://8.8.8.8  \n</code></pre></p>"},{"location":"usage/warp-pro/","title":"Warp Pro subscription","text":"<p>Recent advancements by the GFW-Knocker on Xray, Xray itself and Mihomo cores have enabled Warp unblocking, resulting in applications like MahsaNG and v2rayN-PRO. These developments optimize Warp connections for specific conditions in Iran, similar to efforts by the Oblivion team. The Warp Pro subscription has been added to the panel, with customizable settings.</p> <p>Optimal values for each ISP are determined experimentally and may vary over time, like fragment settings. The default values are tested and currently effective; you only need to scan and set clean Endpoints.</p> <p>You can download Warp Pro configs as a zip file for use in the WG Tunnel client. In the client, click <code>+</code> and import the zip file; no additional settings are required for the configs to connect. For Amnezia, the process is similar, but Amnezia does not import zip files correctly. Extract the zip file first, then import each desired config into Amnezia and connect.</p>"},{"location":"usage/warp/","title":"Warp subscriptions","text":"<p>This subscription includes:</p> <ul> <li>A Warp config, with node IPs from your region\u2019s Cloudflare IPs.</li> <li>A Warp on Warp (WoW) config, with node IPs from foreign Cloudflare IPs (primarily Germany).</li> <li>A Warp Best Ping config, connecting to the fastest Warp config.</li> <li>A WoW Best Ping config, connecting to the fastest WoW config.</li> </ul> <p>By default, there is one Warp and one WoW config. Editing the <code>Endpoints</code> in the <code>Warp General</code> settings adds additional Warp and WoW configs based on the specified Endpoints.</p> <p>You can download Warp WireGuard configs as a zip file to import into WireGuard clients. Note that most ISPs normally block Warp, so use this only if your ISP permits WireGuard protocol.</p> <p>For optimal performance, use a scanner to identify Endpoints suitable for your ISP. The scanner script is available in the panel; copy and run it in Termux on Android or Linux terminal. The Normal Warp subscription may perform well on some operators like MTN-Irancell, but for others, use the Warp Pro subscription.</p>"}]}