Skip to content

Docker service implementation to augment any ros2 docker container with a web-based rviz2 visualiser service.

Notifications You must be signed in to change notification settings

LCAS/rviz2xpra_docker

Repository files navigation

Docker XPRA Display for RViz2

Browser-based RViz2 using XPRA HTML5. Works on Windows/macOS/Linux without X11 or VNC clients.

Quick Test

Run locally:

docker compose -f docker-compose.run-without-config.yml up

Running post-workflow:

docker compose -f docker-compose.run-without-config-pull.yml up

Open http://localhost:14500/

Production Use

Copy files to your project:

cp -r rviz-xpra/ /your/project/
cp docker-compose.prod_xpra.yml /your/project/

Edit docker-compose.prod_xpra.yml:

  1. Service name — change your_ros_service to your service name
  2. RViz config path — update volume mount to your config directory:
    volumes:
      - fleet_rviz_config:/your/path/to/rviz/config
  3. Config filename — change your_config.rviz in the command:
    --start-child='rviz2 -d /fleet_config/your_config.rviz'
  4. ROS settings — match your ROS_DOMAIN_ID and network_mode

Run:

docker compose -f docker-compose.prod.yml -f docker-compose.prod_xpra.yml up

Access: http://localhost:14500/

Notes

  • Config persists in rviz_config volume
  • XPRA exits when RViz closes
  • Uses named volume to share config between containers
  • Port 14500 ignored if using network_mode: host

Credits: This documentation and code were developed with assistance from Anthropic's Claude Sonnet 4.5 model via GitHub Copilot.

About

Docker service implementation to augment any ros2 docker container with a web-based rviz2 visualiser service.

Resources

Code of conduct

Stars

Watchers

Forks

Packages

No packages published