Skip to content

DhirajBhakta/VT100

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Get an EC2 slash SSH-like experience of logging into a "VM" running an OS of your choice that's running on a mere PC of your friend sitting in his home behind a NAT! Try it now!

Getting Started

npm install -g vt100

"Donate" your PC resources

vt init

...and answer a series of questions regarding how much of CPU, RAM and disk space you're willing to set aside for people to use.

List available resources

vt list

Get a listing of all the available PC resources in the network. Those who "donate" their resources will appear in this listing. Select any one and choose your OS.....and get an interactive terminal!!

Key Features

  • Peer to Peer 💻—💻
  • Pause and resume your instance any time.
  • Live metrics 📈
  • Command history 👣
  • Authentication and Authorization 👥
  • Admin dashboard to track usage and more...
  • Zero-installation web-terminal. Try it now!
  • built-in ngrok-like feature, serve your content from your local PC and get a public URL!

Architecture

vt100's core is built around WebRTC, a peer to peer communication standard that emerged in 2011 to add audio/video streaming capabilities directly into the browser.

The spawned "VM"s are Docker containers running on the Donor's machine. vt100 has very loose coupling with Docker and can swap out Docker for any other backend, say chroot or fakeroot. But then ofcourse, you'd lose the "select your own OS" feature. LXC seems to be a promising near-VM solution. Rootless podman is yet another alternative that we can consider for bake-in solution

Contributing

Project is still in infancy. Open to feature requests and PRs! Checkout the Issues section for interesting feature requests, enhancements and ofcourse...bugs

Credits

Acknowledgements

vt100 is a fork of Robinhood, that won us the first prize in a 4-day long hackathon organised by Setu in Feb 2022. Many thanks to my team members @Dhruv, @Sujan and @Gandharva

Trivia

The original DEC vt100 was the very first terminal that was ANSI X3.64 compliant and featured lots of innovations that we take for granted in this day. Even today, all terminal emulation software are expected to emulate the VT100 and infact the xterm's specification is based off the humble vt100.

README TODO

  • fill in the anchor tags
  • more on architecture

About

Share compute resources of your PC (even from behind a NAT)!

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 93.8%
  • CSS 2.2%
  • JavaScript 1.9%
  • Go 1.4%
  • Shell 0.3%
  • Dockerfile 0.2%
  • Makefile 0.2%