Web-based SSH terminal that works behind any reverse proxy
Project description
Torrus
A web-based SSH terminal that works behind any reverse proxy. Install it, run it, use it.
Features
- Web-based SSH terminal with full xterm.js emulation
- Multi-tab support — open multiple SSH sessions side by side, close all at once
- Tab management — right-click to rename, clone, duplicate, or save a tab as a session
- Keyboard shortcuts —
Ctrl+Tnew tab,Ctrl+Wclose tab,Ctrl+Tabcycle tabs,Ctrl+,settings - Saved servers — save, edit, import, and export connection configs
- Works behind reverse proxies — uses Socket.IO for reliable transport
- Session sidebar — quick-connect to saved servers
- LDAP/AD authentication — optional, via ldapgate
Install
pip install torrus
Usage
torrus serve
Opens the terminal in your browser. Connect to any SSH server from there.
Options:
--host TEXT Bind host. [default: 127.0.0.1]
--port INTEGER Bind port. [default: 8080]
--no-browser Don't open the browser automatically.
--ldap-config PATH Path to ldapgate YAML config to enable LDAP authentication.
LDAP Authentication
Torrus can require users to log in via LDAP/AD before accessing the terminal. This uses ldapgate as FastAPI middleware — no separate proxy process needed.
pip install 'torrus[ldap]'
torrus serve --ldap-config /path/to/ldapgate.yaml
When LDAP is enabled, a logout button appears in the top-right corner of the tab bar.
See the ldapgate README for config file documentation.
Development
Requires uv.
git clone https://github.com/anudeepd/torrus
cd torrus
uv sync
make dev
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file torrus-0.1.9.tar.gz.
File metadata
- Download URL: torrus-0.1.9.tar.gz
- Upload date:
- Size: 562.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"CachyOS Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c568af0589484baea2b004da3b480a50801fe211ebbeea6dac5d7b6b3f3f9d1
|
|
| MD5 |
c149a296267058b0ab7c1bbf834c42e2
|
|
| BLAKE2b-256 |
91779a9351ed634140c811715af0174577260406e1bf947cfdecba9818524ba5
|
File details
Details for the file torrus-0.1.9-py3-none-any.whl.
File metadata
- Download URL: torrus-0.1.9-py3-none-any.whl
- Upload date:
- Size: 554.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"CachyOS Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
515198eb2ed85aa8acfe6ffeeccd4dee1ee83ce98e35866ae88dfb46015c1cb2
|
|
| MD5 |
e56bf830828c00ed0d885429f6c162d7
|
|
| BLAKE2b-256 |
0cc4329c2e00abba14ee3e7cf9e9716fa5c499b30f55f7f6bd6e803bab07010e
|