How to Make a "Share a VM" Project

List of Compatible VM's

This tutorial will guide you through the process of setting up a "Share a VM" project, allowing you to control your virtual machine in a web browser and share it publicly. Please note: This tutorial is specifically for Windows 8 and up.

What you need:

VMware Workstation Pro

VMware Workstation Pro iconVMware Workstation Pro

To run your VM (e.g., Windows 7, 98)

Download
Windows/Linux ISO

Windows/Linux ISO iconWindows or Linux ISO

Operating system image for your VM

Learn how to download in Step 1
Windows PC

Windows PC iconWindows PC

Operating System for host machine

Use a Windows PC
noVNC

noVNC iconnoVNC

HTML5 viewer to control your VM in a browser

Learn to download in Step 4
Websockify

Websockify iconWebsockify

Converts WebSocket to raw VNC

Learn to download in Step 4
Ngrok

Ngrok iconNgrok

Creates a public URL to your local server

Download
Git

Git iconGit

Version control system for downloading noVNC

Download
Python

Python iconPython

Programming language for running Websockify

Download

Steps:

  1. Step 1: Download VMware Workstation Pro iconVMware Workstation Pro & VM ISO iconVM ISO

    Download VMware Workstation Pro iconVMware Workstation Pro at https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion (please note you need to login with your BROADCOM account at https://profile.broadcom.com/web/registration , If you dont want to enter sensitive info thats required, try entering fake info like Funny City or you work at Other ).

    Download your Windows/Linux ISO iconWindows/Linux ISO from a verified source like the Internet Archive.

    Please note: Windows ME and lower needs VMware drivers to make the mouse work.

  2. Step 2: Setup your VM iconVM

    Make a new virtual machine and put in the ISO iconISO, then continue and set up the VM iconVM.

  3. Step 3: Enabling VNC

    Power off the VM iconVM.

    Go to VM > Settings > Options > VNC Connections.

    Check Enable VNC connections and change the port (optional). Do not set up a password.

  4. Step 4: Installing noVNC iconnoVNC and Websockify iconWebsockify

    Make sure you have Git iconGit downloaded. If not, download at https://git-scm.com/.

    Open Git iconGit Bash and type in:

    git clone https://github.com/novnc/noVNC.git
    cd noVNC
    git submodule update --init --recursive
  5. Step 5: Download Python iconPython & Run Websockify iconWebsockify

    Download Python iconPython if not already: https://www.python.org/downloads/.

    In the terminal, type in:

    cd C:\Users\(YOUR USERNAME)\noVNC

    (or where you installed noVNC)

    Then type in:

    websockify 6080 localhost:PORT GOES HERE

    You can also try:

    python -m websockify 6080 localhost:PORT GOES HERE

    And try going to http://localhost:6080/vnc.html and try to see if that works.

  6. Step 6: Install Ngrok iconNgrok & Protect your IP with a VPN

    Go to https://ngrok.com/downloads/windows and don't download from Chocolatey.

    Then extract the files and go to the dashboard: https://dashboard.ngrok.com/. Click "Your token" on the left and copy the authtoken.

    Then open the extracted ngrok.exe iconngrok.exe and type in:

    ngrok authtoken 

    Then:

    ngrok http 6080

    Copy the public URL that looks like abc123!@#.ngrok-free.app.

    Please note: You might encounter a '405 Method Not Allowed' error when opening the Ngrok iconNgrok URL directly in your browser. This is normal and not an issue.

    Since your VM iconVM might be exposed publicly, it's highly recommended to use a VPN to protect your IP address. This will add an extra layer of security and privacy.

    Popular VPN providers include NordVPN, ExpressVPN, and ProtonVPN. Choose a reputable one that suits your needs and budget, and install it on your host machine (not within the virtual machine) before running Ngrok.

  7. Step 7: Fork & Configure Websim Project

    Fork this project https://websim.com/@ChatGPT_Plus_User/share-a-netbook/2 on Websim.

    Then manual edit and change this line in index.html:

    host = readQueryVariable("host", 'INPUT URL HERE!');

    Make sure to paste the Ngrok iconNgrok URL (e.g., abc123!@#.ngrok-free.app) here instead of 'INPUT URL HERE!'.

    Then click save. You have it working!

    Publish the project and you're done!

    Optional: Change the thumbnail and name.

  8. Step 8: Reconnecting Your VM iconVM After Reboot

    1. First, boot up your VM iconVM in VMware Workstation Pro iconVMware Workstation Pro.
    2. Open Command Prompt (CMD) or Git Bash.
    3. Navigate to your noVNC iconnoVNC folder by typing:
      cd LOCATION OF NOVNC FOLDER
      (Replace LOCATION OF NOVNC FOLDER with the actual path, e.g., C:\Users\YOUR_USERNAME\noVNC)
    4. Run Websockify again:
      websockify 6080 localhost:PORT NUMBER GOES HERE
      (Use the same port number you configured for VNC in Step 3.)
    5. Open the Ngrok iconngrok.exe application (from where you extracted it).
    6. In the Ngrok iconNgrok window, type:
      ngrok http 6080
    7. Ngrok iconNgrok will provide a new public URL (e.g., xyz456!@#.ngrok-free.app). Copy this new URL.
    8. Go back to your forked project on Websim, open index.html for manual editing, and update the host line with the new Ngrok iconNgrok URL:
      host = readQueryVariable("host", 'NEW NGROK URL HERE!');
    9. Save the changes on Websim. Your VM iconVM should now be accessible through the updated public URL.
Need Help?

VM Troubleshooting Assistant