Deploy Wetty
Wetty | Production Self-Hosted Stack deployment stack
Just deployed
Deploy and Host WeTTY on Railway
WeTTY (Web + TTY) is an open-source browser-based terminal emulator (3,700+ ★) built on xterm.js and WebSockets. It provides full interactive terminal and SSH access over HTTP/HTTPS directly in any modern web browser without requiring local SSH clients or desktop tools.
This 1-click verified deployment template provisions WeTTY on Railway as a lightweight, zero-ops container behind Railway's native TLS edge proxy, eliminating the need for manual Nginx or Traefik reverse-proxy configuration.
About Hosting WeTTY
This deployment stack provisions an isolated Node.js web terminal service (wetty) with automated SSL edge termination and WebSocket proxying:
- Browser Terminal Engine (
wetty): Runswettyoss/wetty:lateston port3000, serving thexterm.jsweb interface and handling bi-directional WebSocket terminal streams. - Native Edge TLS: Railway's edge proxy automatically terminates HTTPS and upgrades WebSocket connections directly to the container, with
ALLOWEDORIGINSpre-wired to your Railway public domain.
Why Deploy WeTTY on Railway?
- 1-Click Verified Setup: Instant deployment without configuring Nginx, Traefik, or SSL certificates manually.
- Pre-Wired CORS & WebSocket Security:
ALLOWEDORIGINSautomatically binds tohttps://${{RAILWAY_PUBLIC_DOMAIN}}for strict origin validation. - Private Mesh Connectivity: Reach internal Railway services over
.railway.internalhostnames or connect to external hosts over SSH. - Custom Domains & SSL: Built-in SSL encryption with custom domain routing out of the box.
Common Use Cases
- Browser-Based SSH Gateway: Access remote Linux servers, cloud VMs, or homelab machines securely from any browser (including mobile devices and restricted corporate networks).
- Internal Service Administration: Connect to private Railway workloads or jump hosts via private networking without exposing SSH ports to the public internet.
- Zero-Install Developer Terminal: Provide quick, ephemeral web terminal access for teams, labs, or workshops.
Dependencies for WeTTY Hosting
- Container Workload (
wetty): The primary WeTTY Node.js web and WebSocket server (wettyoss/wetty:latest).
Configuration & Environment Variables
| Variable | Default Value | Description |
|---|---|---|
PORT | 3000 | Internal HTTP/WebSocket listening port mapped automatically by Railway edge routing. |
BASE | / | Base URL path where the WeTTY terminal UI is served. |
NODE_ENV | production | Node.js runtime environment mode. |
TITLE | WeTTY - Web Terminal | Browser tab title displayed in the web terminal interface. |
SSHHOST | localhost | Target SSH hostname or IP address to connect to (update to your target server or private .railway.internal host). |
SSHPORT | 22 | Target SSH server port. |
SSHAUTH | password | SSH authentication method (password, publickey,password, or publickey). |
ALLOWEDORIGINS | https://${{RAILWAY_PUBLIC_DOMAIN}} | Allowed CORS/WebSocket origins, auto-wired to your Railway domain. |
SSHUSER | (optional) | Pre-fill a default SSH username when connecting. |
First-Time Setup & Onboarding
- Deploy the template on Railway.
- In your Railway service's Variables tab, set
SSHHOST(and optionallySSHUSER/SSHPORT) to the server you want to connect to. - Open the public domain generated for your deployment (
https://.up.railway.app). - Authenticate at the terminal prompt to start your interactive browser SSH session.
Verified and maintained by VerifiedStacks.
Template Content
BASE
PORT
TITLE
SSHAUTH
SSHHOST
SSHPORT
HOSTNAME
NODE_ENV
