Self-hosted edition
System requirements
ORDSwatch self-hosted has two parts: the ORDSwatch server (web dashboard, alerting, license) and an agent on each server running Oracle REST Data Services (ORDS). Both install from RPM packages that contain everything they need — no Node.js, npm, Java or other runtime has to be installed, and an existing Node.js on the machine is never used or changed.
Verified on clean RHEL 8.10 and RHEL 9 systems (Red Hat UBI with systemd), October 2026.
ORDSwatch server — ords-monitor RPM
| Operating system | RHEL, Oracle Linux, Rocky Linux or AlmaLinux 8 or 9, x86_64 (glibc 2.28 or later), with systemd |
| CPU | 1 vCPU (2 recommended above ~20 monitored instances) |
| Memory | 74 MB measured idle right after install; allow 1 GB free for production use |
| Disk | ~90 MB for the program; 1 GB recommended for data (/var/lib/ords-monitor) and logs |
| Runs as | Its own unprivileged ords-monitor account (created by the package) |
| Listens on | TCP 3000 (PORT in /etc/ords-monitor/ords-monitor.env) — browsers and agents connect here |
| Outbound | HTTPS to the license server (devapex.cinnamonsservices.com:443): activation at start, a check every 12 h; it keeps running for 48 h if the license server is unreachable |
| Browser | Current Chrome, Edge, Firefox or Safari |
HTTPS: the server speaks plain HTTP on its port. For production, put it
behind your existing reverse proxy (nginx, Apache httpd, a load balancer) with
TLS, forwarding X-Forwarded-Proto; sign-in works on both.
Firewall: firewall-cmd --add-port=3000/tcp --permanent && firewall-cmd --reload
(or open only the reverse proxy's port).
First start: sudo dnf install ./ords-monitor-*.rpm starts the service and
prints the address (http://<server>:3000/setup) and a one-time setup code. The setup
wizard registers your license — a free key by email (one installation per key)
or a paid key — and creates the first administrator.
Agent — ords-agent package, on each Oracle REST Data Services (ORDS) server
| Operating system | Same family as the server: RHEL / Oracle Linux / Rocky / AlmaLinux 8 or 9, x86_64, systemd |
| Footprint | One 5 MB program, a few MB of memory |
| Runs | as the OS user that owns ORDS — the installer picks oracle when that user exists, otherwise a dedicated ords-agent account (never root) |
| Network | Outbound only: a WebSocket to the ORDSwatch server (wss://<server>/…/agent-ws). No inbound port on the ORDS host. |
Needs on the monitored host:
- ORDS 22.1 or later (the
ordscommand line with--config) running standalone (Jetty) for start/stop/restart; ORDS deployed in Tomcat/WebLogic is monitored but its lifecycle stays with the application server - Read access to the ORDS configuration directory and log directory (the agent runs as their owner)
bash(installed by the package as a dependency)- Optional — Metrics and Web Services: the ORDS Instance API, which ORDSwatch can enable for you (Settings → Instances → "Enable metrics"; requires an ORDS restart)
Tested: RHEL 8.10 and RHEL 9 (UBI), installed with the monitor on the same host.
SELinux
Leave SELinux enforcing — nothing needs to be disabled, and no extra
policy package is required. The server and the agent are ordinary programs in
/usr/bin started by systemd, which RHEL's targeted policy runs in the
unconfined_service_t domain; what they can reach is limited by the
account each runs as (see Runs as above).
The one setting you may need is for a reverse proxy. If nginx or Apache httpd forwards HTTPS traffic to the ORDSwatch server, SELinux blocks the web server's outgoing connection to port 3000 by default (the browser shows 502 Bad Gateway). Allow it once:
sudo setsebool -P httpd_can_network_connect 1
To check for SELinux denials: sudo ausearch -m avc -ts recent.
Not supported yet
- Air-gapped installations — the server must reach the license server (first activation, and at least once every 48 h).
- ARM (aarch64), other Linux families as packages (Debian/Ubuntu), Windows.