You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Thanks for contributing to the Docker-Selenium project! A PR well described will help maintainers to quickly review and merge it
Before submitting your PR, please check our contributing guidelines, applied for this repository.
Avoid large PRs, help reviewers by making them as simple and short as possible.
Description
Fixes#3075 Fixes#3056
Add back browser selection to the Fluxbox menu
Also adding Xterm, a lightweight terminal that can open in Fluxbox during live preview or VNC access.
Motivation and Context
Types of changes
Bug fix (non-breaking change which fixes an issue)
New feature (non-breaking change which adds functionality)
Breaking change (fix or feature that would cause existing functionality to change)
Below is a summary of compliance checks for this PR:
Security Compliance
⚪
Remote shell access
Description: Adding xterm launchers to the Fluxbox menu (e.g., Terminal and shells) enables interactive shell access via VNC/noVNC, which can be an exploitable remote entry point if VNC/noVNC is exposed without strong authentication/network restrictions. fluxbox-menu [16-19]
Restore the ability to manually open a visible Chrome browser session via noVNC/VNC when using selenium/node-chrome:142 (behavior parity with selenium/node-chrome:134).
Codebase Duplication Compliance
⚪
Codebase context is not defined
Follow the guide to enable codebase context checks.
Custom Compliance
🟢
Generic: Comprehensive Audit Trails
Objective: To create a detailed and reliable record of critical system actions for security analysis and compliance.
Generic: Robust Error Handling and Edge Case Management
Objective: Ensure comprehensive error handling that provides meaningful context and graceful degradation
Status: Arch mapping edge case: The ARCH mapping in the RUN step may select a value without a corresponding fluxbox-menu-browser-${ARCH} file (e.g., non-amd64/arm64 architectures), causing an unhandled build-time failure without an explicit, actionable error message.
Compliance status legend
🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
⚪ - Requires Further Human Verification
🏷️ - Compliance label
VietND96
changed the title
Docker: Add browser to Fluxbox menu and lightweight terminal
Docker: Add browser selection to Fluxbox menu and lightweight terminal
Feb 22, 2026
Why: The suggestion correctly points out that using an absolute path for the xterm executable is more robust and consistent, and it also removes a leading space which is good practice.
Low
remove unused arch menu files
Remove all original architecture-specific menu files after renaming the correct one to keep the Docker image lean.
Why: This suggestion correctly identifies that unused files should be removed to optimize the Docker image size, and it provides a more concise and robust solution than the other overlapping suggestion.
Low
Remove unused files after selection
After renaming the architecture-specific menu file, remove the original amd64 and aarch64 files to reduce Docker image size.
Why: This is a valid optimization to reduce image size by removing unused files, but it overlaps with another suggestion that achieves the same with a more concise command.
Low
Learned best practice
Quote variables and paths
Store the architecture value once and quote ${ARCH} and file paths so the command is safe if values ever contain unexpected characters; fail early if the expected file is missing.
-RUN ARCH=$(if [ "$(dpkg --print-architecture)" = "arm64" ]; then echo "aarch64"; else echo "$(dpkg --print-architecture)"; fi) \- && mv /etc/X11/fluxbox/fluxbox-menu-browser-${ARCH} /etc/X11/fluxbox/fluxbox-menu-browser+RUN dpkg_arch="$(dpkg --print-architecture)" \+ && if [ "${dpkg_arch}" = "arm64" ]; then ARCH="aarch64"; else ARCH="${dpkg_arch}"; fi \+ && src="?url=https%3A%2F%2Fgithub.com%2Fetc%2FX11%2Ffluxbox%2Ffluxbox-menu-browser-%24%7BARCH%7D" \+ && test -f "${src}" \+ && mv "${src}" "?url=https%3A%2F%2Fgithub.com%2Fetc%2FX11%2Ffluxbox%2Ffluxbox-menu-browser"
Apply / Chat
Suggestion importance[1-10]: 6
__
Why:
Relevant best practice - In shell/Docker RUN commands, quote variables and paths to avoid word-splitting/globbing and make logic more robust.
Low
High-level
Simplify Fluxbox menu configuration files
To reduce duplication, move the [submenu] and [end] directives from the individual fluxbox-menu-browser files into the main NodeBase/fluxbox-menu file. The browser-specific files should then only contain the [exec] lines.
Why: The suggestion correctly identifies duplicated [submenu] and [end] directives across multiple new configuration files and proposes a valid structural improvement to enhance maintainability.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
User description
Thanks for contributing to the Docker-Selenium project!
A PR well described will help maintainers to quickly review and merge it
Before submitting your PR, please check our contributing guidelines, applied for this repository.
Avoid large PRs, help reviewers by making them as simple and short as possible.
Description
Fixes #3075

Fixes #3056
Add back browser selection to the Fluxbox menu
Also adding Xterm, a lightweight terminal that can open in Fluxbox during live preview or VNC access.

Motivation and Context
Types of changes
Checklist
PR Type
Enhancement
Description
Add xterm lightweight terminal to base Docker image
Restore browser selection menu to Fluxbox desktop environment
Create architecture-specific Fluxbox menu configurations
Include browser-specific menu files for each node type
Diagram Walkthrough
File Walkthrough
1 files
Add xterm terminal package to base image6 files
Copy Fluxbox menu configuration fileCopy Chrome-specific browser menuCopy Chromium-specific browser menuCopy Microsoft Edge browser menuCopy Firefox-specific browser menuCopy architecture-specific multi-browser menus7 files
Create main Fluxbox menu with applicationsDefine Google Chrome menu entryDefine Chromium menu entryDefine Microsoft Edge menu entryDefine Mozilla Firefox menu entryDefine multi-browser menu for amd64 architectureDefine multi-browser menu for aarch64 architecture