---
title: "Deploy Chromium"
description: "Chromium browser Pro Stack: remote desktop, persistent profile and backups."
category: "Other"
url: https://railway.com/deploy/chromium-1
---

# Deploy Chromium

Chromium browser Pro Stack: remote desktop, persistent profile and backups.

**[Deploy Chromium on Railway](https://railway.com/template/chromium-1)**

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

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

## Template content

### Chromium https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/chromium-logo.png

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

## Documentation

# Deploy and Host Chromium Pro Stack on Railway

Deploy a **private remote Chromium browser** with a persistent profile, generated password, XFCE desktop, noVNC access and daily plus weekly volume backup schedules. Open your browser in the cloud from any normal web browser; no API key or external database is required.

## About Hosting Chromium

Chromium is the open-source web browser behind Google Chrome. This template runs the maintained Debian security package in a private graphical desktop, with noVNC providing remote keyboard, pointer, resize and clipboard text over Railway HTTPS/WebSockets. It is a visible browser workspace, not a headless automation endpoint.

### First connection

1. Deploy 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. noVNC connects automatically to your remote browser. Chromium starts with an example page.

No browser debugging port, VNC port or second streaming domain needs to be exposed. Keep the generated strong password or set one with at least 16 characters in Railway Variables.

## Why Deploy Chromium on Railway?

This community Pro Stack includes:

- Maintained Chromium packages from Debian's security repository, installed during the build.
- A complete persistent browser profile at `/config/.config/chromium` for bookmarks, history and settings.
- A persistent Downloads folder, also downloadable through the authenticated `/files/` URL.
- A generated login protecting the desktop, noVNC assets, WebSocket endpoint and downloads.
- Daily and weekly Railway volume backup schedules.
- Same-domain HTTPS and WebSocket transport, with internal VNC bound to loopback.
- CPU rendering and shared-memory settings suited to containers.
- A readiness check that verifies the actual display and desktop processes.
- Supervision, orderly shutdown and transient profile-lock recovery across container replacements.
- One service and one volume; no database, GPU or privileged Docker mode required.

The service and marketplace card use a Chromium icon. [Full source](https://github.com/XavTo/Railway-Desktop-Pro/tree/main/chromium) is public.

## Common Use Cases

- A personal remote web browser with a persistent workspace.
- Testing website layout in a separate Linux browser session.
- Resuming a browser workspace from different devices.
- Downloading files into a persistent cloud desktop folder.

## Dependencies for Chromium

- One Railway Dockerfile service, rooted at `/chromium` in the source repository.
- One persistent volume at `/config`.
- `PORT=3000`, `CUSTOM_USER` and the generated `PASSWORD`.
- Sufficient RAM for browser tabs; allow about 1–2 GB for ordinary use and more for heavy pages.

### Deployment Dependencies

- [Source and Dockerfile](https://github.com/XavTo/Railway-Desktop-Pro/tree/main/chromium)
- [Debian Chromium security package](https://packages.debian.org/trixie/chromium)
- [TigerVNC](https://tigervnc.org/)
- [noVNC](https://github.com/novnc/noVNC)

### Will my profile survive a restart or redeploy?

Yes, when the `/config` volume remains attached. The entire home, browser profile, Downloads folder and desktop settings live there. Only the transient singleton links associated with the old container are removed at startup; history and profile databases are preserved. Keep a single replica per volume.

### Is this Google Chrome?

It is Chromium, the open-source browser. It does not include a Chrome account integration promise, a Playwright API or a public Chrome DevTools endpoint.

### Is it a multi-user browser service?

No. This is one private shared graphical session. Anyone with the login controls that session and its saved data. The browser uses `--no-sandbox` for compatibility with the container runtime; use it as a trusted private workstation, not a service for untrusted users. Internal VNC has no second password because it is loopback-only behind the authenticated proxy. Do not publish extra internal ports.

### Can I change the resolution or install tools?

Change the noVNC remote-resize setting or `VNC_RESOLUTION` (1440x900 by default; 800x600 through 2560x1440 at startup). The `headless` user can use sudo with the generated web password. Permanent system packages belong in the Dockerfile; apt changes outside the volume disappear on replacement.

### Are future deployments guaranteed?

No. The template is tested with real browser sessions and persistent data, but availability depends on Railway resources and upstream repositories. Debian packages receive the available repository version when the image is built. Railway compute, storage, networking and backup charges apply.

Community-maintained packaging, not affiliated with Google, Debian 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/chromium-1
