Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Eugeny/tabby-web
Tabby Web - an SSH/Telnet/Serial client in your browser.
https://github.com/Eugeny/tabby-web
Last synced: about 1 month ago
JSON representation
Tabby Web - an SSH/Telnet/Serial client in your browser.
- Host: GitHub
- URL: https://github.com/Eugeny/tabby-web
- Owner: Eugeny
- License: mit
- Created: 2021-06-12T11:05:44.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-12-30T16:09:22.000Z (12 months ago)
- Last Synced: 2024-08-01T13:37:41.600Z (4 months ago)
- Language: Python
- Homepage: https://tabby.sh
- Size: 9.17 MB
- Stars: 774
- Watchers: 7
- Forks: 120
- Open Issues: 61
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - Eugeny/tabby-web - Tabby Web - an SSH/Telnet/Serial client in your browser. (Python)
- awesome-starred - Eugeny/tabby-web - Tabby Web - an SSH/Telnet/Serial client in your browser. (others)
README
# Tabby Web
![](docs/screenshot.png)
This is the Tabby terminal, served as a web app. It also provides the config sync service for the Tabby app.
# How it works
Tabby Web serves the [Tabby Terminal](https://github.com/Eugeny/tabby) as a web application while managing multiple config files, authentication, and providing TCP connections via a [separate gateway service](https://github.com/Eugeny/tabby-connection-gateway).
# Requirements
* Python 3.7+
* A database server supported by Django (MariaDB, Postgres, SQLite, etc.)
* Storage for distribution files - local, S3, GCS or others supported by `fsspec`# Quickstart (using `docker-compose`)
You'll need:
* OAuth credentials from GitHub, GitLab, Google or Microsoft for authentication.
* For SSH and Telnet: a [`tabby-connection-gateway`](https://github.com/Eugeny/tabby-connection-gateway) to forward traffic.
* Docker BuildKit: `export DOCKER_BUILDKIT=1````bash
docker-compose up -e SOCIAL_AUTH_GITHUB_KEY=xxx -e SOCIAL_AUTH_GITHUB_SECRET=yyy
```will start Tabby Web on port 9090 with MariaDB as a storage backend.
For SSH and Telnet, once logged in, enter your connection gateway address and auth token in the settings.
## Environment variables
* `DATABASE_URL` (required).
* `APP_DIST_STORAGE`: a `file://`, `s3://`, or `gcs://` URL to store app distros in.
* `SOCIAL_AUTH_*_KEY` & `SOCIAL_AUTH_*_SECRET`: social login credentials, supported providers are `GITHUB`, `GITLAB`, `MICROSOFT_GRAPH` and `GOOGLE_OAUTH2`.## Adding Tabby app versions
* `docker-compose run tabby /manage.sh add_version 1.0.163`
You can find the available version numbers [here](https://www.npmjs.com/package/tabby-web-container).
# Development setup
Put your environment vars (`DATABASE_URL`, etc.) in the `.env` file in the root of the repo.
For the frontend:
```shell
cd frontend
yarn
yarn run build # or yarn run watch
```For the backend:
```shell
cd backend
poetry install
./manage.py migrate # set up the database
./manage.py add_version 1.0.156-nightly.2 # install an app distribution
PORT=9000 poetry run gunicorn # optionally with --reload
```# Security
* When using Tabby Web for SSH/Telnet connectivity, your traffic will pass through a hosted gateway service. It's encrypted in transit (HTTPS) and the gateway servers authenticate themselves with a certificate before connections are made. However there's a non-zero risk of a MITM if a gateway service is compromised and the attacker gains access to the service's private key.
* You can alleviate this risk by [hosting your own gateway service](https://github.com/Eugeny/tabby-connection-gateway), or your own copy of Tabby Web altogether.