Ubuntu Desktop
Full Ubuntu Linux desktop accessible from your browser
A complete Ubuntu Linux desktop environment, accessible from your browser and backed by remote compute. The desktop (Openbox, a taskbar, a terminal, and a file manager) runs over TurboVNC and is served in the browser through noVNC.
This image is also the base other desktop and GUI workflows build on.
Usage
1. Deploy
dxflow workflow create --identity ubuntu hub://ubuntu
# Start with defaults, or tune per run with --override
dxflow workflow start ubuntu
dxflow workflow start ubuntu \
--override env.app.VNC_PASSWORD=my-strong-pass \
--override env.app.TASKBAR=hide
# Publish the web port on an HTTPS link
dxflow workflow start ubuntu --link
2. Open the desktop
Open your browser at http://localhost:6082/vnc.html and enter the password you set in VNC_PASSWORD. Port 5901 is also exposed for connecting a native VNC client. A start given --link publishes port 6082 at an HTTPS URL printed on the start line — open it at /vnc.html to reach the desktop from anywhere.
3. Persist data
Anything under /volume persists across restarts — mount a local directory there to keep your files and app state.
Configuration
name: ubuntu
tags:
- desktop
steps:
- name: app
runtime: docker
mode: parallel
image: ghcr.io/dxflow-ai/ubuntu:latest
volumes:
- name: volume
host: ./volume
container: /volume
ports:
- name: web
host: "6082"
container: "6082"
- name: vnc
host: "5901"
container: "5901"
- name: audio
host: "6100"
container: "6100"
env:
- VNC_PASSWORD=dxflow
- WALLPAPER=show
- PANEL=show
- TASKBAR=show
- AUDIO=off
- AUDIO_PORT=6100
- AUDIO_CHANNELS=1
- AUDIO_RATE=22050
resources:
cpu: "2"
memory: 4G
link: web
[volume]
app.volume = ./volume
[port]
app.web = 6082
app.vnc = 5901
app.audio = 6100
[env]
app.VNC_PASSWORD = dxflow
app.WALLPAPER = show
app.PANEL = show
app.TASKBAR = show
app.AUDIO = off
app.AUDIO_PORT = 6100
app.AUDIO_CHANNELS = 1
app.AUDIO_RATE = 22050
[resource]
app.cpu = 2
app.memory = 4G
{
"arch": ["amd64", "arm64"],
"image": "ghcr.io/dxflow-ai/ubuntu:latest",
"version": "22.04",
"minimum": {
"cpu": 2,
"memory": "2G",
"storage": "20G"
}
}
Notes
- Set a strong
VNC_PASSWORD; it defaults todxflow, which every reader of this page knows. - Display options:
WALLPAPER,PANEL, andTASKBAR(eachshoworhide) toggle the wallpaper, window decorations, and taskbar. - Audio: off by default. Set
AUDIO=onto stream desktop sound to the browser; tune withAUDIO_CHANNELS(1 or 2) andAUDIO_RATE(8000/16000/22050/32000/44100). The client opens the stream on the page hostname atAUDIO_PORT(default6100), so to run two desktops on one host give each its own port by settingAUDIO_PORTand the matchingaudioport mapping together.AUDIO_URLnames the address instead, which is what a deployment publishing the stream elsewhere hands the client. - Browsers keep sound muted until the page sees a gesture, so audio begins at the first click or keystroke in the desktop.