Skip to content

[FEAT] Authoritative server settings and considering shared environmentsΒ #36

@ne0YT

Description

@ne0YT

Is this a new feature request?

  • I have searched the existing issues

Wanted change

I would like to hide the "Apps feature" and disable "HiDPI (Pixel Perfect)" as a standard setting serverside. is there a way to do those things easily?

Reason for change

make the tool more usable for a basic user

Purpose

Customizing the dashboard is a tall ask, but right now an admin should at a bare minimum set limits and defaults that the client is not able to override (streaming mode fps, allow command messages, stuff like that) .
This current stack is assuming the people running the server are the same people using the clients. We need some kind of comprehensive administrative makevoer for people that might be pubbing stuff like this out to randos or using it to make money.

Addendum

This stack was created from the ground up to be customized and whiteboxed, it is unbranded and all licensed under the MPL, these are not accidents and a lot of thought was put into this.

Ring 0 - rendering

The stack consists of some layers at your base you have pcmflux/pixelflux:
https://github.com/linuxserver/pixelflux/
https://github.com/linuxserver/pcmflux

Ring 1 - the server

https://github.com/selkies-project/selkies/tree/main/src

this is lacking the functionality outlined above it will take any instructions or settings from the client without limit this is the missing piece here, need safeguards.

Ring 2 - the client - 2 parts

This is where whiteboxing mostly comes in, IE say you are a browser isolation shop and you want to put your logo and you interface on top of ring 0 and 1, that is incredibly easy and a very low ask from even a jr developer because the client is broken into a core and a dashboard:
https://github.com/selkies-project/selkies/tree/main/addons/gst-web-core

The core code does everything, renders the stream, audio, input, gamepads, microphone, the whole thing in kiosk envs you can run just core if no need for a user facing dashboard. Core should basically never be touched by a third party it does what it does and the dashboard can send window messages to it to change its settings.

Then you have the dashboard and we actually already have multiple:
https://github.com/selkies-project/selkies/tree/main/addons/selkies-dashboard
https://github.com/selkies-project/selkies/tree/main/addons/selkies-dashboard-zinc

This is where whiteboxing comes in, you can make this all your own and specifically the example dashboard is vibe coded to facilitate this and because I am not a frontend developer:
https://github.com/selkies-project/selkies/blob/main/addons/selkies-dashboard/src/components/Sidebar.jsx
Just literally paste that code into any LLM and ask it for changes you will get back functioning code.

Development

Development has also been streamlined and you can test any and all your changes easily using any of our containers this mode is baked into all of them from the baseimage up:

git clone https://github.com/selkies-project/selkies.git
cd selkies
docker run --rm -it \
  -p 3001:3001 \
  -e PUID=1000 \
  -e PGID=1000 \
  --shm-size=1gb \
  -e DEV_MODE=selkies-dashboard \
  -v $(pwd):/config/src lsiobase/selkies:ubuntunoble bash

Once loaded you can change any component of the stack from the server up to the dashboard and it will automatically reload the mounted codebase and show the results in the browser live.

@ne0YT I highly recommend trying this development mode even if you are not a developer these components are easy to simply rip out IE the sidebar for apps:
https://github.com/selkies-project/selkies/blob/a577b656b48444be9b7a04bab17c0046e1e77e59/addons/selkies-dashboard/src/components/Sidebar.jsx#L2714-L2748
Write the file and watch it dissapear.

This is a very long way of saying if you are looking to customize the dashboard that is not a feature set I plan on directly integrating into this stack as we target the self hosted labber market not businesses and exposing the app to unknown or untrusted users, but I am trying to promote people to make this their own, fork it and go to town I made it and I do not care if someone becomes rich using this tech while completely ripping out accreditation, I just want people to use Linux.

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Issues

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions