A comprehensive Helm chart for deploying VPN and gateway tools on Kubernetes with automatic SSL certificate management and ingress configuration.
ProxyStack provides a production-ready Kubernetes deployment solution for proxy and VPN services. It includes automatic SSL certificate management, ingress configuration, and scalable deployments for various proxy tools.
- Multi-Component Architecture: Support for multiple proxy and VPN components
- Automatic SSL/TLS: Integrated certificate management with cert-manager
- Ingress Configuration: Flexible ingress setup with path-based routing
- Scalable Deployments: Configurable replica counts for high availability
- Helm-Based: Easy deployment and configuration management
- Production Ready: Includes proper service definitions and resource management
- High-performance proxy server
- Configurable client authentication
- Customizable logging levels
- Internal cluster communication
- Web server and reverse proxy
- Static content serving
- Load balancing capabilities
- Stable and reliable deployment
- Kubernetes cluster (1.19+)
- Helm 3.x
- cert-manager (for SSL certificate management)
- NGINX Ingress Controller
helm repo add proxy-stack https://your-helm-repo-url helm repo update
Copy the example values file and customize it for your environment:
cp proxy-stack/values.yaml.example my-values.yaml
helm install proxy-stack ./proxy-stack -f my-values.yaml
The main configuration options are defined in values.yaml:
certManager: email: "[email protected]" selfSigned: true # Set to false for Let's Encrypt ingress: className: nginx host: "your-domain.com" vpnPath: "/api01" replicas: xray: 1 nginx: 1
xray: listenPort: 10801 logLevel: "debug" client: email: "[email protected]" id: "your-client-id"
Nginx uses the stable image with default configuration. Custom configurations can be added through ConfigMaps.
ProxyStack supports two certificate management modes:
-
Self-Signed Certificates (default):
certManager: selfSigned: true
-
Let's Encrypt Certificates:
certManager: selfSigned: false email: "[email protected]"
Internet
│
▼
┌─────────────┐
│ Ingress │ ← NGINX Ingress Controller
│ Controller │
└─────────────┘
│
├── /api01 → Xray Service
└── / → Nginx Service
- Web Content:
https://your-domain.com/ - VPN/Proxy:
https://your-domain.com/api01
To scale components, update the replica counts in your values file:
replicas: xray: 3 nginx: 2
Then upgrade the deployment:
helm upgrade proxy-stack ./proxy-stack -f my-values.yaml
This project includes Skaffold configuration for local development:
skaffold dev
Custom Docker images can be built using the provided Dockerfiles in the docker/ directory.
- Certificate Issues: Ensure cert-manager is properly installed and configured
- Ingress Not Working: Verify NGINX Ingress Controller is deployed
- Service Connectivity: Check service selectors and port configurations
View component logs:
# Xray logs kubectl logs -l app=xray # Nginx logs kubectl logs -l app=nginx
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
TBDp
For support and questions:
- Create an issue in the GitHub repository
- Contact: [email protected]
- Support for additional proxy tools
- Enhanced monitoring and metrics
- Multi-cluster deployment support
- Advanced load balancing configurations
- Custom authentication mechanisms