ThePorgs / Roadmap

Public roadmap of the Exegol project
1 stars 0 forks source link

Remote graphical desktop #10

Closed ShutdownRepo closed 6 months ago

ShutdownRepo commented 1 year ago

The needs

Currently, Exegol is a 90% command-line interface, with some GUI apps on top (when display sharing is possible). It poses two issues

  1. users that can't use display sharing cannot run GUI apps
  2. there's no desktop, which is fine for most users but lacking user experience for the not-so-advanced users

Description

In my opinion, the best way to have a modern graphical interface fit for Exegol would be to have an in-browser desktop. I'm thinking Apache Guacamole / webtop and similar solutions. No idea how to implement this yet. Most of the implementation would probably be on the Exegol-images side, and the wrapper would only need to integrate an option like --desktop and would return the URL where the desktop can be reached. Open to suggestions for this.

Alternatives

No response

Additional context

No response

QU35T-code commented 1 year ago

For now, I will use version 0.9.14 of Apache Guacamole (released in 2018) because it has an official extension to disable authentication to Guacamole and automatically join the RDP/VNC session (https://guacamole.apache.org/doc/0.9.5/gug/noauth.html).

The extension is not compatible with later releases. First, I will do this and then I will think about a way to install the latest version of Guacamole (1.4.0 -> 2022). Either I will code an extension in Java disabling the authentication system or I have to find another way.

(https://guacamole.apache.org/releases/)

If you have any ideas !

ShutdownRepo commented 1 year ago

Why opt for a noauth ? I think it'd be relevant to have an authentication step before accessing the desktop remotely.

QU35T-code commented 1 year ago

As the connection is local, I thought the most user-friendly way is to disable authentication in Guacamole. But, we can ask the question of security to access directly the container from the browser without authentication. If you are okay with this, then I'll let her :)

I have some possibilities for the auth, do you have one preferred ?

For my part, I think of mysql or json if we really want to keep it simple.

ShutdownRepo commented 1 year ago

I would be awesome to allow for a non-local connection, so that users could deploy exegol on a server and access it's desktop remotely. The default would be a local connection (why not disable authentication then), but then if we could allow for remote access w/ auth. it would be perfect

For my part, I think of mysql or json if we really want to keep it simple.

agreed

ShutdownRepo commented 1 year ago

Let's move forward with the following specs:

Once this is set, we'll customize a bit the environment to make it more exegol-style 👀

Final step will be to move on to the wrapper and implement the right options to interact with the new desktop sharing feature's config.

Any idea on the desktop environment we should choose ? KDE, XFCE, Gnome, etc. ? Gnome: by default, Debian comes with the GNOME desktop. It's more user-friendly. Nice to the eyes. A bit heavy. XFCE, KDE: afaik they run on fewer system resources. Whatever default we choose, it'd be nice to prepare deployment kits for the other in the my-resources feature