GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - ekzhang/sshx: Fast, collaborative live terminal sharing over the web

BranchesTags
Open more actions menu

Latest commit

 

History

319 Commits
319 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
crates
crates
 
 
scripts
scripts
 
 
src
src
 
 
static
static
 
 
.dockerignore
.dockerignore
 
 
.editorconfig
.editorconfig
 
 
.eslintrc.cjs
.eslintrc.cjs
 
 
.gitignore
.gitignore
 
 
.prettierrc
.prettierrc
 
 
Cargo.lock
Cargo.lock
 
 
Cargo.toml
Cargo.toml
 
 
Cross.toml
Cross.toml
 
 
Dockerfile
Dockerfile
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
compose.yaml
compose.yaml
 
 
fly.toml
fly.toml
 
 
mprocs.yaml
mprocs.yaml
 
 
package-lock.json
package-lock.json
 
 
package.json
package.json
 
 
postcss.config.cjs
postcss.config.cjs
 
 
rustfmt.toml
rustfmt.toml
 
 
svelte.config.js
svelte.config.js
 
 
tailwind.config.cjs
tailwind.config.cjs
 
 
tsconfig.json
tsconfig.json
 
 
vite.config.ts
vite.config.ts
 
 

Repository files navigation

sshx

A secure web-based, collaborative terminal.

Features:

  • Run a single command to share your terminal with anyone.
  • Resize, move windows, and freely zoom and pan on an infinite canvas.
  • See other people's cursors moving in real time.
  • Connect to the nearest server in a globally distributed mesh.
  • End-to-end encryption with Argon2 and AES.
  • Automatic reconnection and real-time latency estimates.
  • Predictive echo for faster local editing (à la Mosh).

Visit sshx.io to learn more.

Installation

Just run this command to get the sshx binary for your platform.

curl -sSf https://sshx.io/get | sh

Supports Linux and MacOS on x86_64 and ARM64 architectures, as well as embedded ARMv6 and ARMv7-A systems. The Linux binaries are statically linked.

For Windows, there are binaries for x86_64, x86, and ARM64, linked to MSVC for maximum compatibility.

If you just want to try it out without installing, use:

curl -sSf https://sshx.io/get | sh -s run

Inspect the script for additional options.

You can also install it with Homebrew on macOS.

brew install sshx

CI/CD

You can run sshx in continuous integration workflows to help debug tricky issues, like in GitHub Actions.

name: CI
on: push

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      # ... other steps ...

      - run: curl -sSf https://sshx.io/get | sh -s run
      #      ^
      #      └ This will open a remote terminal session and print the URL. It
      #        should take under a second.

We don't have a prepackaged action because it's just a single command. It works anywhere: GitLab CI, CircleCI, Buildkite, CI on your Raspberry Pi, etc.

Be careful adding this to a public GitHub repository, as any user can view the logs of a CI job while it is running.

Development

Here's how to work on the project, if you want to contribute.

Building from source

To build the latest version of the client from source, clone this repository and run, with Rust installed:

cargo install --path crates/sshx

This will compile the sshx binary and place it in your ~/.cargo/bin folder.

Workflow

First, start service containers for development.

docker compose up -d

Install Rust 1.70+, Node v18, NPM v9, and mprocs. Then, run

npm install
mprocs

This will compile and start the server, an instance of the client, and the web frontend in parallel on your machine.

Deployment

I host the application servers on Fly.io and with Redis Cloud.

Self-hosted deployments are not supported at the moment. If you want to deploy sshx, you'll need to properly implement HTTP/TCP reverse proxies, gRPC forwarding, TLS termination, private mesh networking, and graceful shutdown.

Please do not run the development commands in a public setting, as this is insecure.

About

Fast, collaborative live terminal sharing over the web

sshx.io

Topics

collaborativerustsharesshterminalttyweb

Resources

Readme
MIT license
Activity

Stars

7.7k stars

Watchers

34 watching

Forks

318 forks
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.