Self-Host Web Apps with Private VPN Cloud & PrivateRouter - Complete Guide

Last updated: September 11, 2025
Table of Contents

🏠 About Self-Hosting with Private VPN Cloud

TorGuard's Private VPN Cloud combined with PrivateRouter OpenWRT enables you to self-host web applications securely from your home network. Using Docker containers and Nginx Proxy Manager, you can run services like file sharing, media servers, and more with professional SSL certificates and custom domains.

Why Self-Host?

Self-hosting gives you complete control over your data, privacy, and services. With Private VPN Cloud, your applications are accessible worldwide through secure VPN tunnels while keeping your home IP address private.

Benefits of Self-Hosting

🔐

Data Privacy

Your data stays on your hardware

💰

Cost Savings

No monthly cloud hosting fees

🌐

Global Access

Access from anywhere securely

🛡️

Hidden IP

Your home IP stays private

📈

Unlimited Storage

Limited only by your hardware

Full Control

Customize everything

System Architecture

🏗️ How It Works

Self-Hosting Architecture Diagram

Traffic flows: Internet → VPN Cloud → PrivateRouter → Nginx Proxy Manager → Docker Apps

Prerequisites

📋 What You'll Need

  • ✅ Active TorGuard Private VPN Cloud subscription
  • PrivateRouter OpenWRT router
  • ✅ A domain name (for SSL certificates)
  • ✅ Basic networking knowledge
  • ✅ Home internet connection with stable upload speed

⚠️ Important Note

This guide requires a PrivateRouter device with Docker support. Standard routers won't work for this setup.

Step 1: Access VPN Cloud Management

1

Login to Member Area

Access your TorGuard account and navigate to VPN Cloud:

  1. Login to TorGuard member area
  2. Search for your Private VPN Cloud service
  3. Click Manage to open the dropdown
  4. Select Manage VPN Cloud
VPN Cloud Management Access

Step 2: Add Your PrivateRouter Device

2

Create Device Configuration

Add your PrivateRouter to the VPN Cloud:

Click the Add Device button in the VPN Configuration table:

Add Device Button

Step 3: Configure Device Settings

3

Device Configuration

Fill in the device details:

Device Name: Choose an identifiable name (e.g., "Home-PrivateRouter")
Private Key: Leave empty (auto-generated)
Public Key: Leave empty (auto-generated)
Gateway: Select "Default Gateway"

Click "Add" to create your device:

Device Configuration Form

Step 4: Download & Configure WireGuard

4

Get WireGuard Configuration

Download your WireGuard config file:

  1. Click "Download Config" link
  2. Open the file with a text editor (Notepad, TextEdit)
  3. Keep this window open for the next step
Download Config

Configure PrivateRouter WireGuard:

  1. Access your PrivateRouter at http://192.168.0.1
  2. Click the VPN tab
  3. Select TorGuard WireGuard
  4. Copy values from config file to matching fields
  5. Click Save/Apply
  6. Click Start WireGuard
WireGuard Configuration

✅ Verify Connection

Open a new browser tab and check your IP at https://torguard.net/whats-my-ip.php - it should show your VPN Cloud IP.

Step 5: Configure Port Forwarding

5

Set Up VPN Port Forwarding

Forward ports from VPN Cloud to your router for web access:

External Port Internal Port Protocol Purpose
80 8080 TCP HTTP Traffic
443 4443 TCP HTTPS/SSL Traffic

Add these rules in your VPN Cloud dashboard:

Port Forward Rules

Example of adding a port forward rule:

Add Port Forward

Step 6: Install Nginx Proxy Manager

6

Set Up Nginx Proxy Manager

💡 Pre-installed Routers

If you ordered a pre-configured PrivateRouter, Nginx may already be installed. Skip to accessing it at http://192.168.0.1:81

Installation Steps:

  1. Login to PrivateRouter admin panel
  2. Navigate to System → Custom Commands
  3. Find "Nginx Proxy Manager"
  4. Click RUN button
Install Nginx

