/tailvnc

VNC Client in the browser based on tailscale tsconnect

Primary LanguageTypeScriptBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Introduction

This is very much work in progress

This is a prototype VNC client (based on noVNC) that fully runs in the browser and uses tailscale wasm to connect to the remote computer. The work is based on my PR to tailscale that adds TCP support to the tsconnect package. Even tho the PR links to the vnc branch this uses the working branch. This is because the vnc branch is based on the main develop branch of tailscale which doesn't seem super stable. I backported my changes to a stable tag of tailscale in the working branch.

I am not ascoiated with tailscale in any way.

Getting Started

First make sure to clone the tailscale submodule

git pull --recurse-submodules

Afterwards build the tsconnect package, for this you have to cd into the tailscale folder

cd tailscale
./tool/go run ./cmd/tsconnect build-pkg

Now you can start the server just like any other next.js project

npm install
npm run dev

To change the ip of your vnc server and the password edit the index.tsx file in the pages folder. Once done open the browser and go to localhost:3000 and open your console. There should be a message saying "needsLogin" or something similiar, copy the url into a seperate tab and sign in with your tailscale account. If everything goes as planned you should now see your remote desktop in the browser.