Sen descrición

Yuri Iozzelli 6ea07e9a65 Use CX_VERSION variable for cx.js in tinycore.html %!s(int64=2) %!d(string=hai) anos
assets 3f3035d581 README: Add image %!s(int64=2) %!d(string=hai) anos
examples 512332d439 Initial commit %!s(int64=3) %!d(string=hai) anos
tun 4287f26af7 update tun/ %!s(int64=2) %!d(string=hai) anos
xterm 0a1d4a8602 Remove xterm's SourceMap warnings %!s(int64=2) %!d(string=hai) anos
README.md e8e26c8386 Allow to use an auth key and to change control URL (e.g. use headscale) %!s(int64=2) %!d(string=hai) anos
favicon.ico a925d0ae89 New favicon: red tower on black background %!s(int64=2) %!d(string=hai) anos
index.html c8cbb9a58c Put the network logic in its own js file %!s(int64=2) %!d(string=hai) anos
login.html 0d37154516 Revert "Experimental function calling across tabs" %!s(int64=2) %!d(string=hai) anos
network.js e8e26c8386 Allow to use an auth key and to change control URL (e.g. use headscale) %!s(int64=2) %!d(string=hai) anos
nginx.conf 512332d439 Initial commit %!s(int64=3) %!d(string=hai) anos
scrollbar.css e71bbc97a5 Scrollbar %!s(int64=2) %!d(string=hai) anos
tinycore.html 6ea07e9a65 Use CX_VERSION variable for cx.js in tinycore.html %!s(int64=2) %!d(string=hai) anos
tower.ico 9977f694c8 Move favicon to red tower on black background %!s(int64=2) %!d(string=hai) anos

README.md

WebVM

This repository hosts the source code of for https://webvm.io, a Linux virtual machine that runs in your browser.

WebVM is a server-less virtual environment running fully client-side in HTML5/WebAssembly. It's designed to be Linux ABI-compatible. It runs an unmodified Debian distribution including many native development toolchains.

WebVM is powered by the CheerpX virtualization engine, and enables safe, sandboxed client-side execution of x86 binaries on any browser. CheerpX includes an x86-to-WebAssembly JIT compiler, a virtual block-based file system, and a Linux syscall emulator.

How to: general usage

How to: enable networking

  • go to https://webvm.io
  • click "Tailscale Login" in the top right corner
  • log in to Tailscale (create an accout if you don't have one)
  • if you want to access the public internet, you need an Exit Node. See here for how to set one up. If you just want to access a machine in your Tailscale Network, you don't need it
  • depending on your network speed, you may need to wait a few moments for the Tailscale Wasm module to be downloaded
  • log in with your Tailscale credentials
  • go back to the WebVM tab. You will see your IP address in the top right
  • start firing network requests!

How to: login to Tailscale with an Auth key

  • Add #authKey=<your-key> at the end of the URL
  • Done. You don't need to manually log in anymore

It is recommended to use an ephemeral key.

How to: login to a self-hosted Tailscale network (Headscale)

  • Add #controlUrl=<your-control-url> at the end of the URL
  • You can combine this option with authKey with a &: #controlUrl=<url>&authKey=<key>

Bugs and Issues

Please use Issues to report any bug. Or come to say hello / share your feedback on Discord.

Browsers support

WebVM and CheerpX are compatible with any browser, both Desktop and Mobile, provided support for SAB, IndexedDB, and the device having enough memory.

More links

Thanks to...

This project depends on:

License

Copyright (c) Leaning Technologies Limited. All rights reserved.