- Domain parked on Cloudflare
- Cloudflare One Account (ZeroTrust)
- Github - Personal Access Token
- Docker Hub Account [optional]
Settings Path : Github Repository > Settings > Secrets and Variables > Actions
DOCKER_HUB_USERNAME
: Use this when you want to create private docker repos
DOCKER_HUB_PASSWORD
: Use this when you want to create private docker repos
PERSONAL_ACCESS_TOKEN
: Use this when you want a private github workflow
PRIVATE_UUID
: Use this when you want a private UUID for VLESS authentication. [optional] | default: 730b6e0c-e463-11ef-a734-b36930036fe6
TUNNEL_TOKEN
: Put your Cloudflared Tunnel Token here to bind it. [required] - GUIDE
-
Go to Cloudflare One
-
Networks > Tunnels > Create Tunnel > Select "Cloudflared" > follow the instructions
-
Copy syntax and take the part of the text
>... run --token eyJhIjoiNDZkYTFhZTYwNDM1ZjFhODk2YjIwNjUwMjA0NGRlNmIiLCJ0IjoiMmQxZDFhODktNjc2Yy00MjQ4LTkwMmUtZjYxZmFjYTg2ZGUwIiwicyI6Ik5tVXdaRFF3TnpJdE5HTmlOaTAwTm1NM0xXRXpaR1F0xxxxxxxxxxxxxxxxxxxxxxxx
- Your tunnel token is
eyJhIjoiNDZkYTFhZTYwNDM1ZjFhODk2YjIwNjUwMjA0NGRlNmIiLCJ0IjoiMmQxZDFhODktNjc2Yy00MjQ4LTkwMmUtZjYxZmFjYTg2ZGUwIiwicyI6Ik5tVXdaRFF3TnpJdE5HTmlOaTAwTm1NM0xXRXpaR1F0xxxxxxxxxxxxxxxxxxxxxxxx
# .env
TUNNEL_TOKEN=<YOUR_TUNNEL_TOKEN> # required
PRIVATE_UUID=<YOUR_PRIVATE_UUID> # optional (default: 730b6e0c-e463-11ef-a734-b36930036fe6)
# docker-compose.yaml
version: "3.2"
services:
cfd:
image: cloudflare/cloudflared:latest
env_file:
- .env
command: tunnel --no-autoupdate run --token ${TUNNEL_TOKEN}
vless:
image: gegedesembri/xray-vless:latest
{
"listen": "0.0.0.0",
"port": "80",
"protocol": "vless",
"tag": "vless-ws",
"settings": {
"decryption": "none",
"clients": [
{
"id": "730b6e0c-e463-11ef-a734-b36930036fe6",
"level": 0,
"alterId": 0,
"email": "vless.ws@xray.docker"
}
]
},
"streamSettings": {
"network": "ws",
"security": "none",
"wsSettings": {
"path": "/vless"
}
}
}
- Fork this Repository to your Github
- Enter some required credentials according to the instructions and requirements listed here.
- Goto tab "Actions" on your repository > VLESS Tunnel > Run workflow
- Your VLESS Tunnel is up and running
- VLESS Link example :
vless://730b6e0c-e463-11ef-a734-b36930036fe6@vless.docker.git:443?path=%2Fvless&security=tls&encryption=none&host=vless.docker.git&fp=randomized&type=ws&sni=vless.docker.git#VLESS+Docker
- VLESS Tunnel will restart every 6 hours due to Github Actions limitation on timeout for each job
- Downtime ±20 seconds occurs every time job session switches
- Can only use Cloudflared as outbound traffic