Install from source
Run nod from its source code on macOS or Linux. Choose this if you use Linux or want to change nod's code. On a Mac or Windows PC, the desktop app is quicker.
Requirements
Section titled “Requirements”| You need | Version or detail |
|---|---|
| Node.js | 24.21.0 or newer |
| pnpm | 10.34.5, enabled through Corepack |
| Docker | With Compose v2, running, for example Docker Desktop on a Mac |
| Git | Any recent version |
| Model connection | An OpenAI, Anthropic or OpenRouter API key, a ChatGPT plan, or a local model server |
What pnpm start runs
Section titled “What pnpm start runs”pnpm start installs dependencies when they changed, builds the web app and starts three Docker containers. Then it starts the nod server, which serves the web app on 127.0.0.1.
flowchart LR you([Your browser]):::accent -- access link --> server[nod server<br/>and web app]:::accent server --> db[(PostgreSQL)] server --> ws[Workspace<br/>container] server --> br[Browser<br/>container] server -.-> model[Your model<br/>provider]:::muted
The workspace is where nod runs commands and keeps files. The browser is where it visits websites. Neither of them receives your provider keys.
Get the code
Section titled “Get the code”git clone https://github.com/n8n-io/nod.gitcd nodSet up the Vault key
Section titled “Set up the Vault key”nod encrypts your saved keys, logins and cards with a Vault key.
Nothing to do. nod creates a key and keeps it in the macOS Keychain item dev.nod.vault.
Nothing to do for a fresh install. nod creates a private key at NOD_DATA_ROOT/vault/master-key (.local/vault/master-key by default). Keep it with your backup; saved credentials can't be read without it.
You can instead set NOD_VAULT_KEY yourself. If encrypted data already exists, restore its original key rather than generating a new one. See Vault configuration.
Start nod
Section titled “Start nod”-
Enable pnpm and start nod. The first run takes a while.
Terminal corepack enablepnpm start -
When the server is ready, it prints a link such as
http://localhost:4310/#access=…. Open it once. Your browser keeps the access cookie, sohttp://localhost:4310works from then on. -
Follow the onboarding to connect a model and try a first task. See Your first conversation.
Run nod day to day
Section titled “Run nod day to day”| To | Do this |
|---|---|
| Stop nod | Press Ctrl-C, then run docker compose stop to stop the containers. |
| Update nod | Stop it, run git pull, then pnpm start. |
| Get a new link | Delete access-key in your data folder (.local/ by default) and restart. Otherwise the key stays the same across restarts. |
| Find your data | .local/ (or NOD_DATA_ROOT) and the Docker volumes. The Vault key is in vault/master-key on Linux, the macOS Keychain item dev.nod.vault, or your explicit NOD_VAULT_KEY. |
| Back up | Stop nod, then copy your data folder (.local/ or NOD_DATA_ROOT), the Docker volumes and the Vault key. |
Settings live in .env, and you need to restart after you change them. See Configuration.
Troubleshooting
Section titled “Troubleshooting”| You see | Do this |
|---|---|
Use Node.js 24.21.0 or newer. |
Install a newer Node.js and run pnpm start again. |
| Docker errors on start | Make sure Docker is running and docker compose version reports v2. |
Configure NOD_VAULT_KEY… when saving a key |
Set NOD_VAULT_KEY as shown in Set up the Vault key, then restart. |
| The port is in use | Set another PORT in .env. The default is 4310. |