An HTTP/1.1 client, written from scratch for Node.js
docker pull serjs/go-socks5-proxy
docker run -d --name undici -p 1080:1080 --restart always serjs/go-socks5-proxy:latest
podman run -d --name undici -p 1080:1080 --restart always serjs/go-socks5-proxy:latest
skopeo inspect docker://docker.io/serjs/go-socks5-proxy:latest
oras pull serjs/go-socks5-proxy:latest
docker compose up -d
services:
# SOCKS5 proxy without authentication
socks5-no-auth:
image: serjs/go-socks5-proxy:latest
container_name: socks5-no-auth
environment:
- PROXY_PORT=1080
- REQUIRE_AUTH=false
ports:
- "1080:1080"
networks:
- test-network
# SOCKS5 proxy with username/password authentication
socks5-auth:
image: serjs/go-socks5-proxy:latest
container_name: socks5-auth
environment:
- PROXY_USER=testuser
- PROXY_PASSWORD=testpass
- PROXY_PORT=1081
ports:
- "1081:1081"
networks:
- test-network
# Alternative: Dante SOCKS5 server (more configurable)
dante-socks5:
build:
context: ./dante
dockerfile: Dockerfile
container_name: dante-socks5
ports:
- "1082:1080"
networks:
- test-network
volumes:
- ./dante/danted.conf:/etc/danted.conf:ro
# HTTP test server
http-server:
image: node:20-alpine
container_name: http-test-server
working_dir: /app
volumes:
- ../servers/http-server.js:/app/server.js:ro
command: node server.js
ports:
- "8080:8080"
networks:
- test-network
# HTTPS test server
https-server:
image: node:20-alpine
container_name: https-test-server
working_dir: /app
volumes:
- ../servers/https-server.js:/app/server.js:ro
- ../certs:/app/certs:ro
command: node server.js
ports:
- "8443:8443"
networks:
- test-network
# Echo server for testing
echo-server:
image: ealen/echo-server:latest
container_name: echo-server
environment:
- PORT=3000
ports:
- "3000:3000"
networks:
- test-network
# Blocked target (for testing connection failures)
blocked-server:
image: alpine:latest
container_name: blocked-server
command: sleep infinity
networks:
- isolated-network
networks:
test-network:
driver: bridge
isolated-network:
driver: bridge
internal: true