• Stars
    star
    774
  • Rank 58,703 (Top 2 %)
  • Language
    Python
  • License
    MIT License
  • Created over 3 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Tabby Web - an SSH/Telnet/Serial client in your browser.

Tabby Web

👋 Tabby Web is looking for sponsors. As I can't afford to host it myself any longer, I'm looking for a sponsor to cover the hosting costs. If you're interested, please get in touch!

This is the exact code that runs at https://tabby.sh. In fact, it's being deployed straight out of this repository.

You can use this to deploy your own copy or to make improvements - pull requests are welcome!

How it works

Tabby Web serves the Tabby Terminal as a web application while managing multiple config files, authentication, and providing TCP connections via a separate gateway service.

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 to forward traffic.
  • Docker BuildKit: export DOCKER_BUILDKIT=1
    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.

Development setup

Put your environment vars (DATABASE_URL, etc.) in the .env file in the root of the repo.

For the frontend:

cd frontend
yarn
yarn run build # or yarn run watch

For the backend:

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, or your own copy of Tabby Web altogether.

More Repositories

1

tabby

A terminal for a more modern age
TypeScript
57,415
star
2

russh

Rust SSH client & server library
Rust
814
star
3

rust-sinner

Easy c̵̰͠r̵̛̠ö̴̪s̶̩̒s̵̭̀-t̶̲͝h̶̯̚r̵̺͐e̷̖̽ḁ̴̍d̶̖̔ ȓ̵͙ė̶͎ḟ̴͙e̸̖͛r̶̖͗ë̶̱́ṉ̵̒ĉ̷̥e̷͚̍ s̷̹͌h̷̲̉a̵̭͋r̷̫̊ḭ̵̊n̷̬͂g̵̦̃ f̶̻̊ơ̵̜ṟ̸̈́ R̵̞̋ù̵̺s̷̖̅ţ̸͗!̸̼͋
Rust
308
star
4

ajenti-v

Virtual Hosting addon for Ajenti
Python
225
star
5

ajenti

DEPRECATED: Repo moved to https://github.com/ajenti/ajenti (into the `1.x` branch)
Python
209
star
6

reconfigure

Config-file-to-Python mapping library (ORM).
Python
141
star
7

catcher

Beautiful tracebacks for Python
Python
133
star
8

tabby-connection-gateway

Connection gateway for Tabby Web
Python
105
star
9

tabby-docker

Docker plugin for Tabby
TypeScript
46
star
10

instacode

JavaScript
44
star
11

tabby-theme-hype

A Terminus theme that imitates Hyper
SCSS
42
star
12

tabby-save-output

Terminus plugin to save console output into a file
TypeScript
35
star
13

tabby-clickable-links

Plugin that makes URLs and paths in Terminus clickable
TypeScript
35
star
14

macos-native-processlist

NodeJS - native macOS process list loader
C++
22
star
15

windows-native-registry

Native windows registry access for Node
C++
22
star
16

tabby-clippy

An example plugin for Tabby
TypeScript
21
star
17

exconsole

Emergency/postmortem Python console
Python
20
star
18

grip

A better package manager for Python
Python
15
star
19

MyOS

University project
C
10
star
20

terminus-shell-selector

Shell selector popup for Terminus
TypeScript
9
star
21

Labs

Лабораторные
C#
6
star
22

ajenti-customization-demo

Ajenti customization demo
CSS
5
star
23

OldProjects

My old stuff
4
star
24

ORMy

A powerful but lightweight SQLite ORM for Android
Java
4
star
25

awesome-crm

JavaScript
3
star
26

instacode-intellij-plugin

IntelliJ IDEA plugin for instacod.es
Java
3
star
27

fksis-schedule

Java
3
star
28

Cofeepot-Example

HTCPCP example for Ajenti
Python
3
star
29

cargo-llvm-cov-repro

Rust
2
star
30

Defective

A detective game without a detective
C#
2
star
31

Locality

C#
2
star
32

ebank-client

JavaScript
2
star
33

infinity-sampler

Deterministic reservoir sampling for Rust
Rust
2
star
34

shutterspeed2

Rust
2
star
35

eugeny

2
star
36

shutterspeed

super WIP
Rust
1
star
37

terminus-clickable-ips

This plugin makes IPs and file paths in the terminal clickable
TypeScript
1
star
38

native-process-working-directory

C++
1
star
39

car

Python
1
star
40

tabby-events-demo

TypeScript
1
star
41

EscapeFromNewMexico

Escape your sins on a fancy boat for as long as the booze lasts.
C#
1
star
42

angularjs-test-task

JavaScript
1
star
43

loop-bastard

Python
1
star
44

coding-challenge-py

Python
1
star
45

avr-sample

Rust
1
star
46

django-test-task

TSQL
1
star
47

final-master-thesis

TeX
1
star