Securing your connection to your GPU server is a key consideration for every developer. Ensuring your work is accessible while maintaining security is important as you develop the next big AI thing! Before proceeding make sure also reading 🌍 HTTPS Access (How to access your Blib via SSL) and 🛡️ Trooper.AI customizable Network-Level Firewall.
👮 For optimal security and scalability, do not expose this endpoint directly to public users. Implement a dedicated web server to manage user interactions, which will then communicate with your GPU server. This architecture adheres to best practices and industry standards.
You can install multiple Web Proxy SSL instances on the same GPU Blib. Each instance runs independently and can forward to a different internal service or port.
This template provides a lightweight way for clients to expose an internal service (HTTP or WebSocket) to the public internet through the Trooper.AI router system. It automatically creates a secure HTTPS endpoint with a free SSL certificate, while forwarding traffic to any internal port on the client’s machine.
The goal is simplicity: install a small proxy, specify the internal port, and instantly get a secure, externally reachable URL.
All traffic from the Webproxy’s SSL Endpoint to your machine’s public port is routed in our internal network, completely bypassing the internet. This is a significant security advantage of Trooper.AI.
Your internal service becomes available under a *.secure.trooper.ai subdomain, routed through the Trooper.AI infrastructure with automatic SSL certificates.
The template forwards both standard HTTP traffic and WebSocket connections without additional configuration.
If a username and password are provided, the endpoint is secured with Basic Auth. Leaving both values empty disables authentication.
Each installed instance of SSL Web Proxy creates a dedicated proxy endpoint, listens on an automatically assigned external port, and forwards traffic to the configured internal service.
You only set template configuration before installation.
The external port will be assigned automatically and displayed next to the template name, just like with other templates.
🚨 Do not use port 443 and don’t provide a self sign certificate on your port!
/etc/nginx/sites-available/trooperai-webproxy-<external_port>http://127.0.0.1:<internal_port>.| Traffic type | How it’s detected | Proxy timeout |
|---|---|---|
| Regular HTTP request/response | Anything not matched below | 60s (DEFAULT) |
| Chat/Streaming (SSE / NDJSON) | Path contains /api/chat, /chat/completions, /api/generate, /generate, /stream, /events, or Accept: text/event-stream / application/x-ndjson - AND is streaming! (see below) |
10 min (LONG) |
| Large file downloads | Range header, file-like path/extension, Accept: application/octet-stream |
30 min (DOWNLOAD) |
| WebSockets | HTTP upgrade to WS/WSS | No proxy idle timeout |
The proxy also upgrades timeouts dynamically on the response (e.g., if your server sends
206orContent-Disposition: attachment, it bumps to the DOWNLOAD timeout even if the request wasn’t classified as a download initially).
⚠️ The long timeout on streaming only works if your service streams the response! Slow or non-streaming requests can still be dropped at 60s. So also make sure TTFT is below 60s and data keeps flowing.!
Once active, Trooper.AI’s router detects the exposed port, issues a free SSL certificate, and publishes your secure endpoint.
Given a Trooper.AI-assigned domain such as:
myapp123-husky-delta.secure.trooper.ai
and an automatically assigned external proxy port (e.g., 12345), with an internal service listening on port 8080,
the connection flow will be: https://myapp123-husky-delta.secure.trooper.ai -> 12345 -> 8080.
This securely forwards traffic from the public HTTPS endpoint to your internal service.
We have compiled answers to common questions regarding the webproxy feature. For individual assistance, please contact our support team: Support Contacts.
Ensure your internal service is running on the desired port, then install or update the corresponding Web Proxy SSL instance. Its assigned domain and SSL activation status (indicated by a lock icon) will then be displayed.
WebSocket is simply an HTTP(S) upgrade — fully supported by the WebProxy, enabling seamless integration with widely used AI applications featuring web interfaces.
UDP is a stateless protocol requiring no certificates; you communicate directly via hostname:port instead. Encryption is managed at the application level (e.g., LiveKit using DTLS). Since the WebProxy is HTTP-based and HTTP runs over TCP, it cannot forward UDP — but you don’t need a proxy for UDP anyway. Simply open the required UDP ports in your firewall.
Our SSL WebProxy integrates seamlessly with Trooper.AI’s built-in firewall rules. To restrict access to designated IP addresses or ranges for enhanced security, configure the respective firewall policies in the Management Dashboard.
For detailed guidance on implementing IP restrictions, refer to our documentation:🛡️ Trooper.AI customizable Network-Level Firewall
That’s a valid question. Internally, your service operates as a standard HTTP service on a configurable port, such as 8080. This port remains internal to your server instance. The web proxy service installed via this template handles SSL encryption, automatically provisioning and managing the SSL certificate for secure external access. Essentially, this template establishes a secure HTTPS connection between your internal port and the public internet.
This template installs and configures Nginx to route internal traffic on your GPU server. While it will not override existing configurations, managing Nginx directly on your GPU server is generally not recommended due to potential complexity. Consider whether direct Nginx management is necessary for your workflow.
Multiple Web Proxy SSL instances can run in parallel. Each instance creates its own Nginx configuration based on its assigned external port, so the individual proxy configurations remain separated.
Our Secure SSL Proxy includes infrastructure-level protection to keep the routing layer stable and shield your service from abusive traffic. It continuously monitors connection health and traffic patterns, and temporarily throttles sources that cause repeated failures. So the proxy can tell a genuine outage from normal operation, your service should signal real problems clearly — by rejecting or closing the connection, or returning a 5xx server error when it is genuinely unavailable.
Application-level authentication (e.g. login or API-key checks returning 401/403) is handled by your own service. The proxy intentionally does not block on these, so normal auth flows are never disrupted.
If you encounter an error page while accessing your endpoint, it will display a unique error code (e.g. e-code: TP3) in its headline. Please include this code when contacting support — it helps us pinpoint the cause immediately.
| # | Status | Meaning | What you can do |
|---|---|---|---|
| TP1 | 502 | Generic gateway error while contacting your service. | Verify your internal service is running and reload after a few moments. |
| TP2 | 403 | Request blocked by a firewall rule for your endpoint. | Check your firewall/allow-list settings for the source IP and port. |
| TP3 | 502 | Your internal service could not be reached. | Confirm the service is listening on the configured internal port. |
| TP4 | 503 | Access to your service was temporarily blocked after repeated errors. | Wait a short moment, then reload. Avoid automatic retries on the client side. |
| TP5 | 502 | Connection to your service was refused, not found, or timed out. | Ensure the service is up, reachable, and responding on the correct port. |
💡 Avoid aggressive automatic retries when you see an error page. Repeated failing requests can lead to a temporary block (TP4).