A lightweight Dockerized HTTP/HTTPS + SOCKS5 proxy that forwards traffic through a VLESS + Reality server.
Designed for simplicity: paste your VLESS link into vless.conf, run Docker, and you're done.
- VLESS + Reality client (Xray-core)
- Supports
tcpandxhttptransports - HTTP proxy inbound (works for HTTP and HTTPS via CONNECT)
- SOCKS5 proxy inbound
- Auto-generated and printed
config.json(easy debugging) - Minimal footprint, no host dependencies besides Docker
- Default host ports: 9000 (HTTP/HTTPS) and 1080 (SOCKS5), configurable in
docker-compose.yml
- simple-xray-core — a lightweight and user-friendly script for installing and managing Xray.
You can use it to easily set up your VLESS + Reality server, which works perfectly with VLESS-to-HTTP.
VLESS-to-HTTP/
├── docker-compose.yml # docker compose service
├── Dockerfile # image build (Xray installation)
├── entrypoint.sh # parses vless.conf → generates config.json
└── vless.conf # your VLESS Reality URL (single line)
- Docker & Docker Compose
docker --version docker compose version
Edit vless.conf and paste your full VLESS URL in one line:
TCP example:
vless://UUID@HOST:PORT?security=reality&encryption=none&pbk=PUBLIC_KEY&fp=fingerprint&sni=servername&sid=shortid&spx=/&flow=xtls-rprx-visionXHTTP example:
vless://UUID@HOST:PORT?security=reality&encryption=none&type=xhttp&path=%2Fmy-path&host=example.com&sni=example.com&pbk=PUBLIC_KEY&sid=SHORT_ID&fp=chrome&mode=autoSupported transport query parameters:
type=tcportype=xhttp(tcpis the default if omitted)- For
xhttp,pathis required - For
xhttp,hostandmodeare optional
Example:
vless://49b4b82b-73f0-4772-86ca-ca5059375c63@45.127.127.127:443?security=reality&encryption=none&pbk=6ECfTRNxRBiv7GLIIwOhwlkDs9NyYoZ7lHZrWeU1Q&fp=firefox&sni=github.com&sid=c8aa6a68a476c885&spx=/&flow=xtls-rprx-vision
Tip: keep it on a single line; comments after
#are ignored.
docker compose up -d --buildLogs (shows the generated config and Xray output):
docker logs -f vless-to-httpBy default:
- HTTP/HTTPS proxy: http://127.0.0.1:9000
- SOCKS5 proxy: socks5://127.0.0.1:1080
HTTP proxy (HTTPS target via CONNECT):
curl -x http://127.0.0.1:9000 https://api.ipify.org -m 10 -vExpected: your VLESS server's egress IP.
Test plain HTTP (no TLS):
curl -x http://127.0.0.1:9000 http://neverssl.com -m 10 -vTest SOCKS5:
curl --socks5-hostname 127.0.0.1:1080 https://api.ipify.org -m 10 -v- Edit
vless.confwith your new VLESS URL - Restart:
docker compose down
docker compose up -d --build- Container restarts with code 23
vless.confmissing or has empty/invalid mandatory parameters.
- HTTP returns 503
- Usually your VLESS parameters are incorrect (pbk/sid/sni/flow).
- Container exits with
ERR: empty PATH for xhttp transport- Add
path=...to the VLESS URL whentype=xhttp.
- Add
- TLS errors during CONNECT
- Verify
flow,fp(fingerprint),sni,pbk,sidmatch your server.
- Verify
- View the generated config section in logs between:
===== GENERATED CONFIG =====…============================
MIT