---
contentType: howto
---

# Manually install community nodes from npm

You can manually install community nodes from the npm registry on self-hosted n8n.

You need to manually install community nodes in the following circumstances:

* Your n8n instance runs in queue mode.
* You want to install [private packages](https://docs.npmjs.com/creating-and-publishing-private-packages).

## Install a community node

Access your Docker shell:

```sh
docker exec -it n8n sh
```

Create `~/.n8n/nodes` if it doesn't already exist, and navigate into it:

```sh
mkdir ~/.n8n/nodes
cd ~/.n8n/nodes
```

Install the node:

```sh
npm i n8n-nodes-nodeName
```
Then restart n8n.

## Uninstall a community node

Access your Docker shell:

```sh
docker exec -it n8n sh
```

Run npm uninstall:

```sh
npm uninstall n8n-nodes-nodeName
```

## Upgrade a community node

/// warning | Breaking changes in versions
Node developers may introduce breaking changes in new versions of their nodes. A breaking change is an update that breaks previous functionality. Depending on the node versioning approach that a node developer chooses, upgrading to a version with a breaking change could cause all workflows using the node to break. Be careful when upgrading your nodes. If you find that an upgrade causes issues, you can [downgrade](#upgrade-or-downgrade-to-a-specific-version).
///
### Upgrade to the latest version

Access your Docker shell:

```sh
docker exec -it n8n sh
```

Run npm update:

```sh
npm update n8n-nodes-nodeName
```

### Upgrade or downgrade to a specific version

Access your Docker shell:

```sh
docker exec -it n8n sh
```

Run npm uninstall to remove the current version:

```sh
npm uninstall n8n-nodes-nodeName
```

Run npm install with the version specified:

```sh
# Replace 2.1.0 with your version number
npm install n8n-nodes-nodeName@2.1.0
```
