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.
To build, three github action workflows are present:
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.
todo))
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.
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-daemonsFrom 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-daemonsElectros has a set of custom command line switches other than the Electron switches:
--enable-devtoolsenables the devtools for the application--synthetic-daemonslaunchessynthetic-daemons/vianpm startinstead of the native client daemons (unpackaged/dev only)--no-daemonsdisables 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 hereIf 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=waylandA 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
When a path to a page is provided, for example, electros://iaas/virtual-machines, that page will be opened.
To open a globally-registered dialog, you can open electros://dialog/dialog-name and that dialog will be opened.
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 |