Outdated version

You are browsing the docs for Nexus v1.7.x, the latest release is available here

Architecture

Technology Overview

Nexus Fusion is a server-side rendered single-page webapp powered by React.js. It is written in Typescript, and therefore must be transpiled into native browser JavaScript, during a build step, before being served.

The build step produces a server artifact to run on a Node.js server, with client-side assets and Javascript.

We produce a docker image that is able to serve the compiled assets directly, which is available on Dockerhub.

Although the application is served by a Node.js server, the client communicates directly to Nexus Delta using Nexus.js.

SubApps

Nexus Fusion is divided into sections called SubApps. SubApps are separate workspaces that attempt to contain the concerns of disparate users and activities, and provide different access rights for each.

At the moment, we are packaging three SubApps called Admin, Search, and Studios. These exist as part of the source code of Nexus Fusion, and live in the src/subapps folder.

You can learn how to develop your own SubApps to extend Fusion here.

Expect the SubApp feature and its functionality will expand and change in the next releases of Nexus Fusion.

Plugins

Plugins are ways to render resources. You can find more about them here. It is important to note that the plugin repository is hosted separately from Nexus Fusion. Nexus Fusion will request a Plugin Manifest from this repository at run-time, and fetch plugins to render during run time based on a config. Both the plugins, the configuration, and the manifest should be hosted somewhere Nexus Fusion can request it.

Customization

You can customize the Header of Nexus Fusion by setting up the following environment variables:

  • LOGO_IMG: Url for an image to be used as application logo in the Header, for example, https://drive.boogle.com/jnsjdnsjs
  • LOGO_LINK: Url for the logo, for example, https://www.epfl.ch
  • If you use Nexus Forge, it is possible to include a Forge templates button by providing the url as FORGE_LINK, for example, https://some-url.hi

The full list of environment variables can be found here.