n8nのインストール方法は?初心者向けローカルデプロイと初回実行の完全チュートリアル

n8n のインストール自体は難しくない。難しいのは、インストール後に「データが失われないか」という点だ。1 行のコマンドで動かし、1 週間使った後、container を削除して再作成したら workflow がすべて消えた——data volume の mount が正しくないため、という例をあまりにも多く見てきた。

この記事では代表的な 3 つのインストール方法を、「つまずきを最小限にする」順に説明する:Docker、Docker Compose、npm。インストール後には、ブラウザで開ける n8n、データがローカルに保存されて失われない状態、正しいタイムゾーンが手に入る。

どのような人向けか、作業前に必要なもの

サービスを一度もデプロイしたことがない人向けだが、ターミナルを開いてコマンドを入力できる必要がある。Windows、macOS、Linux のいずれでもインストールでき、本記事では Docker を中心に扱う。後からアップグレードや移行を行うのが最も楽だからだ。

他人のマシンで少し試すだけで、長期的に使わない場合は、第 3 節の npm 方式に直接進んでよい。2 行のコマンドで動かせるが、重要なデータを置かないこと。

まずインストール先を決める

方式 向いている人 利点 デメリット
Docker(単一 container) 個人 PC、軽量利用 分離がきれいで、削除したらそれまで、アップグレードは image を差し替えるだけ Docker を少し学ぶ必要がある
Docker Compose 長期運用、データベース接続が必要 設定をファイルに書き、バージョン管理でき、再起動時に自動で立ち上がる 管理する yaml が 1 つ増える
npm グローバルインストール すでに Node 環境があり、リソースを節約したい container を使わず、ホストに直接接続するので、性能オーバーヘッドは最小です システムの Node バージョンに依存するため、アップグレード時に崩れやすいです

私の提案:個人利用なら Docker Compose を選び、単発の docker run は使わないでください。理由は実用的です——単発コマンドで動かした後、2 か月も経てば当時どのパラメータを設定したか絶対に思い出せません。Compose はパラメータをファイルに書くので、問題が起きたときに確認・修正・バックアップができます。

環境を確認する

まず Docker があるか確認します。ターミナルで実行:

docker -v

バージョン番号(次のような形式: Docker version 29.5.3, build d1c06ef)が表示されればインストール済みです。Windows と macOS は Docker Desktop を入れると同梱されます;Linux は Docker Engine を使います。

次に、5678 port が使用されていないことを確認します。Linux:

ss -lntp | grep 5678

macOS または Linux では次も使えます lsof -i :5678。出力があれば使用中なので、別の port に変更します。例えば -p 5679:5678。Windows では次を使います netstat -ano | findstr 5678。

方法 1:1 つの docker run で起動する

先にデータボリュームを作成し、次に container を起動します。この 2 ステップを 1 つにまとめないでください。ボリュームを別途作成しておけば、後で container を削除して再作成してもデータは失われません:

docker volume create n8n_data

docker run -d --name n8n 
  -p 5678:5678 
  -e GENERIC_TIMEZONE="Asia/Shanghai" 
  -e TZ="Asia/Shanghai" 
  -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true 
  -e N8N_DEFAULT_LOCALE=zh-CN 
  -v n8n_data:/home/node/.n8n 
  --restart unless-stopped 
  n8nio/n8n

各パラメータが何をしているかを 1 つずつ説明します。ここが実際にハマりやすい点です:

  • -d:バックグラウンドで実行します。公式ドキュメントでは -it --rm(フォアグラウンドで実行し、終了時に削除)となっていますが、それは試用向けです。長期利用では必ず -d --restart unless-stopped、サーバー再起動後に container が自動で起動するように変更してください。
  • -p 5678:5678:container 内の 5678 をホストにマッピングします。左側がホストの port なので、左側を変更すればよいです。
  • GENERIC_TIMEZONE 和 TZ:両方とも設定します。TZ container 内のシステムコマンドの時刻を管理し、GENERIC_TIMEZONE スケジュール系ノード(たとえば Schedule Trigger)がどのタイムゾーンで計算されるかを管理します。1 つだけ設定すると、「朝 9 点に設定したのに、実際には午後 5 点に実行された」ということが起こります。
  • -v n8n_data:/home/node/.n8n:最も重要な一行n8n の SQLite データベース、暗号化キー、ログはすべてこのディレクトリにあります。volume を mount しないと、container を削除した時点で全部消えます。
  • N8N_DEFAULT_LOCALE=zh-CNインターフェースはデフォルトで中国語です。n8n の中国語化は外側だけなので、ノードのパラメータは英語のままです。

