XFCE Container

Vanilla XFCE desktop container for Computer-Using Agents

Vanilla XFCE desktop container for Computer-Using Agents (Cua) with noVNC and computer-server. This is a lightweight alternative to the Kasm-based container with minimal dependencies.

Features

  • Ubuntu 22.04 (Jammy) with vanilla XFCE desktop environment
  • TigerVNC server for remote desktop access
  • noVNC for web-based VNC access (no client required)
  • Pre-installed computer-server for remote computer control
  • Python 3.11 with necessary libraries
  • Firefox browser with telemetry disabled

Quick Start

docker pull trycua/cua-xfce:latest

docker run --rm -it \
  --shm-size=512m \
  -p 5901:5901 \
  -p 6901:6901 \
  -p 8000:8000 \
  trycua/cua-xfce:latest

Access Points:

  • noVNC Web Interface: http://localhost:6901 (no password required)
  • VNC Client: localhost:5901 (no password required)
  • Computer Server API: http://localhost:8000

With Custom Resolution

docker run --rm -it \
  --shm-size=512m \
  -p 6901:6901 \
  -p 8000:8000 \
  -e VNC_RESOLUTION=1280x720 \
  trycua/cua-xfce:latest

With Persistent Storage

docker run --rm -it \
  --shm-size=512m \
  -p 6901:6901 \
  -p 8000:8000 \
  -v $(pwd)/storage:/home/cua/storage \
  trycua/cua-xfce:latest

Using with Cua

from computer import Computer

computer = Computer(
    os_type="linux",
    provider_type="docker",
    image="trycua/cua-xfce:latest",
    display="1024x768",
    memory="4GB",
    cpu="2"
)

async with computer:
    screenshot = await computer.interface.screenshot()
    await computer.interface.left_click(100, 100)
    await computer.interface.type_text("Hello from Cua!")

Configuration

Environment Variables

VariableDefaultDescription
VNC_RESOLUTION1024x768Screen resolution
VNC_COL_DEPTH24Color depth
VNC_PORT5901VNC server port
NOVNC_PORT6901noVNC web interface port
API_PORT8000Computer-server API port

Ports

  • 5901: TigerVNC server
  • 6901: noVNC web interface
  • 8000: Computer-server WebSocket API

Volumes

  • /home/cua/storage: Persistent storage mount point
  • /home/cua/shared: Shared folder mount point

User Credentials

  • Username: cua
  • Password: password (for shell login only)
  • Sudo access: Enabled without password

Creating Snapshots

docker commit <container_id> cua-xfce-snapshot:latest

Comparison with Kasm Container

FeatureKasm ContainerXFCE Container
Base ImageKasmWeb UbuntuVanilla Ubuntu
VNC ServerKasmVNCTigerVNC
DependenciesHigherLower
SizeLargerSmaller

Building from Source

To build the image manually, see the xfce source code.

Was this page helpful?