---
title: "Deploy Ubuntu"
description: "Ubuntu desktop Pro Stack: private XFCE, persistent home and backups."
category: "Other"
url: https://railway.com/deploy/ubuntu-2
---

# Deploy Ubuntu

Ubuntu desktop Pro Stack: private XFCE, persistent home and backups.

**[Deploy Ubuntu on Railway](https://railway.com/template/ubuntu-2)**

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

- **Creator:** Xav's Projects
- **Category:** Other
- **Total deploys:** 3

## Template content

### Ubuntu Desktop https://devicons.railway.com/i/ubuntu.svg

- **Source:** https://github.com/XavTo/Railway-Desktop-Pro
- **Health check:** /healthz
- **Public domain:** Yes

## Documentation

# Deploy and Host Ubuntu Pro Stack on Railway

Deploy a **private Ubuntu 24.04 XFCE desktop in your browser**. This Ubuntu template includes a persistent home volume, generated login, HTTPS through Railway, native noVNC access, a file download folder, and daily plus weekly volume backup schedules. No GPU, external database or API key is required.

## About Hosting Ubuntu

Ubuntu is a Linux distribution suitable for command-line tools and desktop applications. This template runs an Ubuntu container with the XFCE desktop and TigerVNC/noVNC, so you can open a Linux workstation from an ordinary web browser. This is an Ubuntu desktop container, not a full virtual machine or a systemd host.

### First connection

1. Deploy the template and wait for the real desktop healthcheck to pass.
2. Open the generated HTTPS domain.
3. Sign in with `CUSTOM_USER` (default `admin`) and the generated `PASSWORD` in Railway Variables.
4. Your Ubuntu desktop connects automatically. The home directory is `/config`.

The web password is required and generated automatically; no manual signup or third-party credentials are needed. Set a strong replacement of at least 16 characters in Railway Variables if desired. Do not expose the internal VNC or WebSocket ports.

## Why Deploy Ubuntu on Railway?

This community Pro Stack adds practical hosting features to an Ubuntu desktop:

- One service and one persistent volume, with no database to maintain.
- A unique generated password; authenticated desktop, client assets, WebSockets and file downloads.
- A complete persistent home at `/config` for files, dotfiles and XFCE preferences.
- `/config/Downloads` is also available through the authenticated `/files/` page.
- Daily and weekly Railway volume backups configured in the template.
- CPU rendering and WebSocket transport through the same HTTPS domain.
- Readiness checks the X display and XFCE session as well as required processes and internal ports.
- Process supervision and orderly shutdown compatible with Railway's own init process.
- An immutable upstream image digest; Ubuntu packages installed during the build receive repository updates.

The service and template both use the Ubuntu icon. Documentation and source are available at [Railway Desktop Pro](https://github.com/XavTo/Railway-Desktop-Pro).

## Common Use Cases

- A private remote Ubuntu desktop for lightweight development tools.
- A browser-accessible Linux terminal and graphical file manager.
- Learning or testing Ubuntu software in a disposable container with persistent files.
- Keeping a small personal Linux workspace available across devices.

## Dependencies for Ubuntu

- One Railway Dockerfile service, rooted at `/ubuntu` in the source repository.
- One persistent volume mounted at `/config`.
- The generated `PASSWORD`, `CUSTOM_USER` and `PORT=3000` variables.
- A Railway plan with enough memory; allow about 1–2 GB for normal desktop use, more for heavy applications.

### Deployment Dependencies

- [Source and Dockerfile](https://github.com/XavTo/Railway-Desktop-Pro/tree/main/ubuntu)
- [Accetto Ubuntu/XFCE image source](https://github.com/accetto/ubuntu-vnc-xfce-g3)
- [TigerVNC](https://tigervnc.org/)
- [noVNC](https://github.com/novnc/noVNC)

### What survives a restart or redeploy?

Files and settings under `/config` persist. Programs installed into the system filesystem with apt, running processes and anything outside that volume are ephemeral. Add permanent system packages in the Dockerfile. Keep one replica per volume.

### Can I use sudo?

Yes. Desktop applications run as `headless` (UID 1001). The generated web password can also be used for sudo in the private desktop. System changes still disappear when the container is replaced unless included in the Dockerfile.

### Is this an RDP server or a full Ubuntu VM?

No. It is an XFCE desktop container streamed with noVNC over HTTPS/WebSockets. It does not require or expose RDP, public VNC, privileged Docker mode or a GPU. Independent user desktops, systemd, audio/video conferencing and GPU workloads are outside this template's scope.

### How do I change the display size?

Use noVNC's remote resizing control, or set `VNC_RESOLUTION` in Railway Variables. The startup resolution defaults to 1440x900 and accepts 800x600 through 2560x1440.

### Are costs and availability guaranteed?

Railway bills compute, storage, networking and backups under its normal terms. A successful test is not a guarantee that future deployments or third-party package repositories will never fail. Keep backups and review updates before changing a working installation.

Community-maintained packaging, not affiliated with Canonical, Accetto or Railway.


## 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/ubuntu-2
