Release tags vey-proxy-v* publish these images to GHCR. Tags and digests are listed on the GitHub Packages page.
| Tag | Dockerfile |
|---|---|
ghcr.io/vey-oss/vey-proxy:<version> |
debian.Dockerfile |
ghcr.io/vey-oss/vey-proxy:<version>-debian |
debian.Dockerfile |
ghcr.io/vey-oss/vey-proxy:<version>-alpine |
alpine.Dockerfile |
Debian is the default tag. Each published tag is a manifest list for linux/amd64 and linux/arm64. The Alpine image is smaller, vendors BoringSSL, and links c-ares from the base image. The Debian image also contains vey-proxy-ftp. lua.alpine.Dockerfile is not published by CI; build it locally when you need vey-proxy-lua.
The image starts vey-proxy -c /etc/vey-proxy/ -G default -v with config/main.yaml:
- HTTP proxy on
0.0.0.0:8080 - SOCKS5 proxy on
0.0.0.0:1080 - direct egress through the container resolver (
/etc/resolv.conf) - IPv4 only, because many container networks have no working IPv6 route
- task and escape logs on stdout
There is no authentication and no egress filter. Treat this as a starting point. Do not publish 8080 or 1080 onto an untrusted network until you add a user group.
The control socket is /tmp/vey/default.sock.
docker run --rm -d --name vey-proxy \
-p 8080:8080 -p 1080:1080 \
ghcr.io/vey-oss/vey-proxy:<version>
curl -x http://127.0.0.1:8080 https://example.com/
curl --socks5-hostname 127.0.0.1:1080 https://example.com/Pass extra arguments after the image name to replace CMD. The entrypoint remains vey-proxy.
docker run --rm ghcr.io/vey-oss/vey-proxy:<version> -VMount a directory that contains main.yaml (or vey-proxy.yaml) over /etc/vey-proxy. Paths inside the config are resolved from that directory.
docker run --rm -d --name vey-proxy \
-p 8080:8080 \
-v "$PWD/conf:/etc/vey-proxy:ro" \
ghcr.io/vey-oss/vey-proxy:<version>Check the config without staying up:
docker run --rm -v "$PWD/conf:/etc/vey-proxy:ro" \
ghcr.io/vey-oss/vey-proxy:<version> -t -c /etc/vey-proxy/To send metrics to a vey-statsd container on the same Docker network, add this to main.yaml:
stat:
target_udp:
address: "@vey-statsd:8125"A bare host:port string is accepted only as a literal IP address. The @ prefix resolves the name once, when the config is loaded, and the name must return exactly one address.
docker exec vey-proxy vey-proxy-ctl -G default version
docker exec vey-proxy vey-proxy-ctl -G default reload
docker exec vey-proxy vey-proxy-ctl -G default offline-G must match the daemon group. The default command uses default.
Run from the repository root:
docker build -f vey-proxy/docker/debian.Dockerfile . -t vey-proxy:local
docker build -f vey-proxy/docker/alpine.Dockerfile . -t vey-proxy:local-alpine
docker build -f vey-proxy/docker/lua.alpine.Dockerfile . -t vey-proxy:local-lua