This is a guide to running the Infinity One desktop app from a source tree, in order to contribute to developing it.
To build and run the app from source, you'll need the following:
- Git
- Node.js >= v6.9.0
- Python (v2.7.x recommended)
- A C++ compiler compatible with C++11
- Development headers for the libXext, libXtst, and libxkbfile libraries
On a system running Debian, Ubuntu, or another Debian-based Linux distribution, you can install all dependencies through the package manager (see here for more on the first command):
$ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
$ sudo apt install git nodejs python build-essential libxext-dev libxtst-dev libxkbfile-dev libgconf-2-4You will need the following dependencies installed:
sudo dnf install g++ libXtst-devel libpng-devel$ sudo dnf install snapd
$ sudo ln -s /var/lib/snapd/snap /snap
$ sudo snap install snapcraft --classicOther developers run the app on Windows, macOS, and possibly other OSes. PRs to add specific instructions to this doc are welcome!
On Windows, your C++ compiler should be Visual Studio 2015 or later.
Clone the source locally:
$ git clone https://github.com/infinityoneframework/infinityone-electron
$ cd infinityone-electronInstall project dependencies:
$ yarnStart the app:
$ yarn vue-cli-service electron:serveIf you have any problems running the app, see the most common issues.
Note: You will need a GitHub personal access token for this step. To get one, go to https://github.com/settings/tokens and click Generate new token.
In order for Electron Builder to upload a release to GitHub, you will need to make your token available by setting the GH_TOKEN env variable to your token:
On Linux/MacOS:
export GH_TOKEN=TOKEN-GOES-HERE
On Windows:
set GH_TOKEN=TOKEN-GOES-HERE
Now that you have configured everything, tell electron-builder to upload your app to GitHub by running electron:build with the -p always argument:
With Yarn:
yarn electron:build -p always
or with NPM:
npm run electron:build -- -p always
This command will produce distributable packages or installers for the operating system you're running on:
- on Windows, a Windows installer file
- on macOS, a
.dmgfile - on Linux, a plain
.zipfile as well as a.debfile and anAppImagefile. To generate all three types, you will need all three operating systems.
The output files appear in the dist/ directory.