Skip to content

Comprehensive Guide to Setup and Auto-Deploy VLESS Proxy Config

Step-by-step tutorial for forking, configuring security secrets, and running GitHub Actions


ZiZifn Main Page



The zizifn project is a secure proxy configuration based on the VLESS-WS-TLS/TCP protocol, developed with Rust and WebAssembly (Wasm) architecture, and deployed on Cloudflare Workers using the Wrangler tool. To implement this project on your personal account, follow the steps below carefully.

Error 1101 and 1102

In this new structure, there is no need to add meaningless codes or heavy obfuscation!


📚 Table of Contents


Step 1: Fork the Repository

In the first step, you need to clone a copy of this project to your GitHub account.

  1. Go to the main repository page (Link)

  2. Click the Fork icon (red arrow) at the top of the page.

View Screenshot

How to fork the project on GitHub


  1. On the next page, you can set a custom name for your fork; otherwise, click the Create fork button to transfer the project to your account.
View Screenshot

How to fork the project on GitHub


Step 2: Obtain API Token from Cloudflare

For automated deployment, GitHub Actions needs to connect to your Cloudflare account. We need two essential factors:

  • CloudFlare Account ID
  • CloudFlare API Token

Note

Previously, to get the Account ID, we had to go to the Workers & Pages section and copy it from the bottom of the page. But now, when creating the token, the Account ID is also displayed, so we copy it from there.


Create Token with Worker Edit Permissions

  1. Log in to your Cloudflare dashboard.
Click to view.

Note

Recently, Cloudflare doesn't allow creating accounts with fake emails. You can create one, but it won't be verified. Even if you try ten, thirty, or fifty times through the verification email they send, it will keep asking you to verify. So we recommend using G-Mail, Outlook, hotmail, protonmail, and similar reputable services to create a Cloudflare account.


  1. After logging into your Cloudflare account, open the left menu from the top of the page, type api in the Quick search box, and then select Account API Tokens from the search results.
View Screenshot

Search for API token


Select account API tokens


  1. Click the Create Token button.
View Screenshot

Click on Create token


  1. Among the ready-made templates (red arrow), click on the Edit Cloudflare Workers option.
View Screenshot

Change token template


Select edit worker template


  1. In the Token Expiration section, set a time frame for your token expiration according to your needs, then click on the view and create token option.
View Screenshot

Token expiration time

Note

Please note that after the token expires, your worker will not stop functioning. However, you will no longer be able to redeploy the project through GitHub. In that case, you will need to create a new token and replace the old one in your GitHub repository settings.


  1. On this page, copy the generated token (this token is displayed only once, so save it somewhere if needed). Also, the Account ID is displayed at the top of this page. Copy it as well since you'll need it. After confirming you've copied both, click the confirm button to close the window.
View Screenshot

Copy Cloudflare ID and token


Step 3: Configure Secrets in GitHub

Now we need to introduce the obtained information to your forked repository on GitHub so that the action can authenticate with your Cloudflare account.

  1. In your forked repository, go to the Settings tab.
View Screenshot

Go to repo settings


  1. From the menu, click on Secrets and variables and then select Actions from the submenu.
View Screenshot

Select Actions


  1. Click the New repository secret button and define the variables according to the table below:

Secret nameStatusDefault valueDescription
CLOUDFLARE_API_TOKEN✔️ Required-Your Cloudflare token with permission to edit workers.
CLOUDFLARE_ACCOUNT_ID✔️ Required-Your Cloudflare account ID.
UUID⚙️ Optionalbe0ff9df-1468-41a0-8865-796d1c6800dbYour custom UUID (version 4).
PROXYIP⚙️ Optionaldi.nscl.irProxy IP for routing traffic to services behind Cloudflare.

View Screenshot

Create secret 1


Create secret 2


Final secret creation


Important Note

Both of the first variables (Cloudflare ID and token) are required, meaning without obtaining and setting them in GitHub secrets, deploying the worker won't be possible. However, the next two variables, UUID and PROXYIP, are optional because default values are set in the code for both. However, it is highly recommended to copy a custom ID from (this site) and use it instead of the default ID.

View Screenshot

Get UUID

For other Proxy IPs, you can use this Proxy Repository.