起動後、ブラウザで開きます http://localhost:5678初回は管理者アカウントの作成を求められます。パスワードは最低 8 位です。このアカウントはローカル保存なので、忘れた場合はリセットするしかありません。忘れないようにしてください。

方式 2:Docker Compose(推奨)

ディレクトリを作成し、その中に置きます docker-compose.yml:

services:
  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    restart: unless-stopped
    ports:
      - "5678:5678"
    environment:
      - GENERIC_TIMEZONE=Asia/Shanghai
      - TZ=Asia/Shanghai
      - N8N_DEFAULT_LOCALE=zh-CN
      - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
      - N8N_SECURE_COOKIE=false
    volumes:
      - ./n8n_data:/home/node/.n8n

その後、このディレクトリで実行します:

docker compose up -d

いくつか補足します:

N8N_SECURE_COOKIE=false この行は「ローカルで http アクセスする」場合にのみ必要です。すでにドメインと HTTPS を設定している場合は削除してください——HTTPS を有効にしているのに false を書くと、かえってセキュリティを下げます。多くの人がローカルにインストールした後、ログインページがずっと読み込み中のままになるのは、この cookie 設定が原因です。

データディレクトリは次を使用します ./n8n_dataつまり、yml と同じ階層のフォルダです。利点は、バックアップ時にこのディレクトリをそのままアーカイブすればよく、Docker の volume がどこに隠れているかを推測しなくてよいことです。

ログを確認し、起動しているか判断します:

docker compose logs -f --tail=50

エディタのアドレスとバージョン番号の行が見えれば、起動していると判断できます。Ctrl+C を押すとログから抜けるだけで、container はまだ動作しています。

方式 3:npm グローバルインストール

自分が使っているインスタンスはこの方式で、container を使わず、ホスト上で直接動かしています。前提として Node.js 環境が必要で、n8n 2.x は Node 20 以上を要求します(自分の環境は Node 24.21.0 です)。

npm install -g n8n
n8n start

ただし、このまま直接動かすと問題があります:データはデフォルトで現在のユーザーディレクトリ配下に保存されます .n8nしかも、ターミナルを閉じると停止します。本番環境では通常、環境変数でデータディレクトリを指定し、さらに systemd または pm2 で管理します。このインスタンスで実際に使っている主要な変数は次のとおりです(値は自分のものに変更してください):

N8N_USER_FOLDER=/data/n8n
N8N_HOST=127.0.0.1
N8N_PORT=5678
N8N_PROTOCOL=http
N8N_EDITOR_BASE_URL=https://你的域名/
N8N_DEFAULT_LOCALE=zh-CN

N8N_HOST=127.0.0.1 組み合わせて N8N_EDITOR_BASE_URL、n8n を Nginx の背後に置き、port を直接公開しない一般的な方法で、サーバーへのデプロイについては次回詳しく説明します。ローカルでだけ使う場合は、HOST を localhost にすればよいです。

インストール後の見た目

ログイン後に入るのは「概要」ページです。左側は機能ナビゲーション、中央はワークフロー、実行、認証情報などのタブ、右上は「ワークフローを作成」ボタンです。

n8n 登录后进入的概览页,左侧为功能导航,中间为工作流列表
これはインストール完了後に初めてログインしたときに表示される画面です。英語のインターフェースが表示される場合は、設定で言語を簡体字中国語に変更してください。

「ワークフローを作成」をクリックすると、空のキャンバスが表示され、中央に「最初のステップを追加」という一行だけがあります:

n8n 新建工作流后的空白画布,中间显示添加第一步
空のキャンバスは壊れているわけではなく、正常な開始点です。すべてのワークフローはこの 1 つのプラス記号から始まります。

最初のワークフロー:3 つのノード

キャンバス中央のプラス記号をクリックすると、右側にノードライブラリが表示されます。検索ボックスに入力します manual、「Manual Trigger(手動トリガー)」を選ぶと、これがこのフローの起点になります。

n8n 节点库搜索 http 的结果,列出 HTTP Request、Webhook 等节点
ノードライブラリは英語名で検索でき、カテゴリからも探せます。中国語インターフェースでもノード名と説明は英語のままなので、英語で検索したほうが正確です。

次に、手動トリガーノードの右側にある小さなプラス記号から「Edit Fields(フィールドを編集)」を追加し、任意の 2 つのフィールドを書きます。たとえば city に「福州」を入力し、temp に 27 を入力します。さらに右側に「Code(コード)」ノードを追加し、コードボックスに次を貼り付けます:

return items.map(item => ({
  json: {
    message: `${item.json.city} 现在 ${item.json.temp} 度`
  }
}));

最後にキャンバス下部の「実行」ボタンをクリックします。3 つのノードが順に点灯し、すべて緑のチェックマークになれば、チェーン全体が通っていることがわかります。このとき任意のノードを開くと、右側の出力エリアで実際のデータを確認できます。

このステップの目的はコードの書き方を学ぶことではなく、インストールしたこの一式が動作することを確認することです。

本当にインストール成功と言える基準

インターフェースを開けるだけでは成功とは言えません。以下の 4 項目を順に確認し、すべて通って初めて成功です:

  1. エディターを開ける:ブラウザでアクセスしてもエラーが出ず、ワークフロー一覧が表示できる。
  2. 保存できる:新しいワークフローを作成し、適当なノードを追加し、自動保存されるまで待ってからページを再読み込みすると、内容は残っています。
  3. 再起動しても失われない:docker compose restart、さらに再読み込みすると、先ほどのワークフローはまだ残っています。この項目はデータボリュームが正しくマウントされているかを確認する唯一の方法です。
  4. 実行できる:手動ワークフローを一度実行し、ノードが緑になり、開くと出力データを確認できます。

3番目の項目は最も飛ばされやすく、最も致命的です。再起動後にワークフローが消えている場合は、n8n を疑わず、確認してください -v 後ろのパスが間違っていないか、または匿名ボリュームを使用していないかを。

よくあるエラー

ポートが使用中です。エラーメッセージに port is already allocated。ホスト側のポートを変更します。例えば -p 5679:5678、その後 5679 でアクセスします。

開けるがログインがぐるぐる回る。ローカルで http にアクセスする場合、もし N8N_SECURE_COOKIE がデフォルトの true なら、ブラウザーは cookie の書き込みを拒否します。ローカルテスト時は false に設定し、HTTPS を設定した後でこの行を削除します。

定期タスクの時刻が正しくない。は設定したが TZ は設定していない GENERIC_TIMEZONE、スケジュールノードは UTC で計算されます。両方とも設定して Asia/Shanghai。

再起動後に container が起動しなかった。追加するのを忘れた。 --restart unless-stopped または yml 内の restart。サーバー再起動後は手動で docker start n8n。

image の pull が遅い、または失敗する。中国国内のネットワークから Docker Hub を pull するとタイムアウトが頻発するので、image アクセラレータを設定してから pull するか、あるいは docker pull n8nio/n8n ときは気長に待つ。image は数百 MB ある。

中国語が有効にならない。N8N_DEFAULT_LOCALE 新規セッションのデフォルト言語にのみ影響し、既存のアカウントは設定で自分で変更する必要がある。また前述のとおり、中国語なのは UI シェルだけである。

まずはインターネットに公開しようと焦らない。

インストール直後にスマホからアクセスしたくて、5678 port をインターネットに開放してしまう——これは最もよくある間違いだ。n8n には各種システムの API Key が入っており、インターネット上に無防備に置くのは、玄関の前に鍵をぶら下げておくのと同じだ。

正しい方法は、まずローカルマシンまたは内部ネットワークで使い、長期的に使うと確認してから、次の記事の手順でドメインを紐付け、HTTPS を有効にし、Nginx でリバースプロキシし、127.0.0.1 のみで listen させることだ。

また、初回ログイン後すぐに管理者パスワードを強力なパスワードに変更すること。使わないこと。 admin123 このようなもの。

バージョンについて。

n8n は毎週マイナーバージョンをリリースしている。この記事を書いている時点で公式ドキュメントに記載されている安定版は 2.44.5、beta は 2.45.2;このインスタンスで動かしているのは 2.43.7 で、UI のスクリーンショットはすべてこれから取得している。

推奨:本番環境では latest を使わない。。image を具体的なバージョン番号に固定する。例えば。 n8nio/n8n:2.44.5アップグレードするときは数字を変えて再度 pull する。latest を使うと、ある日再起動したときにバージョンが知らないうちに変わり、ワークフローの動作もそれに伴って変わるため、原因調査がかなり面倒になる。

自分のバージョンを確認する方法:ログイン後、左側の一番下から設定に入るか、次を実行する docker exec n8n n8n --version。

次のステップ

インストールが完了したら、まず10分かけて画面を一通り確認する:n8n の画面ガイド:キャンバス、ノード、実行履歴はそれぞれ何を示すのか一通り確認したら、今日インストールしたこの一式で、上記の3ノードの例を一度入力してみる。手で覚える方が目で見るより定着する。

「なぜ学ぶ価値があるのか」を先に理解したい場合は、前回の記事を見返してほしい:n8n とは何か、ゼロから始める入門と応用シーン。

参考資料

最終更新:2026 年 10 月 22 日。Docker のいくつかのコマンドは公式ドキュメントに照らして確認した(当時明記されていた安定版は 2.44.5)。スクリーンショットは自分が使っている 2.43.7 のマシンで撮影した。

THE END