n8nは手元のPCでも動きます。ここではMacとWindowsに、npx・npm・Docker Desktopの3つの方法で n8n 2.44.7 を入れ、「問い合わせ受付」ワークフローを作り始められる状態にします。読み終わると、自分のPCに合う入れ方で起動でき、手元で作ったワークフローをVPSの本番へ移せます。前提は、ターミナル(WindowsならPowerShellかUbuntuの画面)でコマンドを打てることです。版は執筆時点の安定版 2.44.7 で確かめています。
先に決めること
手元のn8nを何に使うか
手元のn8nは、PCを閉じれば止まり、外からは届きません。だから本番には使わず、ノードの動きを覚える、本番に出す前のワークフローを組む、といった練習と試作に使います。毎日の業務は最初から24時間動くサーバーに載せます。その立て方は「n8nをセルフホストで導入する:Docker ComposeでVPSに立て、独自ドメインとHTTPSで使う」に書いています。
画面を触りたいだけなら、インストールの要らないn8n Cloudの無料体験のほうが早く、「n8n Cloudの始め方:登録から最初のワークフロー、プラン変更・解約まで」に分けました。
会社のPCに入れてよいか
WSL2を入れる wsl --install は管理者のPowerShellで打ち、Docker Desktopもすべてのユーザー向けに入れると管理者の許可を求められます。情シスの許可が要る会社なら先に話を通します。
Docker Desktopは、従業員250人未満かつ年間売上1,000万ドル未満の会社なら無料で、それを超える会社が仕事で使うには有料のサブスクリプションが要ります。社員30名ほどでも売上の条件は確かめます。n8n自体のライセンスは「n8nの料金:Cloudとセルフホストの費用、商用利用の線引き」にあります。
PCの種類
n8n 2.44.7 のパッケージに入っている組み立て済みの部品(isolated-vm)は、Apple siliconのMac、x64のWindows、Linux向けだけです。Intel MacやARMのWindowsでnpx・npmを使うと、入れる途中でビルドが走り、開発用のツールが要ります。Intel MacならDocker Desktopのほうが早いです。
Docker Desktopの要件は、WindowsがWindows 10 22H2(ビルド19045)以上かWindows 11 23H2(ビルド22631)以上・WSL 2.1.5以上(wsl --update で上げられます)・メモリ8GB・BIOSで仮想化が有効、Macが今の版から2つ前までのmacOS・メモリ4GB以上です。
版を本番と揃える
版が違うと、手元で確かめた意味がなくなります。手元も 2.44.7 のように番号で固定し、本番を上げたら手元も上げます。版を書かずに npx n8n と打つと、その日の最新が入ります。
3つの入れ方の比較
| 項目 | npxで試す | npmで入れる | Docker Desktopで入れる |
|---|---|---|---|
| 必要なもの | Node.js 24系 | Node.js 24系 | Docker Desktop(WindowsはWSL2も) |
| 起動のコマンド | npx n8n@2.44.7 | n8n start | docker compose up -d |
| データの置き場所 | ホームの .n8n | ホームの .n8n | Dockerのボリューム |
| PCを再起動したあと | 自分で起動し直す | 自分で起動し直す | Docker Desktopが立ち上がれば自動で戻る |
| 本番との近さ | 低い | 低い | 本番と同じイメージ |
| n8n Assistant | 使えない | 使えない | 公式のサンドボックス込みの構成なら使える |
| 今後 | npmでの導入は3.0で廃止予定 | npmでの導入は3.0で廃止予定 | 続く |
| 向いている場面 | 今日1時間だけ触る | Dockerを入れられないPCで続けて使う | 本番の練習台として何週間も使う |
画面を見たいだけならnpx、Docker Desktopを入れられないPCならnpm、それ以外はDocker Desktopにします。npmでの導入は3.0で廃止予定(npxも同じ導入方式です)で本番もDockerなので、長く使うならDocker Desktopが手戻りがありません。
npxとnpmはどちらもデータをホームの .n8n(Macは ~/.n8n、Windowsは C:\Users\ユーザー名\.n8n)に置くので、npxで作ったものはnpmのn8nからも見えます。環境変数 N8N_USER_FOLDER を指定すると、その下に .n8n が作られます。
npxとnpmで入れる
Node.jsの版の合わせ方
公式ドキュメントのnpmのページには「Node.js 20.19〜24.x」とありますが、2.44.7 のパッケージ自体が求めるのは24以上です。22で起動すると次のように断られます。
Your Node.js version 22.x.x is currently not supported by n8n.
Please use a Node.js version that satisfies the following version range: >=24.0.0
2026年10月時点のNode.jsのLTS(長期サポート版)の最新は 24.22.1 です。26系はLTSではなく、ドキュメントの範囲からも外れるので、24系を入れます。
Macの手順
- nodejs.org のダウンロードページから、24系(LTS)のmacOS用インストーラーを入れる
- ターミナルを開き、
node -vがv24で始まることを確かめる mkdir ~/n8n-localで作業フォルダを作り、cd ~/n8n-localで入る- 下の
.envをこのフォルダに作る npx n8n@2.44.7を実行する- 「Ok to proceed? (y)」と聞かれたら
yを押す - 「Editor is now accessible via:」の下に
http://localhost:5678が出るまで待つ oのキーを押してブラウザを開き、オーナーアカウントを作る
GENERIC_TIMEZONE=Asia/Tokyo
TZ=Asia/Tokyo
n8nは起動したフォルダの .env を読み込みます。GENERIC_TIMEZONE が無いと、日本のPCでもアメリカ東部時間(America/New_York)で動き、Schedule Trigger(定期実行のきっかけ)が13〜14時間ずれます。止めるときは Ctrl と C を押します。初回は部品のダウンロードに数分かかります。版は npx n8n@2.44.7 --version で確かめられます。

Windowsの手順
Windowsは、Microsoftの案内どおり nvm-windows でNode.jsを入れます。既に入っているNode.jsは先に消し、C:\Program Files\nodejs も残さないようにします。
- nvm-windows のGitHubのリリースページから nvm-setup.zip をダウンロードする
- zipを開き、nvm-setup.exe を実行して画面どおりに入れる
- PowerShellを管理者として開き、
nvm list availableでLTSの番号を見る nvm install 24.22.1を実行するnvm use 24.22.1を実行する- PowerShellを普通に開き直し、
node -vがv24.22.1になることを確かめる mkdir C:\n8n-localで作業フォルダを作り、cd C:\n8n-localで入る- Macと同じ
.envをこのフォルダに作る npx n8n@2.44.7を実行し、http://localhost:5678を開いてオーナーアカウントを作る
npmで入れる場合
n8n のコマンドで起動したいなら、npmで入れます。
npm install -g n8n@2.44.7
n8n --version
n8n start
上げるときは番号を指定して入れ直します。Macでインストーラーから入れたNode.jsだと、-g が EACCES(権限がない)で止まることがあり、直し方は後の表にあります。
Docker Desktopで入れる
Macの手順
- 左上のアップルメニューの「このMacについて」で、チップがApple siliconかIntelかを見る
- docs.docker.com のMac用のページから、チップに合うDocker Desktopをダウンロードする
- Docker.dmg を開き、DockerをApplicationsフォルダへドラッグする
- ApplicationsからDockerを起動し、Subscription Service Agreement(利用規約)で「Accept」を押す
- Docker Desktopの「Settings」の「General」で「Start Docker Desktop when you sign in to your computer」をオンにする
- ターミナルで
docker --versionとdocker compose versionが版を返すことを確かめる
5は既定でオフで、オフのままだと再起動後にn8nも上がってきません。
Windowsの手順(WSL2)
Windowsでは、Docker DesktopをWSL2(Windowsの中でLinuxを動かす仕組み)の上で動かします。
- タスクマネージャーの「パフォーマンス」→「CPU」で、仮想化が「有効」になっていることを確かめる。無効ならBIOS/UEFIで有効にする
- PowerShellを管理者として開き、
wsl --installを実行する - PCを再起動する
- 自動で開くUbuntuの画面で、Linuxのユーザー名とパスワードを決める(ユーザー名は英小文字)
- Docker Desktop Installer.exe を実行し、「Configuration」で「Use WSL 2 instead of Hyper-V」にチェックを入れたまま進める
- Docker Desktopを起動し、利用規約で「Accept」を押す
- 「Settings」の「Resources」→「WSL integration」で、Ubuntuをオンにする
- 「Settings」の「General」で「Start Docker Desktop when you sign in to your computer」をオンにする
- スタートメニューからUbuntuを開き、
docker --versionが版を返すことを確かめる
wsl -l -v の「VERSION」が 2 ならWSL2です。WindowsのHomeでも、n8nのようなLinuxのコンテナは動きます。
ここから先はUbuntuの画面で打ちます。公式も、作業フォルダはWSLの中(~/n8n-local など)に置き、/mnt/c/ の下は遅く権限の問題も出るので避けるよう書いています。
n8nを起動する(Mac・Windows共通)
mkdir -p ~/n8n-local/local-filesで作業フォルダとファイルのやり取り用のフォルダを作るcd ~/n8n-localで入る- 下の
compose.yamlを作る docker compose up -dを実行するdocker compose psでn8nがrunningになっていることを確かめる- ブラウザで
http://localhost:5678を開き、オーナーアカウントを作る
services:
n8n:
image: n8nio/n8n:2.44.7
restart: unless-stopped
ports:
- "127.0.0.1:5678:5678"
environment:
- GENERIC_TIMEZONE=Asia/Tokyo
- TZ=Asia/Tokyo
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
- N8N_RESTRICT_FILE_ACCESS_TO=/files
volumes:
- n8n_data:/home/node/.n8n
- ./local-files:/files
volumes:
n8n_data:
公式の docker run の例(今は古い方式とされ、Docker Composeのページへ案内されています)を、Composeの形に直したものです。ポートの 127.0.0.1: は、同じWi-Fiの別のPCから開けないようにするためです。restart: unless-stopped で、Docker Desktopが立ち上がればn8nも戻ります。データは n8n-local_n8n_data というボリュームに残ります(頭に作業フォルダ名が付きます)。local-files はコンテナの中から /files に見え、ファイルの読み書きと後で書く書き出しに使います。
止めるときは docker compose stop、もう一度動かすときは docker compose start です。docker compose down -v の -v はボリュームまで消すので付けません。
起動ログにCodeノードの実行方式(内部モード)の注意が出ますが、手元で試す分にはそのままで構いません。PythonのCodeノードを使うなら、セルフホストの記事の task-runners を同じように足します。Codeノードの書き方は「n8nのCodeノード:JavaScriptとPythonで足りないところを書く」にあります。
版を上げる
compose.yaml の版の番号を書き換え、docker compose pull、docker compose up -d の順に打ちます。新しい版は起動時にデータベースを作り替えることがあり、番号を戻すだけでは元に戻らないので、上げる前にボリュームを控えます。控え方は「n8nを止めずに運用する:アップデート・バックアップ・エラー通知・脆弱性」にあります。
手元から本番へ移す
手元で組み終えた「問い合わせ受付」をVPSの本番へ移す方法は3つです。
| 移し方 | 移るもの | 移らないもの | 向いている場面 |
|---|---|---|---|
| 画面で書き出し・取り込み | 1本ずつのワークフロー | Credentialの中身 | 1〜3本だけ |
| CLIで書き出し・取り込み | 全ワークフロー(Credentialは任意) | ユーザー、実行履歴、Variables、暗号鍵などの設定 | まとめて移す |
.n8n フォルダごと | 全部 | なし(同じSQLite同士のとき) | 手元をそのまま本番にしたい |
おすすめはCLIでワークフローだけを移し、Credential(接続情報)は本番で作り直す形です。GoogleやSlackのOAuthの戻り先が http://localhost:5678/... から https://n8n.example.co.jp/... に変わり、どうせ各サービス側の登録を直すからです。フォルダごと移すと、テストの実行履歴まで本番に入ります。
1. 手元で書き出す
Docker Desktopで動かしているなら、作業フォルダで次を打ちます。
cd ~/n8n-local
docker compose exec -u node n8n n8n export:workflow --backup --output=/files/export/workflows/
ls local-files/export/workflows/
--backup は全ワークフローを1本ずつJSONに書き出す指定で、/files は手元の local-files です。
npxで動かしているなら、作業フォルダで npx n8n@2.44.7 export:workflow --backup --output=./export/workflows/ を打ちます。
2. 本番へ送る
本番はセルフホストの記事の構成(作業フォルダ n8n-compose、local-files がコンテナの /files)を前提にします。
scp -r ~/n8n-local/local-files/export ubuntu@n8n.example.co.jp:~/n8n-compose/local-files/
3. 本番で取り込む
取り込みのコマンドはユーザーがいることが前提なので、本番のオーナーアカウントを先に作っておきます。
cd ~/n8n-compose
sudo docker compose exec -u node n8n n8n import:workflow --separate --input=/files/export/workflows/
取り込んだワークフローは無効(Publishされていない)状態で入り、同じIDのものは上書きされます。
4. 本番で仕上げる
- 本番のn8nで「Credentials」を開き、GoogleスプレッドシートとSlackのCredentialを作り直す
- 取り込んだ「問い合わせ受付」の各ノードで、作り直したCredentialを選び直す
- Webhookノードを開き、「Production URL」が
https://n8n.example.co.jp/webhook/で始まることを確かめる - ワークフロー名の横の「…」から「Settings」を開き、「Timezone」を確かめる
- 「Publish」を押す
- 自社サイトのフォームの送信先を、本番の「Production URL」に差し替える
- 試しに1件送り、シートとSlackに届くことを確かめる
- 手元のn8nで同じワークフローをUnpublishする
8を忘れると、定期実行が手元と本番の両方で動き、Slackに同じ通知が2通届きます。セルフホストでのCredentialの作り方は「n8nの使い方入門:最初のワークフローを作って動かす」にあります。

