MCPSERV.CLUB
Sshwifty

Sshwifty

Self-Hosted

Web-based SSH & Telnet client for instant terminal access

Active(89)
2.9kstars
0views
Updated 17 days ago
Sshwifty screenshot

Overview

Discover what makes Sshwifty powerful

Sshwifty is a browser‑based SSH and Telnet client that runs as a lightweight, self‑hosted web service. From a developer’s perspective it is essentially a **single‑page application (SPA)** backed by a minimal Go server that exposes WebSocket endpoints for terminal multiplexing. The front‑end is built with modern JavaScript (ES6+), leveraging the popular xterm.js library to provide a feature‑rich terminal emulator directly in the browser. The server side is written in Go, which offers strong concurrency primitives and a minimal runtime footprint—ideal for containerized deployments.

WebSocket‑based terminal session

Support for both SSH and Telnet

TLS termination

Container‑friendly

Overview

Sshwifty is a browser‑based SSH and Telnet client that runs as a lightweight, self‑hosted web service. From a developer’s perspective it is essentially a single‑page application (SPA) backed by a minimal Go server that exposes WebSocket endpoints for terminal multiplexing. The front‑end is built with modern JavaScript (ES6+), leveraging the popular xterm.js library to provide a feature‑rich terminal emulator directly in the browser. The server side is written in Go, which offers strong concurrency primitives and a minimal runtime footprint—ideal for containerized deployments.

Key Features

  • WebSocket‑based terminal session: Each SSH/Telnet connection is tunneled over a secure WebSocket, allowing the browser to act as a full‑featured terminal emulator.
  • Support for both SSH and Telnet: The server negotiates the appropriate protocol based on client request, enabling legacy Telnet services to be accessed alongside modern SSH hosts.
  • TLS termination: While the application can terminate TLS internally, it is designed to be placed behind a reverse proxy (Nginx, Traefik) where HTTPS termination is usually preferred.
  • Container‑friendly: Official Docker images are available, and the application can be run directly from a prebuilt binary. The container exposes a single port (8182 by default) and accepts environment variables for TLS certificates, making it easy to integrate into CI/CD pipelines or Kubernetes deployments.

Technical Stack

LayerTechnology
Front‑endHTML5, CSS3, JavaScript (ES6+), xterm.js
Back‑endGo 1.22+, standard library, gorilla/websocket
CommunicationWebSocket (RFC 6455) over HTTPS/TLS
DeploymentDocker, bare‑metal binary, or Kubernetes pod
PersistenceNone – stateless; session data lives in memory

The Go server uses the net and crypto/ssh packages to establish outbound SSH connections, while Telnet support is achieved via a lightweight TCP dialer that forwards raw bytes. No external database or state store is required, which simplifies scaling: multiple instances can be run behind a load balancer with sticky sessions or using WebSocket support for session affinity.

Deployment & Infrastructure

Sshwifty is intentionally minimal to keep resource usage low. A single container consumes <50 MiB of RAM under idle load and scales horizontally by adding replicas behind a reverse proxy. Because the application is stateless, Kubernetes deployments can use standard Deployment resources with a Service exposing port 8182. For environments that require strict isolation, the Docker image can be run with a dedicated user and minimal capabilities. The TLS environment variables (SSHWIFTY_DOCKER_TLSCERT / SSHWIFTY_DOCKER_TLSCERTKEY) allow self‑signed certificates to be injected without mounting host volumes, which is useful for testing or lightweight setups.

Integration & Extensibility

While Sshwifty does not expose a public API beyond the WebSocket endpoint, its open‑source nature allows developers to fork and extend functionality. Custom authentication mechanisms can be added by modifying the Go middleware, and integration with LDAP or OAuth providers is straightforward given Go’s rich ecosystem. The front‑end can be customized by editing the React/Vanilla JS sources or by injecting CSS overrides, enabling branding or feature toggles without changing the server binary.

Developer Experience

The project’s documentation is concise but covers all essential deployment scenarios. Source code follows idiomatic Go patterns, and the build process is straightforward: go build for the backend and npm install && npm run build for the frontend. The community is active on GitHub, with issues and pull requests reflecting real‑world use cases. Licensing (MIT) permits commercial use without attribution, making it a low‑friction choice for internal tooling.

Use Cases

  1. Internal DevOps Tooling – Teams can host a single Sshwifty instance behind their corporate reverse proxy, giving developers browser‑based access to jump hosts and legacy systems without installing local SSH clients.
  2. Remote Education Platforms – Instructors can provide students with a web terminal to access lab environments, simplifying onboarding and reducing client‑side setup.
  3. Edge Device Management – For IoT or embedded devices that expose SSH/Telnet over the network, Sshwifty can be deployed on a gateway to provide a unified web console.
  4. CI/CD Debugging – When debugging container builds, developers can attach a browser terminal to the build environment through Sshwifty, avoiding SSH key management.

Advantages

  • Zero‑config front‑end – No browser plugins or extensions required; works out of the box on modern browsers.
  • Lightweight and fast – Go’s performance ensures low latency even under concurrent load.
  • No external dependencies – Stateless design eliminates the need for databases or message queues, simplifying operations.
  • Open‑source and permissive license – MIT license removes legal hurdles for commercial use.
  • Container‑ready – Official Docker images make deployment in cloud or on-premise trivial.

In summary, Sshwifty offers developers a plug‑and‑play web SSH/Telnet client that is easy to deploy, secure, and highly extensible. Its minimal footprint, combined with a clean Go codebase and a feature‑rich JavaScript front‑end

Open SourceReady to get started?

Join the community and start self-hosting Sshwifty today

Weekly Views

Loading...
Support Us

Featured Project

$30/month

Get maximum visibility with featured placement and special badges

Repository Health

Loading health data...

Information

Category
cloud-platforms
License
AGPL-3.0
Stars
2.9k
Technical Specs
Pricing
Open Source
Database
None
Docker
Official
Supported OS
LinuxWindowsmacOS
Author
nirui
nirui
Last Updated
17 days ago