Skip to content

Repository files navigation

Electros

Note

If you're trying to run the app on macOS from the .dmg image, the daemons will not start. This is caused by the read-only filesystem of the disk image. You will need to copy it to /Applications or any other filesystem that is readable.

Building

To build, three github action workflows are present:

Build releases

Releases can be built only against main by tagging a commit with vX.X.X. The build will automatically start. To fully release it, mark it as latest manually.

Build beta

todo))

Nightly builds

Every evening at 17:00 (CEST) a build is automatically run against Develop, and will be tagged accordingly to the package.json version, for example, v3.1.5-DDMMYY-HHMM-nightly. You can also manually trigger a nightly build from the Github Actions Nightly workflow. It can only be run against develop.

Synthetic mock daemons (UI development)

To run the UI with HTTP mock servers instead of native client daemons, use --synthetic-daemons so Electros starts synthetic-daemons/ via npm start alongside the GUI. See synthetic-daemons/README.md for ports, fixtures, and verification steps.

cd synthetic-daemons && npm install   # once
cd electros-electron && npm start -- --synthetic-daemons

From the Developer menu you can switch at runtime between Use Native Daemons (CmdOrCtrl+Shift+Alt+N) and Use Synthetic Daemons (CmdOrCtrl+Shift+Alt+S) in unpackaged builds or when --enable-devtools is set.

To run mocks in a separate terminal instead:

cd synthetic-daemons && npm install && npm start
# separate terminal:
cd electros-electron && npm start -- --no-daemons

Command line switches

Electros has a set of custom command line switches other than the Electron switches:

  • --enable-devtools enables the devtools for the application
  • --synthetic-daemons launches synthetic-daemons/ via npm start instead of the native client daemons (unpackaged/dev only)
  • --no-daemons disables the execution of the embedded daemons (use when running synthetic-daemons yourself)

Note

On macOS, to add a CLI switch, you'll have to append them directly onto the executable:

$ /Applications/Electros.app/Contents/MacOS/Electros  # add your CLI switches here

Linux-specific switches

If you're experiencing performance issues on Linux, check what compositor you're using between X11 and Wayland, if you're using Wayland, add the following switch to force Chromium to use the correct compositor and not fall back onto Xwayland:

$ /opt/Electros/electros --ozone-platform=wayland

Protocol

A protocol electros:// is registered and supports three formats defined below. In all cases, parameters can be passed to the page, if supported, by inserting them into the URL as URL Query Parameters. E.g. electros://example/page?uuid=an-uuid&admin=true

Page Path Format

When a path to a page is provided, for example, electros://iaas/virtual-machines, that page will be opened.

Dialog

To open a globally-registered dialog, you can open electros://dialog/dialog-name and that dialog will be opened.

Special Handler

If a given page has a special handler defined, it can be used by providing a path like this:

electros://page/path{specialHandler}?parameter1=loremIpsum

For example, to open a VM's VNC, you can use electros://iaas/virtual-machiens{openVnc}?vmUuid=cfd0d0b0-9538-4043-9e43-3352cf77b8b6

What follows is a table of supported special features by page:

Page Path Special Feature Parameters
iaas/virtual-machines openVnc vmUuid

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages