Renders your existing Phoebus Display Builder files in a browser. No client install, works on phones, and — crucially — the same .bob files as the control room.
Overview: Toolbox → DBWR.
| Source | github.com/ornl-epics/dbwr |
| Origin | ORNL (Kay Kasemir) |
| Training | Display Web Runtime (USPAS) |
.bob files from: a filesystem path, or an HTTP URLgit clone https://github.com/ornl-epics/dbwr.git
cd dbwr
mvn clean package
BUILD SUCCESS leaves target/dbwr.war.
cp target/dbwr.war $CATALINA_HOME/webapps/
tail -f $CATALINA_HOME/logs/catalina.out
Then http://localhost:8080/dbwr.
DBWR needs two things: where PVWS is, and where the display files are. Both are set in its configuration as described in the repository’s README — check there for the current property names, since these have moved between releases.
The essentials:
| Setting | Purpose |
|---|---|
| PVWS URL | Where to get live data. Must be reachable from the browser, not just from Tomcat — this is a common misconfiguration. |
| Display file root | A filesystem path or base URL under which .bob files are found |
| Default display | What loads at the bare URL |
Opening a specific display, with macros:
http://dbwr.example.org:8080/dbwr/view.html?display=/sr/vacuum_cell.bob&CELL=05
Macro arguments in the query string work the same way as they do in Phoebus, which means a single templated display serves twenty cells from twenty URLs.
Keeping display files in git and serving them from a web server (or fetching them from a GitLab/GitHub raw URL) is worth doing:
Phoebus itself can open .bob files over HTTP too, so both runtimes read from exactly the same place.
caput and confirm the browser updates.DBWR supports most widgets and their key features, not all of them. Complex scripted displays, unusual widget properties, and embedded custom rules may not translate.
The practical approach: test the specific displays you care about, and where something doesn’t render, either simplify that display or make a separate web-oriented version. Don’t assume parity, and don’t discover the gap when someone is relying on it remotely.
Same posture as PVWS, because DBWR’s reach is PVWS’s reach:
Browser ──HTTPS──> nginx (TLS + SSO) ──> DBWR + PVWS ──> read-only gateway ──> IOCs
Most facilities end up needing some web view of the machine, and the usual outcome is a second, parallel set of screens that diverges from the control room’s within a year.
DBWR removes that failure mode: one set of .bob files, maintained once, rendered in both places. The on-call engineer at home sees exactly what the operator sees. That property is worth more than the feature list suggests.
→ PV Info, or Gateways to build the boundary these services assume.