Skip to content

A web-based remote browser system that allows users to access websites through a browser running on your server. This helps bypass network restrictions and enhances privacy by isolating the browsing activity from the user's local device.

Notifications You must be signed in to change notification settings

guwenly/isolated-browser

Repository files navigation

Isolated Browser

A web-based remote browser system that allows users to access websites through a browser running on your server. This helps bypass network restrictions and enhances privacy by isolating the browsing activity from the user's local device.

Features

  • Access blocked websites: Requests originate from your server, not the user's network
  • Enhanced privacy: Websites see your server's IP, not the user's
  • No local installation: Works in any modern browser without plugins or software
  • Secure isolation: Browser session runs in an isolated container
  • User-friendly interface: Simple URL bar, navigation controls, and session management

Architecture

The system consists of three main components in a single container:

  1. Browser environment: Google Chrome running with VNC access
  2. Proxy service: Node.js application managing the browser session
  3. Web interface: User-facing UI for interacting with the remote browser

Prerequisites

  • Podman and podman-compose
  • Linux/WSL environment (tested on Fedora WSL)
  • Port 3000 open on your firewall (or configure a different port)

Installation

Using Podman

  1. Make sure you have Podman installed:

    # Fedora/RHEL/CentOS
    sudo dnf install podman -y
    
    # Install podman-compose
    sudo dnf install python3-pip -y
    pip3 install --user podman-compose
    
    # Add pip binaries to your PATH if needed
    export PATH="$HOME/.local/bin:$PATH"
  2. Clone this repository:

    git clone https://github.com/yourusername/isolated-browser.git
    cd isolated-browser
  3. Build and run the container:

    podman-compose -f all-in-one-compose.yml build
    podman-compose -f all-in-one-compose.yml up -d
  4. Access the service at http://localhost:3000

How It Works

The all-in-one container includes:

  • A Node.js-based Express server providing the web interface
  • A virtual X11 display using Xvfb
  • Google Chrome running in incognito mode
  • x11vnc server to capture the screen
  • NoVNC to provide web-based VNC access

When a user opens the service:

  1. They enter a URL in the landing page
  2. The system loads Chrome with the requested URL
  3. The NoVNC interface is displayed, showing the live Chrome session
  4. The user can browse normally with all traffic going through the server

Security Considerations

  • Isolation: The browser runs in a container with limited privileges
  • Privacy mode: Chrome always runs in incognito mode
  • No persistence: Session data is cleared when the container is stopped
  • Input validation: All user input is validated before processing

image

image

Deployment in WSL

If running in Windows Subsystem for Linux (WSL):

  1. Make sure X11 forwarding is set up:

    # Install X server on Windows if needed (VcXsrv or Xming)
    
    # Set DISPLAY in WSL
    export DISPLAY=:0
  2. Forward ports from Windows to WSL:

    # Run in PowerShell as Administrator
    netsh interface portproxy add v4tov4 listenport=3000 listenaddress=0.0.0.0 connectport=3000 connectaddress=(wsl hostname -I)

Customization

You can modify:

  • Session duration: Change the timer in browser.html
  • Browser options: Edit the Chrome flags in the Dockerfile
  • UI appearance: Modify the CSS in browser.html and index.html

Troubleshooting

  • VNC not connecting: Check if port 6080 is accessible
  • Browser not starting: Check container logs with podman-compose -f all-in-one-compose.yml logs
  • Navigation issues: The browser is instructed to open URLs via commands; if navigation fails, check the server logs

License

This project is licensed under the MIT License - see the LICENSE file for details.

Disclaimer

This tool is provided for educational and legitimate use cases only. Please respect website terms of service and local laws when using this system.

About

A web-based remote browser system that allows users to access websites through a browser running on your server. This helps bypass network restrictions and enhances privacy by isolating the browsing activity from the user's local device.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published