Important Notice: Do not attempt to use this guide for any malicious purposes.
VIP Please Stop: xhj37:
Original Article: https://susu.vn.kg/40/2025
Advantages of this tutorial:
Zero Code: No coding required, no need to go to the black box to type commands.
No Syntax Errors: Using Base64 encoded configuration injection, solves syntax errors caused by punctuation marks.
Pure and Stable: Based on the official teddysun/xray Docker image, no backdoors, 24-hour background operation.
Preparation:
- A registered Koyeb account. [Registration link:]
- A pair of hands (only need to copy and paste).
Step 1: Create a Docker Service
- Log in to the Koyeb console, click the Create Service button in the top right corner.
- Select deployment method (choose Docker, icon is a small whale).
- Docker image (image address):
- Fill in the input box: teddysun/xray
- Instance type (configuration):
- Choose CPU EcO’s Micro (Free), this is permanently free.
- Regions (region):
- Only select Washington, D.C. or Frankfurt (do not select multiple).
Step 2: Inject Core Configuration (most critical step)
Scroll down and find Advanced (advanced) or click Deployment to expand settings. We need to modify the startup entry and startup command.
- Find the Override Entrypoint (override entry point) input box, fill in: /bin/sh
- Find the Override Command (override command) input box, copy and paste the following code:
-c "echo eyJpbmJvdW5kcyI6W3sicG9ydCI6ODAwMCwicHJvdG9jb2wiOiJ2bGVzcyIsInNldHRpbmdzIjp7ImRlY3J5cHRpb24iOiJub25lIiwiY2xpZW50cyI6W3siaWQiOiJkZTI0OWQ2Yi0wMDAwLTExMTEtMjIyMi0zMzMzNDQ0NDU1NTUifV19LCJzdHJlYW1TZXR0aW5ncyI6eyJuZXR3b3JrIjoid3MiLCJ3c1NldHRpbmdzIjp7InBhdGgiOiIvIn19fV0sIm91dGJvdW5kcyI6W3sicHJvdG9jb2wiOiJmcmVlZG9tIn1dfQ== | base64 -d > /etc/xray/config.json && /usr/bin/xray -config /etc/xray/config.json"
- This command will automatically generate a UUID of de249d6b-0000-1111-2222-333344445555 VLESS configuration.
Step 3: Set Port
In the Ports (port) settings area:
- Port: Change to 8000 (not 443, consistent with our configuration).
- Protocol: Select HTTP.
- Public path: Keep default /.
Step 4: Deployment and Verification
- Click the Deploy button at the bottom of the page.
- Wait 1-2 minutes, observe Build Logs.
- When you see Service Status turn green Healthy, and the log shows Xray … started, it means deployment is successful!
- Copy your domain name (e.g. my-site.koyeb.app) without https://
Step 5: Client Connection (must-read avoidance guide)
This is the final step for many crashes. Please strictly follow the parameters below, and any mistake will not connect.
Open your V2RayN / Shadowrocket / NekoBox:
- Address (Address): Your application name.koyeb.app (do not add https://)
- Port (Port): 443 (note! Fill in 443, do not fill 8000)
- Protocol (Protocol): VLESS
- User ID (UUID): de249d6b-0000-1111-2222-333344445555
(This is the one we wrote in the second step command, must fill this) - Transmission protocol (Network): ws (WebSocket)
- Path (Path): /
- Transmission security (TLS): Enable / TLS
- Skip certificate verification: false (recommended to close)
Common Error Warning:
About “Flow Control”
In NekoBox or V2RayN, Flow Control must be left blank! Must be left blank!
Error: Select xtls-rprx-vision (this will cause vision: not a valid supported TLS connection error).
Correct: Leave it blank and don’t select anything.
With this, a permanently free, Docker containerized deployment of VLESS node is set up. It does not require a keep-alive script and is very suitable for use as a backup node.