Step 4: Enable and Run GitHub Action

GitHub by default disables running actions on forked repositories. You need to enable it once and then run it.

  1. Go to the Actions tab at the top of your repository.

  2. Click the green button

"I understand my workflows, go ahead and enable them"

to allow actions to run.

View Screenshot

Enable action


  1. According to the screenshot below, first click on All workflows from the left side, then select the Deploy Worker workflow.
View Screenshot

Select Deploy


  1. On the right side of the page, a narrow bar with the Run workflow button will appear. Click on it.

  2. In the pop-up form that opens, you can optionally set new Proxy IP or UUID values exceptionally for this specific run. (If left empty, the secrets or system defaults will be used. It's recommended to put both in the secrets.)

View Screenshot

RUN


  1. Finally, click the green Run workflow button inside the form.
    After thirty to sixty seconds, a green checkmark will appear next to Deploy, indicating the process was successful.
View Screenshot

Deploy-success


Important Note for One-Time Variables

Values entered in the Run workflow pop-up form are completely one-time use and won't be saved in the repository settings. This feature is useful for quickly testing different Proxy IPs or changing the UUID temporarily.


How It Works

After clicking the Run workflow button, GitHub starts a cloud server, downloads and installs the Rust compiler (cargo) and wasm-pack tool, compiles the code, and then automatically creates a new Worker named zr-wasm in your Cloudflare account.

If you wish to change the Worker name, you can do so from the first line of the wrangler.toml file in the repository.

View Screenshot

worker name


How to Use

Access the Admin Panel

After deployment, simply add your UUID to the end of your Worker URL:

https://Your-Worker-URL/Your-UUID

For example:

https://0x00.workers.dev/be0ff9df-1468-41a0-8865-796d1c6800db

If you haven't set the UUID variable and the code default is used, the value is:

reg
be0ff9df-1468-41a0-8865-796d1c6800db

Your subscription link contains dozens of configs with clean Cloudflare IPs. Use the keys inside the panel to get it automatically.

Or if you need the subscription address manually to use in other clients, simply long-touch (press and hold) on one of the Import to ... buttons. The browser will then ask for permission to copy the link (only once, forever). After confirming the permission request by clicking Allow, the subscription link for that specific client will be copied for you.

View Screenshot

Copy Subscription link


Sample subscription link:

https://0x00.workers.dev/xray/be0ff9df-1468-41a0-8865-796d1c68000b

https://0x00.workers.dev/sb/be0ff9df-1468-41a0-8865-796d1c68000b


Difference between xray and sb

· xray path:

Suitable for clients that use the Xray core, such as: v2rayNG, MahsaNG, Hiddify, Nekoray, v2rayN, Streisand, Napsternet, NPVT, Happ, and etc.


· sb path:

Suitable for clients that use the SingBox core, such as: Nekobox, Exclave, Singbox, Husi, Karing, and etc.


· Clean Cloudflare IP

The IPs in the configs are sourced from the clean IP repository NiREvil/vless. IP update cycle: every 4 hours.


Enhanced Configs

Recently, patterns have been suggested to address disruptions on Iran's internet and the upload speed weakness in configs built with Cloudflare Workers by adding two parameters to configs:

· Final Mask · Cypher suites

Additionally, to further optimize config performance, they have published a fork of v2rayNG called PattNG on GitHub. Therefore, alongside normal configs for v2rayNG, we will have another subscription called Enhanced, which will add configs with these new parameters pre-applied to your client. First, download and install the PattNG client from the patterniha GitHub repository, then from your panel, click on Import to v2rayNG and select Enhanced.

PattNG GitHub Link


PattNG


INFO

Deployment Engine

· GitHub Actions workflow runner (Ubuntu-24.04 VM) · Cloudflare Wrangler Action v3 · Many thanks to NiREvil and zizifn


Security Warning

Click to view important security notes

Never define sensitive Cloudflare tokens in manual input text fields!

Values entered manually in the form are stored in GitHub's log history and will be visible to everyone if your repository is public. Sensitive Cloudflare secrets must be registered through the path mentioned in Step 3 (Repository Secrets section) so that GitHub encrypts them.

Made with using VitePress