Wait for installation to complete (you'll see Docker output):

Installation Complete

Step 7: Access Nginx Proxy Manager

7

Login to Nginx Interface

Access the Nginx Proxy Manager:

  1. Go to Docker → Containers
  2. Click the port link for Nginx Proxy Manager
  3. Default URL: http://192.168.0.1:81
Docker Containers

Default Login Credentials:

Username: [email protected]
Password: changeme
Nginx Login

Change the default password when prompted:

Change Password

Step 8: Add Your First Proxy Host

8

Configure Domain Proxy

Set up your first web application:

  1. Click Hosts → Proxy Hosts
  2. Click Add Proxy Host
Proxy Hosts
Add Proxy Host

Step 9: Configure Proxy Settings

9

Domain & SSL Configuration

⚠️ DNS Setup Required

Before proceeding, ensure your domain's A record points to your VPN Cloud IP address!

Details Tab:

  • Domain Names: Your subdomain (e.g., files.yourdomain.com)
  • Scheme: https
  • Forward Hostname/IP: 192.168.0.1
  • Forward Port: Your app's port (e.g., 8984)
  • Websockets Support: Enable for most apps
Proxy Configuration

SSL Tab:

  1. Select "Request a new SSL Certificate with Let's Encrypt"
  2. Enable "Force SSL"
  3. Enter your email for certificate notifications
  4. Agree to Let's Encrypt terms
  5. Click Save
SSL Configuration

✅ Success!

Your app should now be accessible at your domain with SSL encryption!

Popular Self-Hosted Applications

🚀 What Can You Host?

📁

Nextcloud

File storage & sync

🎬

Jellyfin

Media server

📷

PhotoPrism

Photo management

🏠

Home Assistant

Smart home

📝

Vaultwarden

Password manager

💬

Element

Chat server

📊

Grafana

Monitoring

🎮

Game Servers

Minecraft, etc.

Nginx Proxy Manager Features

🛠️ What Nginx Provides

🔐 Free SSL certificates via Let's Encrypt
🔄 Automatic certificate renewal
🌐 Multiple domain management
📊 Access logs and statistics
🛡️ Access control lists
WebSocket support

DNS Configuration

🌐 Setting Up Your Domain

You need to point your domain to your VPN Cloud IP:

Option 1: Single Subdomain

Create an A record: app.yourdomain.com → VPN_CLOUD_IP

Option 2: Wildcard (Recommended)

Create an A record: *.yourdomain.com → VPN_CLOUD_IP

This allows unlimited subdomains without additional DNS changes

💡 DNS Propagation

DNS changes can take 5-30 minutes to propagate. Use DNS Checker to verify.

Security Considerations

⚠️ Important Security Notes

  • Strong Passwords: Use unique, complex passwords for all services
  • 2FA: Enable two-factor authentication where possible
  • Updates: Keep Docker containers and router firmware updated
  • Backups: Regular backups of your data and configurations
  • Access Logs: Monitor Nginx logs for suspicious activity
  • Firewall: Only open necessary ports
  • SSL Only: Always force SSL for all services

Troubleshooting

🔧 Common Issues & Solutions

Domain Not Resolving

  • Check DNS A record
  • Wait for propagation
  • Verify VPN Cloud IP
  • Test with nslookup

SSL Certificate Failed

  • Ensure port 80 is open
  • Check domain DNS
  • Verify email address
  • Try HTTP validation

502 Bad Gateway

  • Check app is running
  • Verify internal IP/port
  • Check Docker status
  • Review Nginx logs

Slow Performance

  • Check upload bandwidth
  • Monitor CPU usage
  • Optimize Docker settings
  • Enable caching

Connection Timeout

  • Verify WireGuard active
  • Check port forwards
  • Test VPN connectivity
  • Review firewall rules

WebSocket Errors

  • Enable WebSocket support
  • Check proxy headers
  • Update Nginx config
  • Verify app compatibility

Best Practices

✅ Self-Hosting Tips

  • Start Small: Begin with one app and expand gradually
  • Documentation: Document your setup and configurations
  • Monitoring: Set up uptime monitoring for critical services
  • Resource Planning: Monitor router CPU/RAM usage
  • Bandwidth: Ensure adequate upload speed for your needs
  • Testing: Test from external networks regularly
  • Automation: Use Docker Compose for complex setups
  • Community: Join self-hosting communities for tips

Need Help?

Self-hosting can be complex. If you need assistance:

Contact Support

Our team can help with VPN Cloud and PrivateRouter configuration

Was this article helpful?

Share:

Ready to Get Help?

Our support team is available 24/7 to assist you with any questions.