summaryrefslogtreecommitdiff
path: root/Dockerfile
diff options
context:
space:
mode:
authorsergei <sergei@em-sysadmin.xyz>2026-04-14 06:23:55 +0400
committersergei <sergei@em-sysadmin.xyz>2026-04-14 06:23:55 +0400
commit3d51aa455006903345f554a2dd90034993796114 (patch)
tree62a7be2faf047f5eb7886feebc3b815556f03d7f /Dockerfile
downloadvpnem-3d51aa455006903345f554a2dd90034993796114.tar.gz
vpnem-3d51aa455006903345f554a2dd90034993796114.tar.bz2
vpnem-3d51aa455006903345f554a2dd90034993796114.zip
vpnem: VPN infrastructure with load-balanced multi-protocol nodesHEADmain
- Multi-protocol VPS nodes (VLESS-REALITY + Hysteria2 + SOCKS5) - Smart load balancing via recommendation API - Windows/Linux client (Go + Wails + sing-box) - Server API with RealIP detection and connection tracking - Auto-deployment via vpnui control plane - Silent Windows installer with UAC elevation - Load-based server recommendation (no sticky sessions) - Best Server one-click connection workflow
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile17
1 files changed, 17 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..9aa0a7f
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,17 @@
+FROM golang:1.25-alpine AS builder
+WORKDIR /build
+COPY go.mod ./
+RUN go mod download
+COPY . .
+RUN CGO_ENABLED=0 go build -o vpnem-server ./cmd/server
+
+FROM alpine:3.21
+RUN apk add --no-cache wget ca-certificates openssh-client sshpass
+WORKDIR /opt/vpnem
+COPY --from=builder /build/vpnem-server .
+COPY data/ ./data/
+COPY scripts/update-rulesets.sh ./scripts/
+RUN chmod +x scripts/update-rulesets.sh && mkdir -p data/rules
+
+EXPOSE 8090
+CMD ["./vpnem-server", "-addr", ":8090", "-data", "./data"]