{"id":24185268,"url":"https://github.com/oraopensource/node4ords","last_synced_at":"2026-03-08T17:38:59.053Z","repository":{"id":26624873,"uuid":"30080422","full_name":"OraOpenSource/node4ords","owner":"OraOpenSource","description":"Simple node app to act as web listener for Oracle APEX pages","archived":false,"fork":false,"pushed_at":"2016-09-13T17:24:31.000Z","size":35,"stargazers_count":23,"open_issues_count":12,"forks_count":5,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-04-14T22:19:42.927Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.oraopensource.com/node4ords/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OraOpenSource.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-30T16:28:14.000Z","updated_at":"2019-06-29T17:38:23.000Z","dependencies_parsed_at":"2022-09-01T15:01:57.196Z","dependency_job_id":null,"html_url":"https://github.com/OraOpenSource/node4ords","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OraOpenSource%2Fnode4ords","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OraOpenSource%2Fnode4ords/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OraOpenSource%2Fnode4ords/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OraOpenSource%2Fnode4ords/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OraOpenSource","download_url":"https://codeload.github.com/OraOpenSource/node4ords/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233731135,"owners_count":18721286,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-13T11:19:35.877Z","updated_at":"2025-09-21T08:31:37.637Z","avatar_url":"https://github.com/OraOpenSource.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Node4ORDS\n\n[![Analytics](https://ga-beacon.appspot.com/UA-59573016-4/node4ords/README.md?pixel)](https://github.com/igrigorik/ga-beacon)Simple node app to act as web listener to sit on top of Oracle Rest Data Services (ORDS) web container (such as Tomcat). This is an alternative to using an Apache web server.\n\nThis project was created as part of the Oracle XE / APEX VM install project: https://github.com/OraOpenSource/oraclexe-apex\n\n*Please note this is still in beta and additional changes will be coming.*\n\n# Install\n```bash\ngit clone https://github.com/OraOpenSource/node4ords.git\ncd ./node4ords\nnpm install --unsafe-perm\n```\n\n## Upgrade\n\nTo upgrade simply run\n\n```bash\ngit pull\nnpm install --unsafe-perm\n```\n\nCheck the latest docs to see if additional configuration options are available. Existing `config.js` files will not be modified\n\n# Config\nThe configuration for node4ords is stored in `config.js`. When installing Node4ORDS the first time this file will be created as a copy of [`defaultConfig.js`](defaultConfig.js).\n\nThe following is an explanation of all the settings\n\nSetting | Required | Default | Description\n--- | --- | --- | ---\n`config.web.http` | | |  HTTP config container\n`config.web.http.port` | optional | `80` |  Port for http connections\n`config.web.https` | optional | | HTTPS config container\n`config.web.https.enabled` | required | `false` | Set to `true` to enable HTTPS connections\n`config.web.https.port` | optional | `443` |  Port for https connections\n`config.web.https.keyPath` | required | | Full path to SSL private key. _Required only if HTTPS is enabled_. Ex: `/tmp/certs/domain.key`\n`config.web.https.certPath` | required | | Full path to SSL certificate. _Required only if HTTPS is enabled_. Ex: `/tmp/certs/domain.crt`\n`config.web.https.forceHttps` | optional | `false` | If `true` then all HTTP connections will be redirected to HTTPS\n`config.web.https.forceSSLPort` | optional | `config.web.https.port` | If `config.web.https.forceHttps` is enabled then this port will be used for the redirect. In most cases `443` (the default) is appropriate. A different port is usually only required if running Node4ORDS on a VM and doing port mapping that maps `443` to a different (local) port.\n`config.ords` | | | ORDS config container\n`config.ords.path` | required | | URL path for ORDS. Recommended `/ords`\n`config.ords.redirectPaths` | optional | | Array of paths to redirect. Ex: `['/apex']` will redirect all references to `/apex` to path set in `config.ords.path`. Useful for older URLs that may have used `/apex` or other paths to access APEX applications.\n`config.ords.webContainerUrl` | required | | local URL to Tomcat server. Most of the time this will be `http://localhost:8080`\n`config.apex` | | | APEX config container\n`config.apex.images` | required | | APEX images container\n`config.apex.images.path` | required |  | URL Path to APEX images. Recommended `/i`\n`config.apex.images.directory` | required |  | Path on file system where APEX images are located. Ex: `/ords/apex_images`\n`config.static` | | | Static www files container\n`config.static.path` | | | Path to access static www files. Ex `/public`\n`config.static.directory` | | | Filesystem location of where www static files are stored. Ex: `/var/www/public`\n\n# Run\n\n```bash\nnode app.js\n```\n\nTo start Node4ORDS as an system process it's recommended to use [PM2](http://pm2.keymetrics.io/).  The following script demonstrates how to install PM2 and run Node4ORDS.\n\n```bash\nnpm install pm2 -g\n\n# Go to the directory that Node4ORDS is installed in or reference the full path\npm2 start app.js --name=\"node4ords\" --watch\n\n# To have it run on boot:\n# pm2 startup \u003cos type\u003e. Ex pm2 startup redhat\n\n# Save current setup\npm2 save\n```\n\n# Static files\nOnce installed a directory called `/var/www/public` will be created. Static files can be placed in there and referenced from your server via `//server_name/public/filename`. You can configure the location for static content in `config.js`.\n\nBy default, the following folder structure will be created:\n```bash\n|-/public\n\t|-css\n\t|-img\n\t|-js\n```\n\n# SSL\n\nIf you want to use SSL, the `config.js` supports SSL. A private and public key are required.\n\n## Unsigned Private key\n\nThe following demo shows how to quickly create an unsigned private key:\n\n```bash\nopenssl req \\\n  -newkey rsa:2048 -nodes -keyout localhost.key \\\n  -x509 -days 365 -out localhost.crt \\\n  -subj \"/C=CA/ST=Alberta/L=Calgary/O=Dis/CN=localhost\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foraopensource%2Fnode4ords","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foraopensource%2Fnode4ords","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foraopensource%2Fnode4ords/lists"}