Repolode
bifrost0x

bifrost0x/webssh

Self-hosted browser workspace for SSH terminals and SFTP file transfers, with multi-user accounts, passkeys, OIDC and encrypted key storage.

Open-source alternative to:Termius

Stars
308
Forks
41
Open issues
0
Last commit
2 days ago

What is it?

WebSSH is a self-hosted web application that puts SSH terminals, SFTP file management, saved commands, diagnostics and notes into one browser workspace. It supports multiple sessions with tabs and split panes, jump hosts, key or password authentication, and persistent remote shells through tmux when available on the target.

The project is built for homelabs and small teams that need multi-user access without a hosted control plane. Accounts, profiles, encrypted private keys, per-user known-host decisions and audit records stay on the WebSSH instance. Sign-in can use local accounts, passkeys, TOTP, OIDC, GitHub App or LDAP/Active Directory.

File work covers SFTP and opt-in SMB, with uploads, downloads, inline editing, server-to-server transfers and a shared queue. It is deployed with Docker Compose, and the README stresses that production runs a single Gunicorn gthread worker behind an HTTPS reverse proxy.

Key features

  • 01Multiple SSH sessions with tabs and 1-, 2- or 4-pane layouts.
  • 02Source-first SFTP workspace with uploads, downloads, previews and inline editing.
  • 03Multi-user accounts with passkeys, TOTP, recovery codes and OIDC or LDAP sign-in.
  • 04Encrypted SSH private-key storage and per-user host-key trust decisions.
  • 05Docker Compose deployment with a persistent data volume and health endpoints.
  • 06Native backup and restore with explicit confirmation.

Use cases

  • Managing several homelab servers from a phone or browser without installing a desktop SSH client.
  • Giving a small team shared, audited SSH and SFTP access with individual accounts and keys.
  • Moving files between SFTP or SMB servers with a shared transfer queue.
  • Keeping reusable command sets and diagnostics for frequently administered Linux hosts.

Quick start

  1. 1

    Create a deployment directory

    mkdir webssh-deployment
  2. 2

    Enter the deployment directory

    cd webssh-deployment
  3. 3

    Download the docker-compose.yml file

    curl -O https://raw.githubusercontent.com/bifrost0x/webssh/main/docker-compose.yml
  4. 4

    Start WebSSH with Docker Compose, then open http://localhost:5000 and create the first administrator

    docker compose up -d

Things to know

  • The supplied Compose file is intended for evaluation and trusted homelab networks, not direct Internet exposure without a production setup.
  • SMB support is disabled by default and requires an explicit server allowlist; Guest, DFS and Kerberos are not supported.

In collections

Topics

FAQ

What is webssh?
Self-hosted browser workspace for SSH terminals and SFTP file transfers, with multi-user accounts, passkeys, OIDC and encrypted key storage. WebSSH is a self-hosted web application that puts SSH terminals, SFTP file management, saved commands, diagnostics and notes into one browser workspace. It supports multiple sessions with tabs and split panes, jump hosts, key or password authentication, and persistent remote shells through tmux when available on the target.
Is webssh free to use? What license does it have?
webssh is open source under the MIT license. Check the license terms before using it in commercial products.
Is webssh still maintained?
Actively maintained. The last commit to webssh was on Nov 5, 2026.
What can I use webssh for?
Managing several homelab servers from a phone or browser without installing a desktop SSH client. Giving a small team shared, audited SSH and SFTP access with individual accounts and keys. Moving files between SFTP or SMB servers with a shared transfer queue. Keeping reusable command sets and diagnostics for frequently administered Linux hosts.
How do I install webssh?
Create a deployment directory: mkdir webssh-deployment Enter the deployment directory: cd webssh-deployment Download the docker-compose.yml file: curl -O https://raw.githubusercontent.com/bifrost0x/webssh/main/docker-compose.yml Start WebSSH with Docker Compose, then open http://localhost:5000 and create the first administrator: docker compose up -d
Where can I get webssh?
The source code and installation instructions are on GitHub: https://github.com/bifrost0x/webssh

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects