Community node NMS Prime for self-hosted n8n, scaffolded from the NMS Prime OpenAPI via @devlikeapro/n8n-openapi-node.
Scaffold: Operations and fields are generated from
nodes/NmsPrime/openapi.json. You may need manual cleanup (operation names, auth, edge-case parameters) depending on how you use the API.
Do this on the same machine where Docker runs n8n (e.g. SSH into your VPS).
Install the package inside the n8n container under /home/node/.n8n/nodes (standard for community nodes). If your instance is configured to load extensions from /home/node/.n8n/custom, install there instead. Do not use internal Docker-only paths under /var/lib/docker/....
git clone https://github.com/schmto/nmsprime-n8n-node.git
cd nmsprime-n8n-node
npm install
npm run build
npm packThis creates a file like n8n-nodes-nms-prime-0.1.0.tgz in the current directory. If your version in package.json differs, use that filename in the steps below.
docker psNote the container name or ID in the row where the n8n image runs (examples below use n8n — replace with yours).
From the folder that contains the .tgz:
docker cp ./n8n-nodes-nms-prime-0.1.0.tgz n8n:/tmp/docker exec -it n8n sh -c 'mkdir -p ~/.n8n/nodes && cd ~/.n8n/nodes && npm install /tmp/n8n-nodes-nms-prime-0.1.0.tgz'
# Or, if you use a custom extensions directory:
# docker exec -it n8n sh -c 'mkdir -p ~/.n8n/custom && cd ~/.n8n/custom && npm install /tmp/n8n-nodes-nms-prime-0.1.0.tgz'docker restart n8n- Allow community nodes if your instance asks for it (n8n docs).
- Add the NMS Prime node to a workflow.
- Create credentials NMS Prime API (Base URL + username + password for HTTP Basic Auth).
If you run npm pack on your PC:
- Copy the
.tgzto the VPS, e.g.scp n8n-nodes-nms-prime-0.1.0.tgz user@vps:/tmp/ - On the VPS:
docker cp /tmp/n8n-nodes-nms-prime-0.1.0.tgz n8n:/tmp/ - Continue from step 4 above.
If ~/.n8n on the container is a bind mount to a folder on the host (e.g. /docker/n8n), you can instead run mkdir -p …/nodes && cd …/nodes && npm install /path/to/n8n-nodes-nms-prime-0.1.0.tgz on the host (or …/custom if that is what your n8n uses) so the files land where the container already reads them.
| Field | Description |
|---|---|
| Base URL | Root URL of your NMS Prime instance (scheme + host, no trailing slash). API paths such as /admin/api/v0/... come from the bundled OpenAPI spec and are appended to this URL—do not add /admin/api/v0 to Base URL unless your deployment serves the API under an extra path prefix. |
| Username | HTTP Basic Auth username |
| Password | HTTP Basic Auth password (stored masked in n8n) |
| Ignore SSL Issues (Insecure) | When enabled, n8n skips TLS certificate verification for this credential (similar to curl -k). Prefer a proper fix: trust your server’s CA or run Node with --use-system-ca (Node.js 22+) so the system trust store is used—see TLS / certificate errors below. |
Requests send Authorization: Basic … (n8n builds the header from username/password) and Accept: application/json. The same call can be checked with curl, for example:
curl -u 'username:password' -H 'Accept: application/json' 'https://your-host/admin/api/v0/Product/2'After upgrading from a Bearer-token release, open existing NMS Prime API credentials in the UI and fill username/password (old token fields are no longer used).
If executions fail with unable to verify the first certificate, Node does not trust the certificate chain (common with self-signed or corporate CAs).
- Best: Install the issuing/root CA where n8n’s Node process can use it, or configure your reverse proxy with a publicly trusted certificate.
- Node 22+: If the CA is already in the OS trust store, try starting Node with
--use-system-ca(e.g. setNODE_OPTIONS=--use-system-cafor the n8n process/container). - Last resort: In NMS Prime API credentials, enable Ignore SSL Issues (Insecure) so requests use n8n’s
skipSslCertificateValidationfor that credential only.
If the upstream spec changes:
curl -skSL "https://www.nmsprime.com/swagger.yaml" -o nodes/NmsPrime/swagger.yaml
node -e "require('fs').writeFileSync('nodes/NmsPrime/openapi.json', JSON.stringify(require('js-yaml').load(require('fs').readFileSync('nodes/NmsPrime/swagger.yaml','utf8'))))"
npm run build(-k is only needed if your environment cannot verify the site TLS chain.)