n8n Community Node Not Showing? Install It So It Stays
In this video
Yesterday the workflow worked. Today, after updating n8n, the node is a question mark and n8n says it doesn't recognise it. Nobody uninstalled anything.
This guide covers where n8n community nodes live, why they vanish, and how to install them so they stay put, on n8n Cloud, on Docker, and on setups with workers. Most of these problems come down to one folder and one question: which n8n are you running?
Which n8n are you on?
The answer changes everything after it.
n8n Cloud. You can install verified community nodes, and only those. Search the nodes panel; they appear at the bottom under More from the community. Open one and install it. If the node you want isn't verified, it isn't available on Cloud, and there's no setting that changes that.
Self-hosted. You can install any community node from npm, verified or not. From n8n 3.0, unverified nodes are off by default until an admin sets N8N_UNVERIFIED_PACKAGES_ENABLED=true; see what n8n 3.0's unverified node change means.
On both, only the instance owner or an admin can install community nodes. If you're a member and there's no Install button, that's why.
Installing from Settings
On self-hosted n8n, the usual way is Settings → Community Nodes → Install.
- Type the npm package name, for example
n8n-nodes-acme-crm. For a specific version, add it after an at sign:n8n-nodes-acme-crm@1.4.0. - Tick the box that says you understand the risks. This is someone else's code running on your server.
- Install.
The most common "it's not showing up" isn't a problem at all. You search the nodes panel for the package name and find nothing. Search for the node's name instead. A package called acme-crm can contain a node called "Acme CRM", or three nodes with other names entirely, and the panel searches node names.
Why Docker loses community nodes
Here's the one from the start. Why does an update make a node disappear?
n8n installs community nodes onto its disk, in ~/.n8n/nodes. In Docker, that folder lives inside the container. When you update, you don't update the container; you throw it away and start a new one, and the folder goes with it.
The fix is to keep the folder outside the container, in a volume. n8n's own Docker setup mounts the whole .n8n folder, along these lines:
services:
n8n:
image: docker.n8n.io/n8nio/n8n
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
If you followed n8n's Docker guide, you already have this. If you wrote your own setup, check it first.
There's also a setting that reinstalls missing packages on startup:
N8N_REINSTALL_MISSING_PACKAGES=true
It works. It also makes startup slower, and health checks can fail while it's installing. Fix the volume instead.
Queue mode and private packages
Some setups need more than the Install button.
Queue mode. If you run n8n with workers, n8n's docs say to install community nodes by hand. It makes sense once you picture it: the workflow runs on a worker, and if the node only exists on the main instance, the worker has no idea what it is.
Private packages, ones that aren't public on npm, also need a manual install.
The manual way is three commands, then a restart:
docker exec -it n8n sh
cd ~/.n8n/nodes
npm i n8n-nodes-acme-crm
Then restart n8n. Do it on every instance where the node needs to run, workers included.
One list for every server
With more than one server, installing by hand gets old fast. Since n8n 2.21, there's a better way: write the list of packages, with versions, into an environment variable, and let n8n manage it.
N8N_COMMUNITY_PACKAGES_MANAGED_BY_ENV=true
N8N_COMMUNITY_PACKAGES='[{"name":"n8n-nodes-acme-crm","version":"1.4.0"}]'
Every time n8n starts, it makes the installed packages match the list. Missing ones get installed, and wrong versions get fixed.
Read this part twice: anything installed that isn't on the list gets uninstalled. The first time you turn it on, put every package you already use on the list. The Settings page also becomes read-only, so nobody can install something that wouldn't survive the next restart.
When a node stops n8n from starting
Sometimes a community node is broken badly enough that n8n won't start, and then you can't open Settings to uninstall it.
There's a setting for exactly this:
N8N_COMMUNITY_PACKAGES_PREVENT_LOADING=true
n8n starts without loading any community nodes. Uninstall the broken one, remove the setting, and restart. On n8n Cloud, the same switch is in the admin panel, called Disable all community nodes.
Recap
- n8n Cloud: verified community nodes only, installed from the nodes panel.
- Search for the node's name, not the package name.
- In Docker, keep
~/.n8nin a volume. - In queue mode, install on every worker too.
- With several servers, keep one list in
N8N_COMMUNITY_PACKAGES, and put everything on it. - If a node stops n8n starting, prevent loading, uninstall, and turn it back off.
If you'd rather build a node than install one, the Build your own n8n node series starts from an empty folder.
One more thing. If you build an API and want your users to find your node on n8n Cloud, it has to be verified. NativeShip, the tool we build, turns your OpenAPI spec into a node package that's ready to publish and submit for verification.
Frequently asked questions
Community nodes are installed in ~/.n8n/nodes. In Docker, that folder lives inside the container, and updating replaces the container. Keep the .n8n folder in a volume so the nodes survive.
Only verified ones. Search for them in the nodes panel, where they appear under "More from the community", and install. Unverified community nodes aren't available on n8n Cloud.
Search the nodes panel for the node's name, not the npm package name. A package called n8n-nodes-acme-crm might contain a node called "Acme CRM".
Install them manually on every instance that runs workflows, including each worker: open a shell in the container, go to ~/.n8n/nodes, run npm i with the package name, and restart n8n. From n8n 2.21 you can also list packages in an environment variable.