Multi-Protocol Self-Hosted VPN Server (SoftEther)
Overview
A containerized multi-protocol VPN server built on SoftEther, exposing L2TP/IPsec, OpenVPN, SSTP, and SoftEther’s native protocol from a single Docker Compose deployment, with an optional Tor/privoxy egress path.
Why It Exists
Running a private, self-hosted VPN that speaks several client protocols at once, without standing up and tuning each daemon by hand, is a common networking/security need. SoftEther bundles them, and packaging it as a container makes deployment repeatable.
What We Built
A Docker Compose stack running the siomiz/softethervpn image with NET_ADMIN capability and the full set of VPN ports published (UDP 500/4500/1194, TCP 1701/443/5555/992). Server/hub passwords, the pre-shared key, user accounts, and the server certificate/key are injected via an env file; custom upstream DNS is set on the container. A commented-out Tor + privoxy service shows an anonymizing egress option.
Technologies & Approach
SoftEther VPN for one server covering multiple tunneling protocols; Docker Compose with elevated networking capabilities and explicit port mapping; environment-driven configuration of credentials and certificates for reproducible, parameterized deployment.
Outcome / Impact
A deployable, multi-protocol VPN endpoint from a single Compose file, demonstrating practical VPN and secure-networking infrastructure skills. Archived.
Capabilities Demonstrated
- Deploying multi-protocol VPN servers (L2TP/IPsec, OpenVPN, SSTP, SoftEther)
- Containerizing privileged network services with Docker Compose
- Certificate/credential-driven, reproducible network configuration