1〜3本だけなら画面で移す
- 手元でワークフローを開き、画面上部のワークフロー名の横の「…」を押す
- 「Export JSON」を選び、JSONファイルを保存する
- 本番で「Create workflow」を押して空のワークフローを作る
- 「…」から「Import」→「From file」を選び、保存したJSONを選ぶ
ノードを選んで Ctrl と C(Macは cmd と C)でコピーし、別のn8nに貼り付けても移せます。JSONにはCredentialの名前とIDが入り、cURLから取り込んだHTTP Requestノードは認証のヘッダーを持っていることがあるので、人に渡す前に中を見ます。

Credentialも移したいとき
n8nはCredentialを暗号鍵で暗号化して保存しているので、取り込む側に同じ鍵が要ります。手元の鍵は、npxならホームの .n8n/config、Dockerなら docker compose exec -u node n8n cat /home/node/.n8n/config の encryptionKey です。
本番を立てる前なら、本番の .env の N8N_ENCRYPTION_KEY に手元の鍵を入れ、export:credentials --backup で書き出したものを import:credentials --separate で入れます。本番が別の鍵で動いているなら --decrypted で平文に書き出す方法もありますが、すべての秘密が見えるファイルになるので、取り込んだらすぐ消します。.n8n フォルダごと移すときも、鍵が違うと起動時に「Mismatching encryption keys.」で止まります。
応用
外からのWebhookを手元で試す(トンネル)
トンネルは、手元のn8nに外から届くURLを一時的に付ける仕組みです。Cloudflareの Quick Tunnel なら、アカウントもドメインも無しで https://〜.trycloudflare.com のURLが手元のn8nにつながります。
- Macなら
brew install cloudflared、WindowsならGitHubのリリースページから cloudflared を入れる - 別のターミナルで
cloudflared tunnel --url http://localhost:5678を実行する - 表示された
https://〜.trycloudflare.comのURLを控える - n8nを止め、
.envに下の2行を足して起動し直す(Dockerならcompose.yamlのenvironmentに-を付けて足す) - Webhookノードの「Test URL」が
https://〜.trycloudflare.com/webhook-test/で始まっていることを確かめる - 試し終わったら cloudflared を
CtrlとCで止め、2行を消して起動し直す
N8N_WEBHOOK_URL=https://〜.trycloudflare.com/
N8N_PROXY_HOPS=1
公式ドキュメントのトンネルはソースコードから動かす開発者向けで、以前の n8n start --tunnel は2.0で無くなりました。
使うのは外部サービスのWebhookの形を見たいときだけです。Quick Tunnel は稼働の保証がなく、同時200リクエストまで、URLは作るたびに変わります。編集画面ごと外に出てログイン画面が誰からでも開けるので、終わったらすぐ止めます。Webhookの受け方そのものは「n8nで外部サービスとつなぐ:Webhook・HTTP Request・API」に書いています。
本番の検証用に使う
手元のn8nは、本番の版を上げる前の試し場所になります。本番のバックアップを手元に戻し、全ワークフローを止めてから新しい版を当てます。手順は「n8nを止めずに運用する:アップデート・バックアップ・エラー通知・脆弱性」の「戻せるかを試す」です。
手元のAIモデルとつなぐ
同じPCのOllamaを使えば、問い合わせの振り分けを社外にデータを出さずに試せます。Dockerのn8nからは host.docker.internal で呼びます。詳しくは「n8nでAIエージェントを作る:ChatGPT・Claude・Geminiをつなぐ」にあります。
できないことと、その代わり
| できないこと | 理由 | 代わりの手 |
|---|---|---|
| 自社サイトのフォームやSlackからWebhookを受ける | localhost は社外から届かない | 試すだけならトンネル。業務はVPSに立てる |
| PCを閉じている間・スリープ中に動かす | PCと一緒にn8nも止まる。止まっていた間のScheduleやWebhookは取り戻せない | 24時間動かすものはVPSかn8n Cloudに置く |
| 他の社員と一緒に使う | 他のPCからは開けない(開けてもHTTPでないとログインできない) | VPSに独自ドメインとHTTPSで立てる |
| npm・npxでn8n Assistantを使う | 公式がnpmでは使えないとしている | Docker Desktopで、公式のサンドボックス込みの構成にする |
| npxや1つのコンテナでPythonのCodeノードを動かす | 2.0からPythonは外部モードが前提 | n8nio/runners のコンテナを足す |
| 大きい会社でDocker Desktopを無料で使う | Docker Desktopの利用条件 | 有料のサブスクリプションにするか、npxで試す |
Macなら caffeinate -i npx n8n@2.44.7 で起動中のスリープは防げますが、蓋を閉じれば止まるので、業務を載せる理由にはなりません。
よく詰まるところ
| 症状 | 原因 | 直し方 |
|---|---|---|
Your Node.js version 22.x.x is currently not supported by n8n. で止まる | 2.44.7 はNode.js 24以上が必要 | 24系を入れ、node -v で確かめる |
n8n's port 5678 is already in use. と出る | npxとDockerの両方で起動している、または前のn8nが残っている | Macは lsof -i :5678、Windowsは netstat -ano で相手を見て止める。並べるなら .env に N8N_PORT=5679 |
docker compose up -d で port is already allocated | 5678番を別のn8nやアプリが使っている | 相手を止めるか、127.0.0.1:5679:5679 にして N8N_PORT=5679 を足す |
npm install -g が EACCES で止まる | インストーラーのNode.jsは全体用のフォルダに書く権限がない | nvmで入れ直すか、npm config set prefix ~/.local にしてPATHに ~/.local/bin を足す |
| 入れる途中で node-gyp のビルドが失敗する | Intel MacやARMのWindowsには組み立て済みの部品がない | Macは xcode-select --install で開発ツールを入れるか、Docker Desktopにする |
PowerShellで npx が「スクリプトの実行が無効」と言われる | Windowsの実行ポリシー | Set-ExecutionPolicy -Scope CurrentUser RemoteSigned を打つか、コマンドプロンプトから実行する |
| ユーザー名が日本語のWindowsで、導入や起動が途中で失敗する | ホームのパスの日本語をビルドの道具やnpmのキャッシュが扱えないことがある | N8N_USER_FOLDER=C:\n8n-data とし、npm config set cache C:\npm-cache でキャッシュも移す。WSL2の中なら起きない |
| Safariでログインできず、secure cookie の警告が出る | ログインのCookieはHTTPSが前提で、Safariは localhost でも通さない | ChromeかEdgeで開く |
| 定期実行が夜中に動く、時刻がずれる | GENERIC_TIMEZONE が無く、America/New_Yorkで動いている | .env か compose.yaml に GENERIC_TIMEZONE=Asia/Tokyo と TZ=Asia/Tokyo |
「Read/Write Files from Disk」で Access to the file is not allowed. | 2.0からファイルの読み書きは決まったフォルダの中だけ | npxは ~/.n8n-files、Dockerは local-files に置き、/files/〜 で指定する |
Cannot connect to the Docker daemon と出る | Docker Desktopが起動していない | Docker Desktopを起動し、「General」で自動起動をオンにする |
Ubuntuで docker が見つからない | WSL integrationでUbuntuがオフ | 「Settings」→「Resources」→「WSL integration」でオンにする |
PythonのCodeノードで Failed to start Python task runner in internal mode. | 1つの仕組みの中でPythonを動かそうとしている | n8nio/runners のコンテナを足して外部モードにする |
| 起動し直したらワークフローが全部消えた | down -v でボリュームを消した、または作業フォルダ名を変えた | -v を付けない。フォルダ名を戻す |
| 移した先が「Mismatching encryption keys.」で起動しない | config の鍵と N8N_ENCRYPTION_KEY が違う | どちらかに揃える |
次にやること
- n8nをセルフホストで導入する:Docker ComposeでVPSに立て、独自ドメインとHTTPSで使う
- n8nの使い方入門:最初のワークフローを作って動かす
- n8n Cloudの始め方:登録から最初のワークフロー、プラン変更・解約まで
- n8nを止めずに運用する:アップデート・バックアップ・エラー通知・脆弱性