What is Showroom?

Showroom is a web-based lab instruction platform for the Red Hat Demo Platform. It combines rendered AsciiDoc content with embedded terminals, consoles, and interactive tools — giving workshop and demo participants everything they need in a single browser tab.

What Users See

When a participant opens their Showroom URL they get a split-pane interface:

  • Left pane — step-by-step lab instructions rendered from an Antora site you author in AsciiDoc.

  • Right pane — one or more tabs such as:

    • A web terminal (SSH to a bastion, containerised CLI tools, or both).

    • The OpenShift web console embedded in an iframe.

    • A VS Code editor (Code Server).

    • A VNC desktop (noVNC).

    • Any external URL you choose.

The UI layout, tab names, and tab URLs are all controlled by a simple ui-config.yml file that lives in your content repository.

How It Gets Deployed

This Ansible collection — agnosticd.showroom — is the primary way Showroom instances are deployed on the Red Hat Demo Platform. Depending on the environment type, you use one of two roles:

Role Use when…​

ocp4_workload_showroom

Your lab runs on an OpenShift 4 cluster. The role deploys Showroom as a pod using a Helm chart, complete with content rendering, terminals, and an OpenShift Route.

vm_workload_showroom

Your lab runs on a VM (RHEL, Fedora, etc.). The role deploys Showroom with rootless Podman, Traefik for TLS, and systemd for lifecycle management.

Both roles follow the same basic flow:

  1. Clone your Antora content repository.

  2. Inject runtime variables (credentials, hostnames, GUIDs) as AsciiDoc attributes.

  3. Render the content to HTML.

  4. Serve the content alongside the terminal and tab services you configured.

  5. Publish the final URL back to the user.

Key Concepts

Content repository

A Git repo containing your AsciiDoc lab instructions, structured as an Antora component. You typically fork showroom_template_nookbag and add your own pages. See Creating a Content Repository.

AgnosticV catalog item

The YAML configuration in the agnosticv repository that ties your content repo to an environment on the Red Hat Demo Platform. See AgnosticV Configuration.

User data

A set of key-value pairs (hostnames, passwords, URLs) written by infrastructure roles during provisioning and automatically injected into your content as Antora attributes. See User Data and Variables.

UI configuration

A ui-config.yml file in your content repo that defines the tabs, layout width, and dynamic URLs shown alongside your lab instructions. See UI Configuration.

Where to Start

Goal Page

Get a Showroom lab running quickly

Quick Start

Create or structure a content repo

Creating a Content Repository

Wire up an AgnosticV catalog item

AgnosticV Configuration

Understand the full architecture

Architecture

Contribute to Showroom itself

Contributing