> For the complete documentation index, see [llms.txt](https://docs.n8n.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.n8n.io/integrations/community-nodes/installation-and-management/manual-installation.md).

# Manual installation

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 <a href="#install-a-community-node" id="install-a-community-node"></a>

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 <a href="#uninstall-a-community-node" id="uninstall-a-community-node"></a>

Access your Docker shell:

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

Run npm uninstall:

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

## Upgrade a community node <a href="#upgrade-a-community-node" id="upgrade-a-community-node"></a>

{% hint style="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).
{% endhint %}

### Upgrade to the latest version <a href="#upgrade-to-the-latest-version" id="upgrade-to-the-latest-version"></a>

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 <a href="#upgrade-or-downgrade-to-a-specific-version" id="upgrade-or-downgrade-to-a-specific-version"></a>

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 <a href="#replace-210-with-your-version-number" id="replace-210-with-your-version-number"></a>
npm install n8n-nodes-nodeName@2.1.0
```
