3行でいうと

  • セルフホストの入れ方は、公式ドキュメントに4つ並びます。1行のセットアップ(curl -fsSL https://get.n8n.io | sh)、Docker Compose、Docker、npm。Dockerのページには「内容が古い」、npmのページには「n8n 3.0から非推奨」と書かれています。
  • どの入れ方でも、起動後に開くのは http://localhost:5678 です。最初に開くとオーナーアカウントの登録画面が出ます(メールアドレス、名、姓、パスワード)。
  • n8n Cloudは、公式のドキュメントに「サインアップの画面の手順」が見つかりませんでした。ドキュメントにあるのは、サインアップ後の「Cloud console」の使い方と、トライアルの扱いです。
  • 入れたあとに最初に見ておく設定は、タイムゾーン、データの保存先(ボリューム)、暗号化キーの置き場所、メール送信(SMTP)の4つです。
  • つまずきは、Dockerが動いていない、WindowsでPowerShellから実行した、ポートが開かない、再起動でデータが消えた、の4型が公式の記述から読み取れます。

この記事は、公式の資料を2026年10月25日に読んでまとめたものです。この記事は、実際に使って確かめた記録ではありません。手順は「公式の手順を順に並べたもの」で、画面名・メニュー名・コマンドは公式の表記を引いています。公式ページは要約の形で取得したため、記号や改行が崩れて読めた箇所は、組み直さずに「全文は公式ページで確認」と書いています。画面の表記は版によって変わるので、手元の画面と照らして読んでください。

先に結論

前提:用語をそろえる

たとえ話:引っ越しの荷造り

Dockerは、荷物を段ボール箱に詰めて運ぶ引っ越しに似ています。箱ごと新しい家に置けば、中身はそのまま動きます。ただし箱を捨てると中の物も消えるので、残したいものは「ボリューム」という別の倉庫に入れておきます。これは僕らのたとえで、公式の表現ではありません。

手順0:入れる前に決めること

  1. 場所を決める。 n8n Cloudで始めるのか、自分の環境に入れるのか。01の「どこで使えるか」の表を見てください。
  2. 自分の環境に入れるなら、道具をそろえる。 公式のページごとの前提は次のとおりです。
入れ方 公式が書く前提
1行のセットアップ Docker+Docker Compose v2プラグイン。Dockerがバックグラウンドで動いていること。Windowsは、Docker DesktopのWSL2連携を有効にしたWSLから実行
Docker Compose Docker EngineとDocker Compose v2(docker compose version で確認)。メモリ4GB以上・vCPU 2以上。Windowsは、WSL+Docker DesktopのWSL2バックエンド、またはLinuxディストリビューション内のDocker Engine。プロジェクトは ~/n8n のようにWSL側に置き、/mnt/c/... 以下には置かない
Docker Docker。Mac・Windows・Linuxでは、Engine と Compose を含む Docker Desktop。GUIのないLinuxでは、Docker Engine と Docker Compose を別々に入れる。リリースの種類は stable(公式は本番用と書く)と beta
npm Node.js(20.19から24.xまで)。Dockerが要るのは、トンネル機能を使うときだけ
  1. データの置き場所を決める。 既定ではSQLite(1つのファイルに入る小さなデータベース)です。チームや本番には、公式がPostgresを挙げています。この記事の「最初の設定」で、もう一度触れます。

n8n Cloudの場合:公式ドキュメントで確認できたこと

公式の「Try free then choose a plan」と「Use n8n Cloud」のページは、サインアップの画面(ボタンやフォームの項目)を説明していませんでした。画面の手順は、この記事では書けません。ドキュメントで確認できたのは、次のことです。

  1. トライアル:14日間で、Proの機能を使え、実行は1000回まで、計算能力はStarterと同じです。アップグレードしなければ、14日で自動的に失効し、n8nがインスタンスを削除します。料金はかかりません。終了後90日以内なら、ワークフローをダウンロードできます。
  2. クレジットカード:n8nの料金ページに「No credit card is required for the n8n Cloud trial」とあります(Businessのトライアルだけカードが要る、とも書かれています)。ドキュメントのトライアルのページには、カードの記載がありませんでした。
  3. Cloud consoleへの入り方(公式の「Use the Cloud console」):
  4. n8nの画面にオーナーとしてログインし、左のメニューの「Admin Panel」を選ぶ。
  5. または、app.n8n.cloud を直接開く。
  6. インスタンスが止まっていても使える方法として、app.n8n.cloud/magic-link を開き、「Instance owner email」にオーナーのメールアドレスを入れ、「Send magic link」を押し、届いたメールのリンクを開く。
  7. Cloud consoleを開けるのはオーナーだけ、と書かれています。
  8. インスタンスを開く:Cloud consoleの「Overview」で「Open instance」を選ぶと、n8nのエディタに行きます。
  9. Cloud consoleの左のサイドバー:Overview、Instance settings、Assistant credits、Gateway credits、Billing、Export。Assistant creditsとGateway creditsは、その機能が使えるインスタンスにだけ出る、と書かれています。

Cloudでの最初の設定:タイムゾーン

公式の「Set your timezone」の手順です。

  1. Cloud consoleで「Instance settings」を選ぶ。
  2. 「Runtime」のセクションで「Time zone」のドロップダウンを開き、タイムゾーンを選ぶ(入力して検索できる)。
  3. 画面の下のバーの「Save and restart」を選ぶ。

再起動が終わるまで、インスタンスはオフラインになります。このタイムゾーンは、Schedule TriggerとDate & Timeのノードに効く、と書かれています。なお、Schedule Triggerのページは、Cloudの既定はGMTで、サインアップ時にオーナーのタイムゾーンを検出しようとする、と書いています。

Cloudのバージョンを変える

公式の「Update your version」の手順です(オーナーだけ)。

  1. Cloud consoleの「Instance settings」で、上の「Updates」を見る。
  2. 「n8n version」のドロップダウンから版を選ぶ(比べたいときは「Open changelog」)。
  3. 「Save and restart」を選ぶ。1〜2分、使えなくなります。
  4. メジャーバージョンや、データベースの移行を伴う版では確認が出るので、「Update and restart」を選ぶ。公式のページは、この版の変更そのものが元に戻せない(前の版へロールバックできない)、と書いています。

リリースの流れ(「Release track」)には、Beta(新しい版がすぐ来る)とStable(Betaで時間を置いた版が来る。公式が、重要な業務には Stable を recommended と書く)があります。更新の頻度(「Update cadence」)には、「Every 2 weeks」(公式が most instances に recommended と書く)と「Every new release」があります。

セルフホスト方法1:1行のセットアップ

公式の「One-line setup」の手順です。Docker+Docker Compose v2が前提です。

1. 実行する

ターミナルで、次のコマンドを実行します。公式ページのコマンドです(要約を介して取得したため、実行前に公式ページの原文と照らしてください)。

curl -fsSL https://get.n8n.io | sh

公式ページが書く、このスクリプトの動作は次のとおりです。

  1. DockerとDocker Composeが入っていて動いているかを確かめ、問題があれば直し方を表示する。
  2. 今いる場所に n8n フォルダーを作る。
  3. そのフォルダーに compose.yml、searxng-settings.yml、.env を書く。.env には、一意の秘密の値が自動で作られる。
  4. n8nとサンドボックス関連のサービスをダウンロードして起動する。

インターネットから取った実行用の文字列をそのまま流し込むことに抵抗があるときは、公式が示す「先に中身を見る」方法があります。

curl -fsSL https://get.n8n.io -o get-n8n.sh
less get-n8n.sh   # review it
sh get-n8n.sh

2. 結果を見る

公式の例では、成功すると「n8n is running at: http://localhost:5678」と「Data stored in: ./n8n (Docker volume: n8n-data)」のような行が出ます。最初の起動は数分かかることがあり、URLの行は、n8nの準備ができてから出る、と書かれています。ページが開かないときは、待ってから更新します。外から届くのは5678番のポートだけで、サンドボックスと検索のサービスは外から見えない、と書かれています。

3. スクリプトのオプション(公式の表)

オプション 公式の説明
--version スクリプトの版と最新のn8nの版を表示。--version 2.31.4 のように番号を付けると、その版を入れる
--no-start 設定ファイルだけ作って、起動しない
--upgrade 既存の入れたものを更新する
--help すべてのオプションを表示

4. 毎日のコマンド(公式のページから)

# 止める
docker compose -f ./n8n/compose.yml down

# 再び起動する
docker compose -f ./n8n/compose.yml up -d

# 最新に更新する
curl -fsSL https://get.n8n.io | sh -s -- --upgrade

更新すると .env の N8N_VERSION と N8N_SANDBOX_VERSION が書き換わり、データと設定は残る、と書かれています。

5. 消すとき

公式のページは、次の2行で「n8nとすべてのデータが消える」と明記しています(-v がボリュームも消す)。実行前に、残したいワークフローを書き出してください。

docker compose -f ./n8n/compose.yml down -v
rm -rf ./n8n

6. 公式が書く注意

セルフホスト方法2:Docker Compose

公式の「Install using Docker Compose」のページの手順です。このページは、公式が、Dockerのページよりも先に勧めている入れ方です(Dockerのページの冒頭に「このページは古い。Docker Composeを使うように」という趣旨の注記があります)。

  1. フォルダーを作る。
mkdir n8n && cd n8n
  1. .env を作る。 公式ページには、N8N_VERSION、N8N_SANDBOX_VERSION、N8N_RUNNERS_AUTH_TOKEN、SANDBOX_API_KEYS、SANDBOX_API_RUNNER_REGISTRATION_TOKEN、SANDBOX_API_RUNNER_API_KEY、N8N_SANDBOX_SERVICE_API_KEY、SEARXNG_SECRET、N8N_INSTANCE_AI_SEARXNG_URL の項目が並びます。change-me-... の部分は、自分で決めた値や、乱数で作った値に置き換えます。バージョン番号は、公式のリリースのページ(n8nは GitHub の releases、サンドボックスは n8n-sandbox-service の releases)から、最新の安定版の番号を取る、と書かれています。.env は、バージョン管理に入れない、とも書かれています。項目の並びの全文は、公式ページで確認してください。
  2. searxng-settings.yml を作る。 SearXNGの既定のイメージはHTMLしか返さないので、JSON形式を有効にするための小さなファイルです。中身は公式ページに数行で載っています。
  3. compose.yml を用意する。 公式ページは、ファイルをGitHubから埋め込んでいます。この記事の取得では中身が読めなかったため、写しません。置き場所は、公式ページが示す https://github.com/n8n-io/n8n/blob/master/docker/get-n8n-compose.yml です。サービスは、n8n、sandbox-certs(一度だけ動いて終わる)、sandbox-api、sandbox-runner-1(特権つき)、searxng と説明されています。データベースのサービスはなく、既定ではSQLiteです。
  4. 起動する。
docker compose up -d
docker compose ps

sandbox-api が healthy になるまで待ちます。そのあと sandbox-runner-1 と n8n が自動で起動する、と書かれています。 6. 確かめる。 公式ページのコマンドです。

docker compose exec n8n wget -qO- http://sandbox-api:8080/healthz
docker compose logs sandbox-api | grep -i runner
curl -sf http://localhost:5678/healthz
  1. ブラウザーで http://localhost:5678 を開く。

公式ページには、このほか、n8n Assistantの有効化、PostgreSQLへの切り替え(新しいインスタンスだけ。SQLiteからの移行は対象外)、つまずきの一覧が載っています。ドメインやSSL(Traefik)、停止と更新の手順は、このページには書かれていませんでした(更新のDocker Composeの手順は、Dockerのページに docker compose pull、down、up -d の順で載っています)。

セルフホスト方法3:Docker(単体)

公式の「Install with Docker」のページです。冒頭に「このページは古い。Docker Composeを使うように」という趣旨の注記があります。読んだ時点の stable は2.44.6、beta は2.45.3と書かれていました。

  1. データ用のボリュームを作る。
docker volume create n8n_data
  1. 起動する。 <YOUR_TIMEZONE> を、tzデータベースの名前(たとえば Asia/Tokyo)に置き換えます。公式ページの例です(要約を介して取得したため、実行前に原文と照らしてください)。
docker run -it --rm \
 --name n8n \
 -p 5678:5678 \
 -e GENERIC_TIMEZONE="<YOUR_TIMEZONE>" \
 -e TZ="<YOUR_TIMEZONE>" \
 -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
 -v n8n_data:/home/node/.n8n \
 n8nio/n8n

公式の説明は次のとおりです。

部分 公式の説明
-p 5678:5678 パソコンの5678番を、コンテナの5678番につなぐ
TZ コンテナのシステムのタイムゾーン。date のようなコマンドに効く
GENERIC_TIMEZONE Schedule Triggerのような、時刻で動くノードのタイムゾーン
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true 設定ファイルの権限を、決まった形に強制する
-v n8n_data:/home/node/.n8n データを再起動後も残す
  1. ブラウザーで http://localhost:5678 を開く。

--rm を付けているので、止めるとコンテナは消えます。残るのはボリューム(n8n_data)だけです。次に起動するときも、同じボリュームの指定を付けます。N8N_RUNNERS_ENABLED は、n8n 2.0から非推奨で、設定しなくてよい、と書かれています。

Dockerで更新する

公式ページは、Docker Desktopでは「Images」タブでn8nのメニューから「Pull」し、コンテナを止めて起動し直す、と書いています。コマンドでは、docker pull n8nio/n8n で最新の安定版を取り、古いコンテナを docker stop、docker rm してから、元と同じ -p、-e、-v の指定で docker run し直します(ページの例は、-d を付けて裏で動かす形です)。Docker Composeで動かしている場合は、docker compose pull、docker compose down、docker compose up -d の順です。

PostgreSQLを使う

SQLiteの代わりにPostgreSQLを使うには、docker run に DB_TYPE=postgresdb と、DB_POSTGRESDB_DATABASE、_HOST、_PORT、_USER、_SCHEMA、_PASSWORD の各変数を足します。PostgreSQLを使っても、暗号化キーなどのために .n8n のボリュームは残す、と書かれています。

セルフホスト方法4:npm

公式の「Installing n8n with npm」の手順です。ページの冒頭に、次の警告があります。

手順は次のとおりです。

  1. Node.jsを入れる。 20.19から24.xまで。Windowsで問題があるときは、公式がMicrosoftのNode.jsのWindows向けの案内を見るよう書いています。
  2. 入れる。 入れずに試すなら npx n8n、全体に入れるなら次のコマンドです。
npm install n8n -g
  1. 起動する。
n8n
# または
n8n start
  1. ブラウザーで http://localhost:5678 を開く。
  2. 更新する。
npm update -g n8n
  1. 更新を戻す。 公式は、古い版を入れ直し、データベースの移行があるときは機能のドキュメントとリリースノートの手順を見て、現行の版で n8n db:revert を実行する(移行が複数あるなら繰り返す)、と書いています。

このページには、アンインストールの手順と、ほかのパソコンから開く方法は書かれていませんでした。

最初のログイン:オーナーアカウントを作る

公式の「User management」のページの記述です。

  1. 上のどの方法でも、ブラウザーで http://localhost:5678 を開く。
  2. 登録の画面が出る。公式は、入れる情報を、メールアドレス、名、姓、パスワードと書いています(画面に出る項目名の表記は、読んだページでは確認できていません)。パスワードは、「8文字以上で、数字を1つ以上、大文字を1つ以上」と書かれています。
  3. 「Next」を押すと、作ったオーナーアカウントでログインされる。

メールアドレスを登録して無料のライセンスキーをもらう「Registered Community」は、最初のアカウント作成のときに選べます(公式の「Compare editions」)。すでに入れたものでは、左下の3つの点から「Settings」、「Usage and plan」、「Unlock」の順に進み、メールアドレスを入れて「Send me a free license key」を押します。キーは、届いたメールのボタンか、「Options > Settings > Usage and plan」の「Enter activation key」で有効にします。登録で加わるのは、フォルダ、エディタ内のデバッグ(Debug in editor)、実行データの独自記録、と書かれています。

環境変数であらかじめオーナーを決める

n8n 2.17.0以降は、画面で登録する代わりに、環境変数でオーナーを決められます(公式の「User management」)。

最初の設定

設定1:タイムゾーン(セルフホスト)

設定2:データの置き場所

設定3:暗号化キー

公式の「Set a custom encryption key」のページは、n8nが最初の起動で、ランダムな暗号化キーを作り、~/.n8n フォルダーに保存すること、このキーで認証情報を暗号化してデータベースに入れることを書いています。自分のキーを使うには、環境変数 N8N_ENCRYPTION_KEY に文字列を入れます。キューモードでは、すべてのワーカーに同じキーを指定する、と書かれています。このフォルダーやキーを失うと、保存した認証情報が読めなくなる、とは、読んだページには明記がありません。バックアップの方針は、各自で決める必要があります。

設定4:メールの送信(SMTP)

公式は、ユーザーの招待とパスワード再設定にSMTPを勧めています。n8n 0.210.1以降はSMTPは任意で、なくても、招待のリンクをコピーして手で送れます。ただし、その場合、ユーザーはパスワードを再設定できない、と書かれています。設定する環境変数は、N8N_EMAIL_MODE(smtp)、N8N_SMTP_HOST、N8N_SMTP_SENDERが必須、N8N_SMTP_PORT(既定465)、N8N_SMTP_USER、N8N_SMTP_PASS、N8N_SMTP_SSL(既定 true)が任意です。反映には再起動が要ります。

設定5:環境変数の渡し方

公式の「Configuration methods」の記述です。

設定6:ユーザーを増やす

オーナーでログインし、左下のメニューから「Settings」を開き、「Users」、「Invite」の順に進み、メールアドレスを入れて「Invite user」を押します。公式は、n8nが参加のリンクをメールで送る、と書いています(SMTPが前提)。Cloudでの招待の手順は、読んだページ(セルフホスト向け)には書かれておらず、公式で確認できていません。Communityには、プロジェクトなどが含まれません(01)。

動いたかを確かめる

  1. ブラウザーで http://localhost:5678 が開き、オーナーでログインできる。
  2. 公式の「Build your first workflow」(06で扱います)を、最後まで進められる。
  3. Docker Composeの場合は、公式の3つのコマンド(上の「確かめる」)が通る。
  4. 1行のセットアップの場合は、docker compose -f ./n8n/compose.yml ps でコンテナの状態を見る(これは公式の例のコマンドの派生で、この記事の案です)。

つまずきと直し方

公式に書かれた範囲だけを表にします。公式にない原因は、書いていません。

症状 公式の記述から読めること
1行のセットアップが動かない DockerとDocker Compose v2プラグインが要る。古い単独の docker-compose では動かない。Dockerが裏で動いていることをスクリプトが確かめる
WindowsのPowerShellやコマンドプロンプトで動かない 公式は、これらでは動かない、WSLから実行する、と書く。Git Bashは未確認と書かれている
ページが開かない 1行のセットアップは、最初の起動に数分かかり、準備ができてからURLが出る。待って更新する
Docker Composeで sandbox-api や sandbox-runner-1 が証明書のエラーを出す sandbox-certs が終わっていない。docker compose logs sandbox-certs を見る
sandbox-runner-1 が「... must be set」で再起動を繰り返す 必須の変数が足りない(SANDBOX_RUNNER_API_KEYS や SANDBOX_RUNNER_REGISTRATION_TOKEN など)と書かれている
Linuxでは動くのにWSLでは動かない バインドマウントのパスの問題が多い。プロジェクトを /mnt/c/... から出す
再起動したらデータが消えた 公式は、-v n8n_data:/home/node/.n8n の指定がデータを残す仕組みで、--rm で消えるのはコンテナ、ボリュームは残る、起動のたびに同じボリュームの指定を付ける、と書く。指定を見直す
スケジュールの時刻がずれる タイムゾーンの設定を見る(上の設定1)。ワークフロー設定、インスタンス、の順で使われる
パスワードを忘れた、再設定のメールが来ない SMTPがないと、ユーザーはパスワードを再設定できない(公式の「User management」)

気をつけること

出典