Go to file
jasonwitty e2ddc721f2
Some checks failed
Build and Deploy to K3s / build-and-push (push) Successful in 10m3s
Build and Deploy to K3s / deploy (push) Has been cancelled
remove port from registry location, connect over port 443 (default)
2025-11-28 12:10:26 -08:00
.gitea remove port from registry location, connect over port 443 (default) 2025-11-28 12:10:26 -08:00
docker - generally file cleanup and organize. - remove incorrect prompt text. 2025-11-28 10:23:53 -08:00
files Initial commit: Socktop WebTerm with k3s deployment 2025-11-28 01:31:33 -08:00
kubernetes - generally file cleanup and organize. - remove incorrect prompt text. 2025-11-28 10:23:53 -08:00
src Initial commit: Socktop WebTerm with k3s deployment 2025-11-28 01:31:33 -08:00
static Initial commit: Socktop WebTerm with k3s deployment 2025-11-28 01:31:33 -08:00
templates initial checking CICD and remove heart 2025-11-28 11:43:38 -08:00
.dockerignore Initial commit: Socktop WebTerm with k3s deployment 2025-11-28 01:31:33 -08:00
.gitignore switch to https domain name for image registry. 2025-11-28 12:08:24 -08:00
.gitmodules remove vendored stund 2019-06-05 15:54:12 +02:00
Cargo.lock Initial commit: Socktop WebTerm with k3s deployment 2025-11-28 01:31:33 -08:00
Cargo.toml Initial commit: Socktop WebTerm with k3s deployment 2025-11-28 01:31:33 -08:00
docker-compose.yml Initial commit: Socktop WebTerm with k3s deployment 2025-11-28 01:31:33 -08:00
Dockerfile Initial commit: Socktop WebTerm with k3s deployment 2025-11-28 01:31:33 -08:00
LICENSE chore: License under BSD-3-Clause 2019-03-04 08:24:56 +01:00
package-lock.json Initial commit: Socktop WebTerm with k3s deployment 2025-11-28 01:31:33 -08:00
package.json Initial commit: Socktop WebTerm with k3s deployment 2025-11-28 01:31:33 -08:00
README.md Update readme with instructions for run, build, and browser live on 8080 2022-07-26 12:23:46 +02:00

webterm

web terminal based on xterm.js in rust

Screenshot

Is it any good?

Yes.

How does it work?

There is a rust backend based Actix, consisting of two actors:

  • Websocket implements a websocket that speaks the Terminado protocol
  • Terminal handles communication to a child spawned on a PTY using tokio-pty-process.

The frontend is a static HTML page served by actix-web providing an xterm.js UI.

Local development

cargo build
cargo run

Then head to http://localhost:8080/ to see it in action!

Should I run this on the internet?

Probably not. It lets anyone who can access the webpage control your system.