Deploy Ubuntu 24.04 Web Terminal

Ubuntu 24.04 LTS ttyd box with generated password, /data, HTTP healthcheck

Deploy Ubuntu 24.04 Web Terminal

Just deployed

/data

Deploy and Host Ubuntu 24.04 Web Terminal on Railway

Ubuntu 24.04 LTS in the browser via pinned ttyd. Railway generates a password, mounts /data as a real volume, and probes /health. This is the persistence-first replacement for rotting Ubuntu-in-browser clones (Ubuntu 22.04 + ttyd 1.7.3, no volume, default password).

No SSH daemon, no TCP/22, no PermitRootLogin, no nmap.

About Hosting Ubuntu 24.04 Web Terminal

The image is Ubuntu 24.04 LTS pinned by digest. PID 1 is tini. ttyd 1.7.7 is checksum-verified (not ancient 1.7.3). HTTP basic auth is required: username ubuntu, password from generated TERMINAL_PASSWORD. nginx only fronts local ttyd so /health can return 200 without unlocking the shell. It is not an open internet proxy.

One-click deploy:

  1. Click Deploy on this template.
  2. Copy TERMINAL_PASSWORD from the service Variables tab (${{secret()}}).
  3. Open the public HTTPS domain. The browser shows HTTP basic auth.
  4. Log in as ubuntu with the generated password.
  5. Your shell starts in /data, which is the mounted volume.

Variables

NameRequiredDefaultNotes
TERMINAL_PASSWORDyes${{secret()}}Generated secret. There is no default password. The container refuses to boot if this is empty or password.
TTYD_USERnoubuntuOptional HTTP basic-auth username override.
PORTset by Railway8080Public HTTP port. Do not change.

Volume

MountPurpose
/dataPersistent workspace and HOME. Files here survive redeploys.

apt-get packages live in the container filesystem: they last until the next image rebuild, not across template upgrades. Keep work product in /data.

Ports

PortPublicService
$PORT (HTTP/HTTPS)yesttyd web terminal + /health
22 / TCPnoNot exposed. sshd is not installed.

Login

# Healthcheck (no auth)
curl -fsS https:///health

# Auth challenge / login prompt
curl -I https:///

A 401 with WWW-Authenticate on / is expected until you send ubuntu / TERMINAL_PASSWORD. After login you get Ubuntu 24.04 bash with git, python3, pip, venv, curl, and ca-certificates.

Railway probes GET /health, which returns 200 ok without credentials so the deployment can pass health while the terminal stays locked.

Why this listing is healthier

Typical rotting cloneThis template
Base imageUbuntu 22.04, often unpinnedUbuntu 24.04 LTS pinned by digest
ttyd1.7.31.7.7, checksum-verified
Passworddefault passwordrequired, generated ${{secret()}}
Diskephemeralvolume at /data
HealthmissingHTTP /health
Process 1ad-hoctini
SSHsometimes sshd + TCP/22none

Common Use Cases

  • A persistent Ubuntu workspace in the browser for diagnostics and small scripts.
  • A throwaway-but-sticky Linux box without exposing SSH or TCP/22.
  • Replacing Ubuntu-Linux / ttyd 1.7.3 marketplace clones that lose files on redeploy.

Dependencies for Ubuntu 24.04 Web Terminal Hosting

  • Ubuntu 24.04 LTS (pinned digest).
  • ttyd 1.7.7 from the upstream GitHub release (checksum-verified).
  • tini as PID 1.
  • A Railway volume mounted at /data.
  • A public HTTP domain for ttyd.

Deployment Dependencies

Why Deploy Ubuntu 24.04 Web Terminal on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Ubuntu 24.04 Web Terminal on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


Template Content

More templates in this category

View Template
Rocky Linux
Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
47
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
71
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
51