What you need
| Operating system | Windows 10/11, Windows Server 2019+, or any modern 64-bit Linux (Ubuntu 20.04+, RHEL/Rocky/Alma 8+) — the same machine your APEX/ORDS mid-tier runs on, or a separate one on the same network. |
|---|---|
| Runtime | Node.js 22.5.0 or later. |
| CPU / RAM | 2 cores / 4 GB RAM minimum. |
| Disk | ~1.5 GB free. |
| Oracle client | None required — connections run in Oracle's thin mode. |
1. Install the runtime
Unpack the installer to any folder on disk and run the provided launch script — it bootstraps its own configuration, installs its dependencies, and starts on first run.
Windows
- Install Node.js 22.5.0+ (
winget install OpenJS.NodeJS.LTS, or the installer from nodejs.org). - Extract ApexReporter Studio to an install folder.
- Open PowerShell there and run
.\start.ps1.
Linux
- Install Node.js 22.5.0+ (NodeSource repository recommended over an older distro-bundled version).
- Extract ApexReporter Studio to an install directory.
chmod +x start.sh stop.sh, then./start.sh— addNO_BROWSER=1on a headless server.
For a persistent production install, package it as a standalone runtime (a single compiled Node process serving both API and UI from one port) and run it under a process manager — a Windows Service via NSSM, or a systemd unit / pm2 on Linux — with a reverse proxy (nginx, IIS, or ORDS/HTTP Server) in front to terminate HTTPS. See the full installation reference for the production packaging steps.
2. Point it at your Oracle database
Connection profiles are managed inside the designer (Connections panel) — nothing to edit in a config file for this part. Add a profile with a display name and an EZConnect string or TNS alias; passwords are encrypted at rest. A built-in DEMO connection with sample data works with zero setup if you want to try the designer before pointing at real APEX schema data.
3. Wire it into an APEX page
Three ways to call a report from APEX, from simplest to most capable — full detail, code samples, and troubleshooting live on the Oracle APEX reporting guide:
| Approach | JavaScript needed? | Best for |
|---|---|---|
| Plain link / Redirect to URL | No | A simple "Print" or "Download" button |
JavaScript client (ApexReporter.run()) | One line, via a Dynamic Action | Anything client-facing — keeps the API key out of the address bar |
Embedded live preview (ApexReporter.preview()) | Yes | Showing a report inline inside a page/region, in an iframe |
- Register the JavaScript client first. Shared Components → User Interface → JavaScript → File URLs, and add the exact URL your server serves it at (e.g.
https://your-host:4000/apexreporter-client.js). It must load as a real external<script src>, not pasted inline. - Design and save the report in ApexReporter Studio; copy its report id from the Open dialog.
- Make sure the report's query uses named binds matching a Parameter on the report (e.g.
:P_DEPTNO↔ a Parameter namedP_DEPTNO). - Set a service-caller API key (
[security] report_api_key=inconfig.ini) — APEX-driven calls have no interactive session, so every call gets401without it. - Set allowed origins:
[security] cors_origin=https://your-apex-host.example.com, then restart the server.
This means the browser never loaded apexreporter-client.js before your button's code ran. Check DevTools → Network for a 200 on that file, confirm it's registered as a File URL (not inline code), and recheck CORS if the script loads but the call still fails. Full troubleshooting steps are in the documentation.
4. Verify the install
GET /api/healthreturns a JSON status.- The designer loads in a browser and shows the login screen.
- The built-in demo connection returns rows for a sample query.
- A report can be designed, saved, previewed, and exported to PDF.
- An APEX page's button, wired per step 3, opens that same report.
Try it before installing anything
Launch the hosted live demo, or download the free trial installer and run through these exact steps against your own Oracle instance.
Try Live Demo Download Trial