NOTE pre v1 this is considered beta quality
Desktop is an open source application for managing multi-window, cross-platform desktop applications; providing deployment, configuration, notifications, logging, monitoring...
Desktop builds on the Electron Framework as well as many other open source packages including expressjs, winston and yargs. The aim is to reuse proven design practices from production systems.
- Secure by default
- Extensible
- Maximise developer productivity
- Use battle tested libraries
- Multi-process
- Cross platform
- Secure sandbox
- Built for developers
- Simple standardised configuration
- Window Layouts
- Notifications
- Cross application messaging
See Documentation.
To install a prebuilt desktop run:
npm install @reactivemarkets/desktop -g
Desktop takes one or many configuration files or urls. See Configuration for more details.
To start the application with 2 windows, from urls, run:
desktop --url=https://google.com --url=https://startpage.com/
To add another window run:
desktop --url=https://duckduckgo.com/
Desktop comes with a full command line interface to create configuration and start the application.
For a full list of commands see the built in help:
desktop --help
Applications are defined via configuration files, it is recommended to define your application in YAML. This is easier to read, maintain and allows you to group objects into a single file.
The command line interface allows you to create a basic configuration file in the current working directory:
desktop init --name "My Application" --url https://localhost/
To run that config file specifiy the --file
flag:
desktop --file application.yaml
Configuration can be loaded locally or from a url:
desktop -f https://raw.githubusercontent.com/desktop-examples/config/main/examples/single-window.yaml
To install all dependencies and build run:
Note: To be able to build for all platforms you will need to install some dependencies. On mac: brew install mono fakeroot dpkg wine
git clone https://github.com/reactivemarkets/desktop.git
cd desktop
npm ci
npm run build