Nebula is a system of software deployment that simplifies the packaging and distribution of cross-platform applications built with Node.js, HTML, and WebSockets. Nebula is implemented with two components: the viewer, which provides the graphical interface, and the engine, which provides the backend services. For information on how to configure and develop the browser-based elements of a Nebula app such as its navigation and UI, see the Nebula Developer Guide.
The viewer is implemented using Electron with Node.js for the runtime, and Chromium for the rendering. The code that serves the HTML is done using AngularJS. Electron Packager and Electron Builder are used to build the final application executables. The engine is implemented using Common Lisp, with SBCL as the primary implementation.
Installers and binary packages for Linux, Windows, and macOS systems are available under Releases.
This section describes the procedures for building the viewer on Linux, Windows, and macOS systems. In order to run the viewer, key dependencies such as Node.js must first be installed.
On Ubuntu systems, install Node.js and friends with:
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
On Fedora systems, install Node.js and friends with:
curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
On Arch Linux, install Node.js and friends with:
sudo pacman -S nodejs npm
On Windows systems, download and run the installer from https://nodejs.org/en/download/.
On macOS systems, download and run the installer from https://nodejs.org/en/download/.
The minimum required versions for Node.js and npm are 8.10.0
and 3.5.2
, respectively. If they are met, switch to the nebula directory with:
cd nebula
Then, run the following command to install the required dependencies:
npm install
When all the dependencies have been installed, check to see that the application can indeed run with:
npm start
To create the bundled applications for Linux, Windows, and macOS systems, respectively, run:
electron-packager . --platform=linux --out=out --icon=assets/icons/icon.png --prune=true
electron-builder --linux --prepackaged out/nebula-linux-x64
electron-packager . --platform=win32 --out=out --icon=assets/icons/icon.ico --prune=true
electron-builder --windows --prepackaged out/nebula-win32-x64
electron-packager . --platform=darwin --out=out --icon=assets/icons/icon.icns --prune=true
electron-builder --macos --prepackaged out/nebula-darwin-x64
The commands will create Nebula executables under the respective out/
subdirectories, which contain the application and its local resources and dependencies.
The documentation for building the engine are available at the Streams page.
To be able to run the Linux and macOS binaries, a set of required runtime dependencies must first be installed. On Ubuntu, you may install them with:
sudo apt-get install -y libx11-xcb1 libgtk-3-0 libnss3 libxss1 libasound2 libssl1.1
To run the app, navigate to the out/nebula-linux-x64
subdirectory mentioned in the last section, then run the Mimix Nebula
binary:
cd out/nebula-linux-x64
./Mimix\ Nebula
To run the app, navigate to the out/nebula-win32-x64
subdirectory mentioned in the last section, then run the Mimix Nebula
binary either by double-clicking Mimix Nebula.exe
or by navigating in the command line with:
cd out/nebula-win32-x64
"Mimix Nebula"
To run the app, navigate to the out/nebula-darwin-x64
subdirectory mentioned in the last section, then run the Mimix Nebula
binary either by double-clicking Mimix Nebula.app
or by navigating in the command line with:
cd out/nebula-darwin-x64
open Mimix\ Nebula.app
Testing the Single Page Application during development is done with local-web-server. To use it, install lws as a global dependency and run it with an index.html file:
npm i -g local-web-server
cd app
ws -s index.html