webvm/README.md

54 lines
2.8 KiB
Markdown
Raw Normal View History

2022-02-01 13:26:39 +00:00
# WebVM
2022-01-31 20:52:13 +00:00
2022-10-06 12:01:00 +00:00
This repository hosts the source code of for [https://webvm.io](https://webvm.io), a Linux virtual machine that runs in your browser.
2022-01-31 20:52:13 +00:00
2022-10-06 12:19:17 +00:00
<img src="assets/welcome_to_WebVM_slim.png" width="600" height="300">
2022-10-06 12:07:47 +00:00
2022-10-06 12:01:00 +00:00
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.
2022-02-01 13:26:39 +00:00
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.
2022-10-06 12:01:00 +00:00
# How to: general usage
2022-02-01 13:26:39 +00:00
2022-10-06 12:01:00 +00:00
- go to [https://webvm.io](https://webvm.io)
- use the provided terminal environment
- have fun!
2022-10-06 12:01:00 +00:00
# How to: enable networking
- go to [https://webvm.io](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](https://tailscale.com/kb/1103/exit-nodes/) 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!
2022-02-01 13:26:39 +00:00
# Bugs and Issues
2022-10-06 12:07:47 +00:00
Please use [Issues](https://github.com/webvm/issues) to report any bug.
2022-10-06 12:27:22 +00:00
Or come to say hello / share your feedback on [Discord](https://discord.leaningtech.com).
2022-02-01 13:26:39 +00:00
2022-10-06 12:01:00 +00:00
# Browsers support
2022-01-31 20:52:13 +00:00
2022-10-06 12:01:00 +00:00
WebVM and CheerpX are compatible with any browser, both Desktop and Mobile, provided support for [SAB](https://caniuse.com/sharedarraybuffer), [IndexedDB](https://caniuse.com/indexeddb), and the device having enough memory.
2022-01-31 20:52:13 +00:00
2022-10-06 12:27:22 +00:00
# More links
- [Do: WebVM](https://webvm.io)
- [Read: WebVM](https://leaningtech.com/webvm-server-less-x86-virtual-machines-in-the-browser/)
- [Read: WebVM + Tailscale networking](https://leaningtech.com/webvm-virtual-machine-with-networking-via-tailscale/)
- [Learn: WebVM](https://leaningtech.com/webvm)
- [Watch: WebVM at GitNation](https://www.youtube.com/watch?v=VqrbVycTXmw)
2022-10-06 12:01:00 +00:00
# Thanks to...
This project depends on:
- CheerpX, made by [Leaning Technologies](https://leaningtech.com) for the virtualization part
- xterm.js, [https://xtermjs.org/](https://xtermjs.org/), for providing the Web-based terminal emulator
- [Tailscale](https://tailscale.com/) for the networking component
- [lwIP](https://savannah.nongnu.org/projects/lwip/) for the TCP/IP stack, compiled to the Web by [Cheerp](https://github.com/leaningtech/cheerp-meta)
2022-02-01 13:26:39 +00:00
# License
Copyright (c) Leaning Technologies Limited. All rights reserved.