---
title: "Deploy Wetty"
description: "Wetty | Production Self-Hosted Stack deployment stack"
category: "Other"
url: https://railway.com/deploy/wetty
---

# Deploy Wetty

Wetty | Production Self-Hosted Stack deployment stack

**[Deploy Wetty on Railway](https://railway.com/template/wetty)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/wetty/manifest.json

- **Creator:** VerifiedStacks's Projects
- **Category:** Other

## Template content

### wetty

- **Image:** wettyoss/wetty:latest
- **Public domain:** Yes

## Documentation

# Deploy and Host WeTTY on Railway

[WeTTY](https://github.com/butlerx/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`):** Runs `wettyoss/wetty:latest` on port `3000`, serving the `xterm.js` web 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 `ALLOWEDORIGINS` pre-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 &amp; WebSocket Security:** `ALLOWEDORIGINS` automatically binds to `https://${{RAILWAY_PUBLIC_DOMAIN}}` for strict origin validation.
- **Private Mesh Connectivity:** Reach internal Railway services over `.railway.internal` hostnames or connect to external hosts over SSH.
- **Custom Domains &amp; 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 &amp; 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 &amp; Onboarding

1. Deploy the template on Railway.
2. In your Railway service's **Variables** tab, set `SSHHOST` (and optionally `SSHUSER` / `SSHPORT`) to the server you want to connect to.
3. Open the public domain generated for your deployment (`https://.up.railway.app`).
4. Authenticate at the terminal prompt to start your interactive browser SSH session.

---
*Verified and maintained by **VerifiedStacks**.*


## Similar templates

- [Rocky Linux](https://railway.com/deploy/rocky-linux) — Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀
- [Foundry Virtual Tabletop](https://railway.com/deploy/X5tR6G) — A Self-Hosted & Modern Roleplaying Platform
- [Letta Code Remote](https://railway.com/deploy/letta-code-remote) — Run a Letta Code agent 24/7. No inbound ports, just deploy.

Open this page in a browser: https://railway.com/deploy/wetty
