Deskreen Deskreen

Deskreen

Deskreen

Deskreen turns any device with a web browser into a secondary screen for your computer

Deskreen is an electron.js based application that uses WebRTC to make a live stream of your desktop to a web browser on any device. It is built on top of Electron React Boilerplate For better security mechanism, end-to-end encryption is implemented, which is inspired by darkwire.io. The difference is that it is rewritten in Typescript and transformed to use node-forge instead of window.crypto.subtle. Why this was made? Because a client served with http without SSL, which makes window.crypto.subtle unavailable.

Deskreen FAQ

Get Started for translators

Want to add a new language support for Deskreen? Or you found a typo in existing translations of Deskreen App or website? Here are step by step guides:

Deskreen Github Discussion Threads

Read and Respect our Contributor Covenant Code of Conduct When Writing in our Discussion Threads.

Announcements Channel in Discussions

Some progress and updates on Deskreen can be found here.

Installing with binaries

Windows

  • Get the .msi or .exe file from Releases

Mac

  • Get the .dmg file from Releases
  • Or get from Homebrew: brew install --cask deskreen

Linux

  • Debian and Ubuntu based distributions (deb)
  • Enterprise Linux based distributions (rpm)
  • Arch Linux AUR Package
  • AppImage for other distributions

Get Started for Developers

Run yarn test-all locally to make sure you don’t have any errors, before submitting your PR

Prerequisites

You will need to have node npm and yarn installed globally on your machine.

  1. git clone this repo
  2. cd app/client; yarn install --frozen-lockfile ; cd ../../ ; yarn install --frozen-lockfile
  3. yarn dev — run in dev mode with live updates

Useful yarn commands

yarn start — run in production mode to test, without packaging yarn package — to package an app and make executables available in release folder

for more yarn commands look at package.json

How to run tests

yarn test — run all unit tests yarn build-ux && yarn test-ux — run User Experience tests (no tests for app/client yet)

TODO: add e2e tests with host + client app interaction

run tests of host app

yarn test-watch-not-silent — run tests in watch mode with console logs only for host app, excluding app/client yarn test -- -u — update snapshots

run tests for app/client

yarn test — run client tests in watch mode test:nowatch — run client tests a single time yarn test -- -u — update snapshots

Generate test coverage results

Terminal window
yarn coverage` -- when run from project root, generates a coverage report for `host` and `app/client

How to regenerate snapshots if you have tests failing when running yarn test?

in root ./ folder of project run this:

Terminal window
yarn jest --updateSnapshot

in Deskreen Viewer ./app/client folder of project run this:

Terminal window
cd app/client
SKIP_PREFLIGHT_CHECK=true yarn test:nowatch -- -u

Documentation

High level architecture design

high-level-design

WebRTC Screen Sharing Session Initiation Step by Step

sharng-session-init

Benchmarks:

Benchmarks can be found here

Website:

https://deskreen.com


← Back to projects