Deploy Opera
A private Opera cloud browser with remote desktop access
Just deployed
/config
Deploy and Host Opera Browser on Railway
Opera is a Chromium-based web browser known for its customizable interface, built-in productivity tools, sidebar integrations, and browsing features. This Railway template deploys Opera as a persistent cloud browser with remote desktop access, powered by the LinuxServer.io Docker image and Selkies streaming technology, allowing you to access your browser workspace remotely.
About Hosting Opera Browser
Hosting Opera Browser on Railway allows you to run a fully functional desktop browser in the cloud without managing virtual machines, installing a graphical Linux desktop, or maintaining custom Docker repositories.
This template uses the LinuxServer.io Opera Docker image, which integrates Selkies for interactive remote desktop streaming. Railway manages container deployment, public networking, and HTTPS termination, while a persistent volume preserves browser profiles, bookmarks, extensions, and application settings across redeployments.
The deployment supports configurable authentication, desktop hardening, and shared memory allocation. Opera runs as a single containerized service without requiring external databases, making it suitable for remote browsing, web application testing, and cloud-based browser workspaces.
Common Use Cases
- Private Cloud Browser: Maintain a dedicated Opera browsing environment separate from your local device.
- Remote Browser Access: Access Opera through a web browser from laptops, desktops, and supported mobile devices.
- Persistent Browser Sessions: Preserve bookmarks, extensions, preferences, and browsing profiles across deployments.
- Web Application Testing: Test websites and applications using Opera's Chromium-based rendering engine.
- Cloud Productivity Workspace: Access dashboards, web applications, development tools, and productivity services remotely.
- Browser Compatibility Testing: Validate how websites behave in Opera compared with other browsers.
- Remote Desktop Browsing: Interact with a graphical browser environment through Selkies without installing remote desktop software.
Dependencies for Opera Browser Hosting
- Docker Image:
ghcr.io/linuxserver/opera:latest— LinuxServer.io Opera container hosted on GitHub Container Registry. - Selkies: Integrated web-based remote desktop streaming environment.
- Persistent Storage: Railway volume mounted at
/configfor browser profiles and application data. - Shared Memory: Recommended 1 GiB allocation for Chromium-based browser operation.
- Networking: Railway-generated HTTPS domain forwarding to container port
3000.
No PostgreSQL, Redis, or additional database services are required.
Implementation Details
Docker Configuration
| Configuration | Value |
|---|---|
| Docker Image | ghcr.io/linuxserver/opera:latest |
| Service Name | opera |
| HTTP Port | 3000 |
| Internal HTTPS Port | 3001 |
| Public Access | Railway HTTPS Domain |
| Persistent Volume | /config |
| Recommended Starting Memory | 2 GB |
| Shared Memory | 1 GiB |
| Railway Runtime UID | 0 |
| Start Command | Image Default |
| Architecture | AMD64 |
Environment Variables
RAILWAY_RUN_UID=0
RAILWAY_SHM_SIZE_BYTES=1073741824
PUID=1000
PGID=1000
TZ=Asia/Jakarta
PORT=3000
CUSTOM_PORT=3000
CUSTOM_USER=admin
PASSWORD=${{secret(32)}}
HARDEN_DESKTOP=true
DISABLE_SUDO=true
DISABLE_TERMINALS=true
SELKIES_ENABLE_SHARING=false
Environment Configuration Explained
| Variable | Description |
|---|---|
RAILWAY_RUN_UID | Configures Railway to run container initialization using UID 0 |
RAILWAY_SHM_SIZE_BYTES | Allocates up to 1 GiB of shared memory |
PUID / PGID | Defines the application user and group identifiers |
TZ | Configures the container timezone |
PORT | Railway HTTP service port |
CUSTOM_PORT | LinuxServer internal HTTP interface port |
CUSTOM_USER | Configures the web interface login username |
PASSWORD | Generates a unique password during template deployment |
HARDEN_DESKTOP | Enables desktop interface restrictions |
DISABLE_SUDO | Disables passwordless sudo within the desktop environment |
DISABLE_TERMINALS | Disables integrated desktop terminals |
SELKIES_ENABLE_SHARING | Disables remote desktop session-sharing functionality |
The shared memory setting controls the capacity of /dev/shm, not the total RAM allocated to the Railway service.
Persistent Storage
Mount a Railway persistent volume at:
/config
This directory stores Opera browser profiles, bookmarks, extensions, preferences, and local files.
Browser data remains available across service restarts and redeployments as long as the persistent volume is retained.
Accessing Opera Browser
- Deploy the template to your Railway project.
- Open the generated HTTPS domain.
- Enter your configured
CUSTOM_USERandPASSWORD. - Access the Opera desktop through the Selkies interface.
- Customize your persistent Opera browser workspace.
Security Considerations
This template includes configurable login credentials, disabled session sharing, and additional desktop restrictions.
However, the LinuxServer.io desktop interface should not rely solely on HTTP Basic Authentication when exposed to the public internet.
For internet-facing deployments, use a robust authentication gateway, restrict access to trusted users, and apply appropriate network security controls.
Desktop hardening reduces available functionality but does not guarantee complete container isolation.
Resource Recommendations
- Memory: Start with 2 GB and scale based on browser workload.
- Shared Memory: 1 GiB recommended.
- CPU: Start with 1–2 vCPUs.
- Storage: Allocate sufficient persistent storage for browser data and downloads.
- GPU: Not required for standard browsing; CPU rendering is supported.
Why Use Opera Browser?
| Feature | Benefit |
|---|---|
| Chromium-Based Engine | Broad compatibility with modern web applications |
| Customizable Interface | Flexible browser workspace and navigation |
| Sidebar Integrations | Convenient access to supported productivity and communication tools |
| Browser Extensions | Extend functionality with compatible extensions |
| Cloud Browser Access | Access Opera remotely from multiple devices |
| Persistent User Profiles | Preserve bookmarks, settings, and extensions |
| Selkies Remote Desktop | Interactive desktop streaming through a browser |
| LinuxServer.io Docker Image | Containerized distribution with documented configuration |
| No External Database | Simple single-service deployment |
| Railway Integration | Managed deployment, networking, and persistent storage |
Opera Browser vs Alternatives
| Feature | Opera | Google Chrome | Brave | Mozilla Firefox | Microsoft Edge |
|---|---|---|---|---|---|
| Browser Engine | Blink | Blink | Blink | Gecko | Blink |
| Chromium Extension Compatibility | Yes | Yes | Yes | No | Yes |
| Built-in Sidebar Tools | Yes | Limited | Limited | Limited | Yes |
| Built-in Ad Blocking | Yes | Limited | Brave Shields | Extensions | Limited |
| Built-in Tracking Protection | Yes | Configurable | Brave Shields | Enhanced Tracking Protection | Tracking Prevention |
| LinuxServer.io Docker Image | Yes | Yes | Yes | Yes | Yes |
| Selkies Remote Desktop | Yes | Yes | Yes | Yes | Yes |
| Persistent Browser Profiles | Yes | Yes | Yes | Yes | Yes |
| Railway Deployment | Yes | Yes | Yes | Yes | Yes |
Opera is particularly suitable for users who want a Chromium-based browser with a customizable interface, built-in browsing utilities, and convenient productivity features.
Google Chrome emphasizes broad web compatibility, Brave focuses on privacy features, Firefox offers the independent Gecko engine, and Microsoft Edge provides Microsoft's browser experience.
Why Deploy Opera Browser 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 Opera Browser 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
