Self-hosted SSH + SFTP

Your shell. Your rules.

Your servers, terminals and files.
One workspace you control.

WebSSH is a free, open-source SSH and SFTP client you host yourself. Open terminals, move files and manage remote servers from your browser.

See WebSSH in action

WebSSH video tour: your servers, one workspace. SSH routes and SFTP files in the current interface.
Watch the full WebSSH tour · 4:33 · English narration and subtitles · View the workspace screenshot

Self-hosted by design.

Run WebSSH on infrastructure you control.

  • Your data stays with you

    Accounts, keys and settings stay on your instance.

  • Local browser assets

    Browser libraries ship with WebSSH.

  • MIT licensed

    Open source. Free to use and modify.

Your first session starts here.

Start locally with Docker.

Docker · Bash / Zsh
docker run -d \
  --name webssh \
  -p 127.0.0.1:5000:5000 \
  -e CORS_ORIGINS=http://localhost:5000 \
  -v webssh_data:/app/data \
  --restart unless-stopped \
  ghcr.io/bifrost0x/webssh:latest

On the Docker host, open http://localhost:5000 and create your admin account. This command keeps the port on loopback; it is a local evaluation setup.

Choose the right setup for your network.

One connected workspace

Keep your servers in view.

Move from a shell to its files, commands and diagnostics without losing the context of the server you are working on.

SSH terminals, side by side

Open multiple sessions in tabs or split the workspace into two or four panes. Search terminal output, download transcripts and reconnect to remote tmux sessions.

Explore the terminal workspace

Files where you need them

Browse SFTP sources in one or two panes. Upload, download, preview and edit files, or transfer between servers with a visible queue and explicit conflict choices.

Explore files and transfers

Your everyday tools, together

Reuse saved hosts, jump hosts, commands and command sets. Keep session notes nearby and inspect supported Linux resource, service and container information.

Explore the daily workflow

From a quick check to a longer session

A workspace that follows your work.

Compare two hosts on a desktop. Revisit a persistent remote shell. Check a server from your phone. The interface adapts while your saved connections stay on your instance.

Persistence uses tmux on the remote target. Your WebSSH sign-in, network access and the target's own permissions still apply.

Take the full feature tour
WebSSH with two SSH terminal panes and four session tabs
Two live terminals, one view. Screenshots use example data.

Built for hands-on administration

Make it part of your setup.

01 / Homelabs

A home for your hosts

Keep your lab connections, reusable commands and notes in one place. Use a trusted network or VPN and choose a deployment profile that fits your target network.

02 / Server operations

Follow the task through

Inspect a service, read a configuration file, edit it and return to the shell. Session-aware tools help keep each action tied to the selected server.

03 / Multiple users

Separate accounts and access

Give users individual accounts with their own connections, keys and host trust. Administrators control registration and optional sign-in methods.

Control starts with clear boundaries

Your infrastructure.
Your responsibility.

WebSSH runs on your host and connects to the targets you allow. No hosted WebSSH account or external control plane is required. Browser dependencies ship locally, and the application has no built-in telemetry.

Understand the security model
License
MIT. Free to use, modify and self-host.
Deployment
Docker, Docker Compose or a source installation.
Identity
Local accounts, with optional Passkeys, TOTP, OIDC, GitHub App and LDAP / Active Directory.
Trust boundary
The WebSSH server handles credentials and session data. Run it on a trusted host and use HTTPS for remote browser access.

Before your first connection

A few useful answers.

What is WebSSH?

WebSSH is the MIT-licensed project maintained at bifrost0x/webssh: a self-hosted browser workspace for SSH terminals, SFTP files, saved connections and server administration. You install it on your own infrastructure and access that instance in a browser.

Is WebSSH free? Do I need a cloud account?

The software is free under the MIT license. You provide the infrastructure and pay any hosting costs. A hosted WebSSH subscription or account is not required. This website does not host SSH sessions.

Can I use it from a phone or another computer?

Yes. The responsive browser interface includes a mobile terminal workspace. Your device must be able to reach your WebSSH instance. Use a trusted network or VPN, or a properly configured HTTPS deployment for remote access.

Will my shell survive closing the browser?

Persistent shells use tmux on the remote server. With tmux available and persistence enabled for the session, you can return to the remote shell after reconnecting. Ordinary SSH sessions do not provide that guarantee, and browser sign-in still expires independently.

Can I expose the quickstart directly to the Internet?

The local quickstart is for evaluation. Internet-facing deployments require the production overlay, HTTPS, an exact browser origin, a restricted backend and an administrator created from the trusted host. See the production deployment path.

Where can I find documentation or get in touch?

Start with the documentation, check releases, or discuss ideas on GitHub Discussions. For project questions, email hi@getwebssh.com. For suspected vulnerabilities, follow the private reporting policy.

Ready when you are

Bring your own servers.

Start locally, explore the workspace and choose the deployment that fits.

Start with Docker