Deploy your own WireGuard VPN infrastructure with Docker. Connect securely from anywhere using our simple CLI client. No subscriptions, no third parties, complete control.
A modern, self-hosted VPN solution built on WireGuard protocol
Built on the modern WireGuard protocol - faster, simpler, and more secure than OpenVPN or IPSec.
Deploy with a single docker-compose command. Spin up multiple server locations in minutes.
Intuitive command-line client. Connect, disconnect, and switch servers with simple commands.
WireGuard keys generated locally. Your private key never leaves your device.
Deploy VPN servers in multiple locations. Users can choose and switch between them.
Temporary 24-hour sessions with automatic cleanup. No persistent device configs on server.
Built-in Nginx load balancer for API traffic. VPN traffic goes direct to servers.
Your server, your rules. No third-party logging or tracking. Complete privacy.
Get your VPN infrastructure running in minutes
Single docker-compose file
Perfect for testing and small deployments. Includes VPN servers, database, and load balancer in one file.
Independent deployments
Best for production. Deploy servers in multiple locations independently with automatic load balancer updates.
Requires Go 1.23+ and WireGuard tools
Download from releases page (Linux, macOS, Windows)
Available on Docker Hub, includes all dependencies
Build the server image:
Push to Docker Hub or private registry:
Supports multi-platform builds (AMD64, ARM64) using buildx
Build client image:
Push to registry:
Create executable binary from image for easy distribution
Public registry, free for open-source. Visit hub.docker.com to create account and push images.
Private or public registries. Push directly from GitHub Actions CI/CD pipeline.
Self-hosted registry (Docker Registry, Nexus, Harbor) for complete control and privacy.
Attach prebuilt binaries to GitHub Releases for direct download without Docker.
bit-vpn authLogin or register
bit-vpn serversList VPN locations
bit-vpn connectConnect to VPN
bit-vpn disconnectDisconnect VPN
bit-vpn statusCheck connection
Session-based VPN with client-side key generation
Authentication and session management routed through Nginx load balancer
WireGuard UDP packets go directly to the selected server endpoint
24-hour sessions with max 5 concurrent per user, auto-cleanup on expiry