Skip to content

Conversation

thelamer
Copy link
Member

@thelamer thelamer commented Oct 1, 2025

Fixes many bugs and adds many new environment variables:

Dashboard

DASHBOARD - allows the user to set their dashboard from current options selkies-dashboard selkies-dashboard-zinc selkies-dashboard-wish.

File path

FILE_MANAGER_PATH - modifies the default upload/download file path

Meta Tags

HARDEN_DESKTOP - enables DISABLE_OPEN_TOOLS DISABLE_SUDO DISABLE_TERMINALS if unset by user app settings SELKIES_FILE_TRANSFERS SELKIES_COMMAND_ENABLED SELKIES_UI_SIDEBAR_SHOW_FILES SELKIES_UI_SIDEBAR_SHOW_APPS
HARDEN_OPENBOX - enables DISABLE_CLOSE_BUTTON DISABLE_MOUSE_BUTTONS HARDEN_KEYBINDS and flags RESTART_APP if unset by user as the app needs to be auto restart without any kind of launch ability.

Hardening env vars

  • DISABLE_OPEN_TOOLS - If set, disables xdg-open and exo-open binaries by removing their execute permissions.
  • DISABLE_SUDO - If set, disables the sudo command by removing its execute permissions and invalidating the passwordless sudo configuration.
  • DISABLE_TERMINALS - If set, disables common terminal emulators by removing their execute permissions and hiding them from the Openbox right-click menu.
  • DISABLE_CLOSE_BUTTON - If set, removes the close button from window title bars in the Openbox window manager.
  • DISABLE_MOUSE_BUTTONS - If set, disables the right-click and middle-click context menus and actions within the Openbox window manager.
  • HARDEN_KEYBINDS - If set, disables default Openbox keybinds that can bypass other hardening options (e.g., Alt+F4 to close windows, Alt+Escape to show the root menu).
  • RESTART_APP - If set, enables a watchdog service that automatically restarts the main application if it is closed. The user's autostart script is made read-only and root owned to prevent tampering.

This allows single app containers to be locked to the app, when passing like -e HARDEN_DESKTOP=true and -e HARDEN_OPENBOX=true to a container it becomes a single app instance that the client really cannot change anything about the container just stay in the app sandbox.

example :

docker run --rm -it -p 3001:3001 --shm-size=1gb -e HARDEN_DESKTOP=true -e HARDEN_OPENBOX=true taisun/random-images:chromium-preview-bugfixes-new bash

This all depends on the app but stuff like chromium uses xdg-open to open files or file managers so it really is isolated down to its base function and cannot spin up random bins from its file:// url scheme. Even extensions would be forced to use that standardized api as far as I understand it.

@LinuxServer-CI
Copy link
Collaborator

I am a bot, here are the test results for this PR:
https://ci-tests.linuxserver.io/lspipepr/selkies-base/debiantrixie-74bd003f-pkg-74bd003f-dev-641609d8011446613f337d71f6771ea3d17abbe5-pr-92/index.html
https://ci-tests.linuxserver.io/lspipepr/selkies-base/debiantrixie-74bd003f-pkg-74bd003f-dev-641609d8011446613f337d71f6771ea3d17abbe5-pr-92/shellcheck-result.xml

Tag Passed
amd64-debiantrixie-74bd003f-pkg-74bd003f-dev-641609d8011446613f337d71f6771ea3d17abbe5-pr-92
arm64v8-debiantrixie-74bd003f-pkg-74bd003f-dev-641609d8011446613f337d71f6771ea3d17abbe5-pr-92

@LinuxServer-CI
Copy link
Collaborator

I am a bot, here are the test results for this PR:
https://ci-tests.linuxserver.io/lspipepr/selkies-base/debiantrixie-74bd003f-pkg-74bd003f-dev-815c2a37f00c0150443babc480863a1ca38eacc4-pr-92/index.html
https://ci-tests.linuxserver.io/lspipepr/selkies-base/debiantrixie-74bd003f-pkg-74bd003f-dev-815c2a37f00c0150443babc480863a1ca38eacc4-pr-92/shellcheck-result.xml

Tag Passed
amd64-debiantrixie-74bd003f-pkg-74bd003f-dev-815c2a37f00c0150443babc480863a1ca38eacc4-pr-92
arm64v8-debiantrixie-74bd003f-pkg-74bd003f-dev-815c2a37f00c0150443babc480863a1ca38eacc4-pr-92

@thelamer thelamer merged commit 96bb791 into debiantrixie Oct 2, 2025
4 checks passed
@thelamer thelamer deleted the harden-trixie branch October 2, 2025 22:17
@LinuxServer-CI LinuxServer-CI moved this from PRs to Done in Issue & PR Tracker Oct 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

Successfully merging this pull request may close these issues.

2 participants