/share-space

low-latency shared desktop

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

Build Status

This repo

Client app

Demo video

Background and design decisions

To run a Share Space instance, see Share Space Host

Share Space

Make it easy to share a computer remotely with others. Spend less time fiddling with gadgets and more time with people.

Features:

  • Movie-quality (1080p30) remote desktop screen and audio capture
  • Persistent and customizable desktop environment
  • Live video stream supports many simultaneous viewers
  • Pass remote keyboard and mouse control between viewers
  • Low end-to-end latency (1-4 s).
  • Passcode and third-party auth
  • Full VNC access over LAN

TODO

  • Add mouse/keyboard control via noVNC
  • Research discord bot: accept requests for new rooms, start and report status, set up discord auth, command for modifying access list.
  • Add timing information to webm_streaming_chunk
  • refactor webm_streaming_chunk to webm_media_source and attempt to merge upstream
  • Implement third-party (chatbot automated) auth
  • Set up CD to Vagrant hub for the host project
  • Set up CI for the environment: test that stack works and that video streams
  • Set up a deploy configuration with static client files
  • Fix Firefox compatibility
  • Optimize mobile layout
  • Create a new non-admin user to run the GUI
  • Reaserch using video.js for player: Can it be integrated with our websocket transport?

Travis Deployment to Github Pages

Shared Space uses Travis for continuous integration. When the build succeeds, Travis will deploy to Github pages if the GITHUB_TOKEN variable is set in the project's settings. See here for generating a Github token, and see here for adding the token to Travis.