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… |
|---|---|
|
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 |
|
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:
-
Clone your Antora content repository.
-
Inject runtime variables (credentials, hostnames, GUIDs) as AsciiDoc attributes.
-
Render the content to HTML.
-
Serve the content alongside the terminal and tab services you configured.
-
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.ymlfile 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 |
|
Create or structure a content repo |
|
Wire up an AgnosticV catalog item |
|
Understand the full architecture |
|
Contribute to Showroom itself |
Related Projects
-
agnosticd.showroom collection — this Ansible collection (you are here).
-
showroom_template_nookbag — the recommended content repo template.
-
showroom-deployer — Helm charts that power OCP deployments.
-
showroom-images — container images (content server, terminals, Antora, etc.).
-
nookbag — the zero-touch UI bundle.