Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
120 commits
Select commit Hold shift + click to select a range
2c88541
Updated Electros GUI to v3.0.5
C4lopsitta Nov 7, 2025
6f35354
Updated Electros GUI to v3.0.5
C4lopsitta Nov 7, 2025
06646c4
Updated Electros GUI to v3.0.6
C4lopsitta Nov 13, 2025
726fb48
Updated Electros GUI to v3.0.7
C4lopsitta Nov 14, 2025
f8f9c94
update egn
fvalle1 Nov 14, 2025
726194f
update 3.1.0
fvalle1 Nov 14, 2025
b9eb42c
Updated Electros GUI to v3.1.1
C4lopsitta Nov 17, 2025
c024be6
Updated Electros GUI to v3.1.2
C4lopsitta Nov 18, 2025
0e72a0b
added files
Nov 18, 2025
b53b03f
nginx routes
Nov 18, 2025
5325457
stream test | spoiler doesn't work
Nov 18, 2025
6fb4a12
revert to normal config - use beta daemons
Nov 18, 2025
b56e749
remove logs
Nov 18, 2025
955b88e
nginx reverse proxy to daemons ports
Nov 18, 2025
daedec5
edited nginx (server works - frontend give CORS error)
Nov 19, 2025
f26f051
Initial nginx config for daemons
C4lopsitta Nov 20, 2025
5d6fc02
Updated elemento-gui-new
C4lopsitta Nov 20, 2025
c2bd3ab
Modified configuration for NGinx
C4lopsitta Nov 20, 2025
3ce247e
Merge remote-tracking branch 'origin/dev-docker-instance' into dev-do…
C4lopsitta Nov 20, 2025
bd62800
Fixed duplicate entry in nginx config
C4lopsitta Nov 20, 2025
fa2206c
Added startup and dockerfile for arm64 environments
C4lopsitta Nov 20, 2025
f7bf5d9
trigger action
Nov 20, 2025
41dc251
deleting unused file
Nov 20, 2025
5b29ffa
Updated Nginx config to allow networks and targets
C4lopsitta Nov 20, 2025
f1525dc
Merge remote-tracking branch 'origin/dev-docker-instance' into dev-do…
C4lopsitta Nov 20, 2025
a4877ef
Updated GUI for Docker system
C4lopsitta Nov 20, 2025
cc80f0a
Updated GUI for Docker system
C4lopsitta Nov 20, 2025
cd0f450
Updated GUI for Docker system
C4lopsitta Nov 20, 2025
912b7d3
Updated GUI for Docker system to have new splashscreen
C4lopsitta Nov 20, 2025
b67280b
Updated logo in info settings for GUI
C4lopsitta Nov 20, 2025
bf16e15
Updated Electros GUI to v3.1.3
C4lopsitta Nov 20, 2025
deb83a0
Updated Electros GUI to v3.1.3
C4lopsitta Nov 20, 2025
f7ad493
Deleted old gui folder
Nov 26, 2025
01eabad
Added License and Author(s)
Nov 26, 2025
0307518
Fixed SSH Implementation for Electros
C4lopsitta Nov 27, 2025
ab910e7
Merge pull request #99 from Elemento-Modular-Cloud/fix-remote-windows
C4lopsitta Nov 27, 2025
d4ccbed
Updated GUI to v3.1.5 for beta test build
C4lopsitta Dec 1, 2025
41587a6
fix: update gitignore
filippo-ferrando Dec 2, 2025
ab41b38
Merge branch 'develop' into dev-docker-instance
filippo-ferrando Dec 9, 2025
d2b6256
chore: changed base branch for docker image build
filippo-ferrando Dec 9, 2025
49a6492
Merge pull request #105 from Elemento-Modular-Cloud/dev-docker-instance
filippo-ferrando Dec 11, 2025
0c0a100
Updated GUI to v3.1.5 (second build) for beta test build
C4lopsitta Dec 11, 2025
372bad8
Updated GUI to v3.1.5 (second build) for beta test build
C4lopsitta Dec 11, 2025
f56d653
Updated GUI to v3.1.5 (second build) for beta test build
C4lopsitta Dec 11, 2025
0abe035
Updated GUI to v3.1.5 (third build) for beta test build
C4lopsitta Dec 18, 2025
6595f24
Updated GUI to v3.1.5 (fourth build) for beta test build
C4lopsitta Dec 19, 2025
4321036
Updated GUI to v3.1.5 (fifth build) for beta test build
C4lopsitta Dec 22, 2025
d9f12f8
Updated GUI to v3.1.5 (sixth build) for beta test build
C4lopsitta Dec 23, 2025
fe402f0
Updated GUI to v3.1.5 (seventh build) for beta test build
C4lopsitta Dec 23, 2025
74f75e7
Updated GUI to v3.1.5 (eight build) for beta test build
C4lopsitta Dec 23, 2025
e575f82
Updated GUI to v3.1.5 (ninth build) for beta test build
C4lopsitta Dec 23, 2025
794d50a
Updated GUI to v3.1.5 (tenth build) for beta test build
C4lopsitta Dec 23, 2025
6ea5e27
Created Common utilities files to ease code maintenance
C4lopsitta Dec 30, 2025
daf120e
Created common utility for Platform and Port Handler
C4lopsitta Dec 30, 2025
19ab236
Added tray icon utility class
C4lopsitta Dec 30, 2025
3b4a448
Upgraded daemon process handling
C4lopsitta Dec 30, 2025
878375d
Upgraded daemon process handling
C4lopsitta Dec 30, 2025
771e4d6
Added `--no-daemons` flag
C4lopsitta Dec 30, 2025
e80b093
Fixed issue that forbid Electros from Closing
C4lopsitta Dec 30, 2025
23e2a3b
Fixed minor code errors
C4lopsitta Jan 5, 2026
1cbbc45
Updated GUI
C4lopsitta Jan 5, 2026
9d3d757
Moved RDP Handlers into Class
C4lopsitta Jan 5, 2026
d24c93c
Modified menubar to be in line with Apple guidelines
C4lopsitta Jan 5, 2026
936790e
Modified Daemons behaviour to die with parent app
C4lopsitta Jan 7, 2026
4bc7cce
GUI Updated for test build
C4lopsitta Jan 14, 2026
5be0a71
GUI Updated for test build
C4lopsitta Jan 15, 2026
6308afc
Merge remote-tracking branch 'origin/develop' into develop
C4lopsitta Jan 15, 2026
97d0c41
Development test build push; likely broken
C4lopsitta Jan 15, 2026
6d893c0
Fixed missing daemon launch call
C4lopsitta Jan 16, 2026
296082e
Modified daemon launch
C4lopsitta Jan 16, 2026
efdc62c
Modified Daemon Population Script
C4lopsitta Jan 16, 2026
112da65
Modified close event
C4lopsitta Jan 16, 2026
a3769d7
Added catcher for Alt+F4 on Win/Linux with focus checker
C4lopsitta Jan 16, 2026
4678132
Fixed wrong kill order for windows and daemons
C4lopsitta Jan 16, 2026
b4b6c40
Adds script to start ElectrOS Electron app
gabrielefronze Jan 16, 2026
77c4573
GUI Updated for test build
C4lopsitta Jan 19, 2026
16d99f2
Merge remote-tracking branch 'origin/develop' into develop
C4lopsitta Jan 19, 2026
bf75b00
GUI Updated for test build for latest v3.1.5 beta
C4lopsitta Jan 19, 2026
05e7662
Improved zoom factors to avoid weird scaling issues
C4lopsitta Jan 19, 2026
732ba30
Fixed Terminal visisbility
C4lopsitta Jan 20, 2026
0e192d2
Fixed terminal titlebar
C4lopsitta Jan 20, 2026
80c1032
Fixed terminal window show/hide behaviour
C4lopsitta Jan 20, 2026
18ceebd
Streamlined Terminal integration with Daemons: Added `Terminal.Write`…
C4lopsitta Jan 20, 2026
00d84e0
Fixed missing import
C4lopsitta Jan 20, 2026
f4051c7
Model and network minor fixes
C4lopsitta Jan 20, 2026
98fceac
Fixed broken import
C4lopsitta Jan 21, 2026
db4313e
Buffered Terminal writes and enhanced Daemon handling. Adjusted `devT…
C4lopsitta Jan 21, 2026
ce5919d
Fixed volume editing dialog
C4lopsitta Jan 21, 2026
08ad145
Fixed bugs:
C4lopsitta Jan 21, 2026
2026f5d
Attempted to remove Windows admin priviledges request for execution
C4lopsitta Jan 21, 2026
b1c99b6
Fixed windows daemon command
C4lopsitta Jan 21, 2026
36e2bf2
Modified daemon termination method to work on windows
C4lopsitta Jan 21, 2026
3c67017
Upgraded GUI for new minor fixes
C4lopsitta Jan 22, 2026
982e7ec
Upgraded GUI for new minor fixes to network picker modal
C4lopsitta Jan 22, 2026
9ec85d6
Merge remote-tracking branch 'origin/main' into develop
C4lopsitta Jan 22, 2026
4de3f38
Fixed missing import
C4lopsitta Jan 23, 2026
b697e96
Updated GUI fixing minor issues
C4lopsitta Jan 23, 2026
f7bcb37
Final update for version 3.1.5
C4lopsitta Jan 26, 2026
e2b3001
Final update for version 3.1.5
C4lopsitta Jan 26, 2026
4808af0
Modified safestorage ipc signatures
C4lopsitta Jan 28, 2026
52a961e
Upgraded Electron to v40.1.0
C4lopsitta Jan 30, 2026
d8c667f
Updated GUI to have new auth check
C4lopsitta Feb 2, 2026
d45e8b9
Fix daemon startup command in startup.sh
filippo-ferrando Feb 2, 2026
ceb9fe9
Update to versioning display method and GUI update
C4lopsitta Feb 5, 2026
c05c0a1
Merge remote-tracking branch 'origin/develop' into develop
C4lopsitta Feb 5, 2026
760464c
Dropped unused `eel`, `nwjs` and `ultralight` distributions
C4lopsitta Feb 5, 2026
4a05f5d
Updated GUI
C4lopsitta Feb 6, 2026
0c9792d
Modified daemon terminal
C4lopsitta Feb 6, 2026
b79c34c
Updated GUI
C4lopsitta Feb 6, 2026
ad4b2bf
Fixed wrong nginx configuration
C4lopsitta Feb 9, 2026
28ed643
Updated GUI for Electros on AtomOS fixes
C4lopsitta Feb 9, 2026
f76b946
Updated GUI for Electros on AtomOS fixes for VNC
C4lopsitta Feb 9, 2026
04319e4
Updated GUI for VNC Fix for AtomOS
C4lopsitta Feb 9, 2026
d9ac635
Fixed wrong nginx configuration
C4lopsitta Feb 9, 2026
2d0c120
Updated GUI for VM Fixes on AtomOS
C4lopsitta Feb 12, 2026
90d6165
Added logger streamer
C4lopsitta Feb 13, 2026
eb862f4
Fixed dockerfile
C4lopsitta Feb 13, 2026
779881d
Updated GUI and fixed issues with startup.sh
C4lopsitta Feb 13, 2026
39555a8
Added proxy-pass for required headers
C4lopsitta Feb 13, 2026
accaa8f
Merge remote-tracking branch 'origin/main' into develop
C4lopsitta Feb 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,12 @@ COPY elemento-gui-new/ /usr/share/nginx/html/
COPY elemento-gui-new/electros/configs/atomosFlags.json /usr/share/nginx/html/electros/configs/flags.json
COPY elemento-gui-new/electros/electrosOnAtomos.html /usr/share/nginx/html/electros/electros.html
COPY docker/startup.sh /opt/app/startup.sh
COPY ./docker/follow_log.sh /opt/app/follow_log.sh
COPY ./docker/logger_stream.sh /opt/app/logger_stream.sh

RUN apt update
RUN apt install -y socat
RUN rm -rf /var/cache/apt/archives /var/lib/apt/lists/*

RUN chmod +x /opt/daemons/*
RUN chmod +x /opt/app/startup.sh
Expand Down
7 changes: 7 additions & 0 deletions docker/arm_Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,14 @@ COPY ./docker/nginx.conf /etc/nginx/nginx.conf
COPY electros-daemons/linux/arm64/* /opt/daemons/
COPY elemento-gui-new/ /usr/share/nginx/html/
COPY elemento-gui-new/electros/configs/atomosFlags.json /usr/share/nginx/html/electros/configs/flags.json
COPY elemento-gui-new/electros/electrosOnAtomos.html /usr/share/nginx/html/electros/electros.html
COPY ./docker/arm_startup.sh /opt/app/startup.sh
COPY ./docker/follow_log.sh /opt/app/follow_log.sh
COPY ./docker/logger_stream.sh /opt/app/logger_stream.sh

RUN apt update
RUN apt install -y socat
RUN rm -rf /var/cache/apt/archives /var/lib/apt/lists/*

RUN chmod +x /opt/daemons/*
RUN chmod +x /opt/app/startup.sh
Expand Down
3 changes: 2 additions & 1 deletion docker/arm_startup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@
# start background daemons

#/opt/daemons/Elemento_Daemons_linux_x86 > /var/log/elemento/elemento_daemons.log 2>&1 &
/opt/daemons/Elemento_Daemons_linux_arm >/var/log/elemento/elemento_daemons.log 2>&1 &
/opt/daemons/elemento_daemons_linux_arm >/var/log/elemento/elemento_daemons.log 2>&1 &
/opt/app/logger_stream.sh >/dev/null &

# run the project

Expand Down
35 changes: 35 additions & 0 deletions docker/follow_log.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/bin/bash

LOG_FILE=/var/log/elemento/elemento_daemons.log

trap '' PIPE

# Read and discard HTTP request headers
while IFS= read -r line; do
[ "$line" = $'\r' ] && break
done

# Send HTTP headers
printf "HTTP/1.1 200 OK\r\n"
printf "Content-Type: text/plain\r\n"
printf "Transfer-Encoding: chunked\r\n"
printf "Cache-Control: no-cache\r\n"
printf "Connection: keep-alive\r\n"
printf "\r\n"

# Send last 1000 lines
tail -n 1000 "$LOG_FILE" | while IFS= read line; do
chunk="${line}\n"
len=$(printf "%s" "$chunk" | wc -c)
printf "%x\r\n%s\r\n" "$len" "$chunk" || break
done

# Follow file
# shellcheck disable=SC2162
tail -n 0 -F "$LOG_FILE" | while IFS= read line; do
chunk="${line}\n"
len=$(printf "%s" "$chunk" | wc -c)
printf "%x\r\n%s\r\n" "$len" "$chunk" || break
done


5 changes: 5 additions & 0 deletions docker/logger_stream.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/sh

PORT=5142

socat TCP-LISTEN:"$PORT",reuseaddr,fork SYSTEM:'bash -c /opt/app/follow_log.sh'
58 changes: 58 additions & 0 deletions docker/nginx.conf
Original file line number Diff line number Diff line change
Expand Up @@ -99,60 +99,118 @@ http {
# Daemon statuses handlers
location /authStatus {
proxy_pass $authenticate/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}

location /computeStatus {
proxy_pass $compute/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}

location /storageStatus {
proxy_pass $storage/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}

location /networksStatus {
proxy_pass $network/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}

location /servicesStatus {
proxy_pass $services/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}

location /targetsStatus {
proxy_pass $targets/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}

# Daemon handlers
location /api/v1/authenticate/ {
proxy_pass $authenticate;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}

location /api/v1.0/client/backups/ {
proxy_pass $compute;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}

location /api/v1.0/client/vm/ {
proxy_pass $compute;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}

# special case for network attach/detach for a VM
location ~ ^/api/v1.0/client/network/(attach|detach) {
proxy_pass $compute;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}

location /api/v1.0/client/volume/ {
proxy_pass $storage;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}

location /api/v1.0/client/network/ {
proxy_pass $network;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}

location /api/v1.0/service/ {
proxy_pass $services;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}

location /api/v1.0/client/target/ {
proxy_pass $targets;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}

# WebSocket passthrough
location ~ ^/api/v1.0/client/vnc/(.*)$ {
proxy_pass http://127.0.0.1:$1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}

location /api/logs {
proxy_pass http://localhost:5142;
proxy_buffering off;
proxy_cache off;
}
}
}
1 change: 1 addition & 0 deletions docker/startup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
# start background daemons

/opt/daemons/elemento_daemons_linux_x86 >/var/log/elemento/elemento_daemons.log 2>&1 &
/opt/app/logger_stream.sh >/dev/null &

# run the project

Expand Down
1 change: 0 additions & 1 deletion electros-eel/.gitignore

This file was deleted.

95 changes: 0 additions & 95 deletions electros-eel/electros.py

This file was deleted.

11 changes: 0 additions & 11 deletions electros-eel/index.html

This file was deleted.

2 changes: 0 additions & 2 deletions electros-eel/requirements.txt

This file was deleted.

10 changes: 0 additions & 10 deletions electros-eel/setup.sh

This file was deleted.

9 changes: 0 additions & 9 deletions electros-eel/start.sh

This file was deleted.

6 changes: 3 additions & 3 deletions electros-electron/common/Daemons.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ export class Daemons {
static Launch(platform, __dirname) {
if (app.commandLine.hasSwitch("no-daemons")) {
console.log("Daemons have been disabled by `--no-daemons`");
Terminal.Write("Elemento Client Daemons have been disabled by `--no-daemons`.");
Terminal.Write("[INFO] Elemento Client Daemons have been disabled by `--no-daemons`.");
throw new DaemonsNotEnabledError();
}

if (!app.isPackaged) {
Terminal.Write("Electros is not packaged. Daemons might have to be manually started.")
console.log("Electros is not packaged. Daemons might have to be manually started.")
Terminal.Write("[WARNING] Electros is not packaged. Daemons might have to be manually started.")
console.warn("Electros is not packaged. Daemons might have to be manually started.")
}

const execPath = Daemons._GetCommand(platform, __dirname);
Expand Down
9 changes: 8 additions & 1 deletion electros-electron/main.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const {app, BrowserWindow, ipcMain, Menu, nativeTheme, shell, safeStorage} = require('electron');

app.commandLine.appendSwitch('disable-zoom-level-persistence');
app.commandLine.appendSwitch('force-device-scale-factor', '1');
const path = require('path');
const {spawn} = require('child_process');
const net = require('net');
Expand Down Expand Up @@ -447,3 +447,10 @@ ipcMain.handle("safestorage-decrypt", async (event, { value }) => {

return safeStorage.decryptString(value)
});

ipcMain.handle("app-version", () => {
return {
version: app.getVersion(),
node: process.versions
};
});
3 changes: 2 additions & 1 deletion electros-electron/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,8 @@
},
"dependencies": {
"@xterm/addon-fit": "latest",
"@xterm/xterm": "^5.5.0",
"@xterm/addon-webgl": "^0.19.0",
"@xterm/xterm": "^6.0.0",
"cors": "^2.8.5",
"express": "^4.21.2",
"socket.io": "^4.8.1",
Expand Down
Loading
Loading