-
Notifications
You must be signed in to change notification settings - Fork 18
Description
Bug description
Currently, ImSwitch's React-based GUI frontend can be run as a local client (i.e. served to your local web browser by an ImSwitch instance running on your local computer, connecting over a network connection to a remote ImSwitch API) or as a remote client over a network connection (i.e. served to your local web browser by a remote ImSwitch instance running on an RPi via imswitch-os, connecting to that same ImSwitch instance's API).
In the former case, the user must open the "Connections" settings panel to set the IP address and ports of the remote ImSwitch instance's API. In the latter case, the user also must do the same thing - which makes setup/onboarding more complicated than necessary.
This UX issue became clear in a meeting between @gokugiant and @beniroquai where Florian was talking about the confusing relationship between the "Connections" settings panel and the "UC2" settings page, and the need for some kind of first-boot wizard to initialize ImSwitch connection configurations.
Expected behavior
When the ImSwitch GUI is being served as a remote client from imswitch-os, the user should not need to enter the IP address and ports of the remote ImSwitch instance. Instead, the remote ImSwitch instance should serve the ImSwitch GUI in a "remote client" mode with whatever information the ImSwitch GUI needs to connect to the ImSwitch API, avoiding the need for the user to figure that out and enter that information themselves. This might be implementable as a flag (set via environment variable in a Docker Compose file and/or via ImSwitch config file and/or via any other methods) which toggles between "local client" and "remote client" modes, where the "Connection" settings panel is suppressed in "remote client" mode.
Additional context
For comparison, the Cockpit client, when it is run as a remote client (i.e. served from imswitch-os on the RPi), doesn't need you to tell it the IP address of the RPi; but you can instead run the Cockpit client as a local client, in which case it first displays a special page where you must enter the IP address of the remote computer for Cockpit to connect to, before it reaches the username/password login page:
