This desktop app is built with:
- Typescript - Typed superset of JavaScript that compiles to plain JavaScript
- Electron - Build cross-platform desktop apps with JavaScript, HTML, and CSS
- node - Mysterium Node, hereinafter referred to as Node
- node/supervisor - Supervisor: Background service for installing/running Node
- mysterium-vpn-js - JS SDK for communicating with Node
- mobx-react-lite - Simple, scalable state management
Supervisor's job is to start Node when necessary and kill it when its job is done.
Below is a typical communication sequence on a user system where neither Supervisor nor Node is initially running (clean install).
Desktop app communicates to Node's REST API, aka Tequilapi.
The easiest way to do that is to use JS SDK.
Another possible way is to construct HTTP calls by yourself, consulting documentation.
Below is a typical communication sequence between the App and the Node when establishing a VPN connection.
Fork the repository and start hacking!