Skip to content

Repository files navigation

Remote Browser

English | 中文

Screenshots

Connection setup

Remote Browser connection setup

Remote browser session

Chromium running through noVNC

Remote Browser is an Electron desktop app that provisions Chromium, Weston, and noVNC on a remote Linux server. Enter an SSH server and a target URL, review the installation plan, and open the graphical browser through a secure SSH tunnel. VNC credentials are generated and filled automatically.

Features

  • Install or update the remote browser service with one click
  • Switch between English and Chinese, with the language preference remembered locally
  • Detect the Linux distribution without modifying it, then show packages, repository changes, and system operations for confirmation
  • Authenticate with an SSH password, keyboard-interactive login, private key, private-key passphrase, or SSH Agent
  • Use a separate sudo password when required
  • Generate, encrypt, store, display, and automatically fill VNC credentials
  • Remember and verify SSH host fingerprints
  • Bind VNC, noVNC, and Chromium debugging ports only to remote 127.0.0.1
  • Choose an available local tunnel port automatically by default, with an optional fixed-port mode
  • Run managed sessions as the remote-browser credential user and stop them automatically with the SSH connection
  • Build desktop packages for macOS, Windows, and Linux

Supported remote systems

Automatic installation is selected by distribution and version instead of guessing from the package manager alone. Remote Browser does not require or create a persistent systemd service.

Distribution Status Repository handling
AlmaLinux and Rocky Linux 8/9/10 Supported Enables PowerTools on EL 8 or CRB on EL 9/10, then installs EPEL
CentOS Stream 9/10 Supported Enables CRB and installs EPEL
Fedora Supported Uses configured official repositories
RHEL 8/9/10 Conditional CodeReady Builder and EPEL must be configured beforehand; the app does not modify Red Hat subscriptions
Debian, Ubuntu, and apt-get derivatives Supported Uses configured apt repositories
openSUSE Tumbleweed Supported Uses configured repositories
CentOS 8, openSUSE Leap, Arch Linux, Amazon Linux, Oracle Linux, and older yum-only systems Not automatically installed Detection explains the unsupported version or repository requirement without modifying the system

Configured repositories must provide Weston, noVNC, websockify, and Chromium. Package availability can change on rolling distributions, so review the confirmation dialog before every installation.

Usage

  1. Enter the server address, SSH user, ports, and target URL.
  2. Enter an SSH password or choose a private key. If both are empty, the app tries a default private key and SSH Agent.
  3. For non-root users, enter a sudo password when required.
  4. Click Apply and open. The app first performs a read-only inspection.
  5. Review repository changes, packages, system users, services, and port operations.
  6. Click Install and open to authorize sudo-backed remote changes. If the packages are already present, click Installed — configure and start. This skips only package installation and still configures the managed user, launcher, and VNC credentials. The app remembers managed servers and reuses their stored VNC credentials.

The first run uses root/sudo to install packages, create the remote-browser credential user, and install a passwordless entry point restricted to the fixed session launcher. Choosing Installed skips only the package steps; the remaining managed setup is identical. Every setup generates a new VNC password and replaces both the remote and locally stored credentials. Later runs need no sudo password and automatically fill the managed credentials. Sessions tie their lifetime to SSH stdin EOF, so disconnecting, losing SSH, or quitting the app stops the remote processes. If the remote system is reinstalled, use Reset install to clear the local installed state, old VNC credentials, and saved connection settings, restoring the default form.

Security

  • SSH passwords, sudo passwords, and private-key passphrases are held only in memory for the current connection and are not written to the configuration file.
  • VNC credentials are encrypted with Electron safeStorage. If secure storage is unavailable, credentials remain in memory only for the current session.
  • After accepting a host fingerprint for the first time, subsequent connections verify it.
  • VNC and noVNC do not listen on public interfaces; desktop access is available only through the SSH tunnel.
  • .gitignore excludes build artifacts, environment files, and local credential files.

See SECURITY.md for more information.

Local development

Node.js 22 or newer is required.

npm ci
npm run check
npm start

Opening src/renderer/index.html directly in a regular browser only previews the interface. SSH features require Electron.

Build

npm run dist:mac
npm run dist:win
npm run dist:linux

Packages are written to release/. Building each package on its target operating system is recommended.

License

MIT

About

Provision and open a remote graphical browser through a secure SSH tunnel

Topics

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages