前回の記事「n8nとは?AIワークフロー自動化基盤の全体像をわかりやすく解説」では、n8nの全体像と特徴を整理しました。今回はその続編として、手元のPCでn8nをセルフホストし、初回セットアップから簡単なワークフローを動かすところまでを実際の手順で解説します。情報は2026年6月時点のものです。n8nはアップデートが非常に速く、画面や手順が変わる可能性があるため、最新の情報は公式ドキュメントもあわせて確認してください。
■本記事の内容
本記事のゴールは、Dockerでn8nをローカル起動すること、初回セットアップ(オーナーアカウント作成)を済ませること、そしてノード3つの簡単なワークフローを実行することの3点です。外部サービスのAPIキーは使わないため、準備するのはDockerが動くPCとブラウザだけです。
事前にDocker Desktop(Windows/Mac。LinuxはDocker Engineでも可)をインストールしておいてください。n8n公式はセルフホストの手段としてDockerを推奨しています。また、前回触れた脆弱性(CVE-2025-68613)への対応の意味でも、常に最新版のn8nを使うことを前提とします(2026年6月時点の安定版は2.x系です)。
■Dockerでn8nを起動する
ターミナル(WindowsならPowerShell、macOSならターミナル)で次の2つのコマンドを実行します。1つ目がデータ保存用のボリューム作成、2つ目がn8n本体の起動です。公式ドキュメントの推奨コマンドをもとに、タイムゾーンだけ日本(Asia/Tokyo)に設定しています。
docker volume create n8n_data
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-e GENERIC_TIMEZONE="Asia/Tokyo" \
-e TZ="Asia/Tokyo" \
-e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
-e N8N_RUNNERS_ENABLED=true \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n主なオプションの意味は次のとおりです。
- -p 5678:5678:ブラウザからアクセスするためのポート公開。
- GENERIC_TIMEZONE / TZ:タイムゾーン設定。Schedule Triggerなど時刻起動系ノードの基準時刻になります。
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true:設定ファイルのパーミッションを安全な状態に強制します。
- N8N_RUNNERS_ENABLED=true:公式が推奨するタスク実行方式(タスクランナー)を有効化します。
- -v n8n_data:/home/node/.n8n:ワークフローや認証情報などのデータをボリュームへ永続化します(データベースは標準でSQLite)。
- --rm:停止時にコンテナを削除します。データは上記ボリュームに残るため消えません。
※行末の「\」はmacOS/Linuxシェル用の行継続記号です。Windows PowerShellでは「\」を「`」(バッククォート)に置き換えるか、改行せず1行にまとめて実行してください。
ログに「Editor is now accessible via: http://localhost:5678」と表示されたら起動完了です。ブラウザで http://localhost:5678 を開きます。
■初回セットアップ(オーナーアカウントの作成)
初回アクセス時には「Set up owner account」(オーナーアカウントの設定)画面が表示されるので、メールアドレス・氏名・パスワードを入力してアカウントを作成します。これはこのローカルインスタンス専用の管理者アカウントであり、n8n Cloudのアカウントとは別物です。
注意点として、n8nは最初にアクセスしたユーザーがオーナーになる仕様です。セットアップが完了するまでは、ポート5678に到達できる人なら誰でもオーナーになり得るため、起動したらすぐにアカウントを作成してください。完了後はログインが必須になります。途中でアンケートや無料ライセンスキーの案内が表示された場合は、スキップしても利用に支障はありません。セットアップが終わると、ワークフロー一覧(Overview)画面が表示されます。
■(補足)Node.js環境ならnpxでも起動できる
Dockerを使わずに試したい場合は、Node.js(バージョン20.19〜24.xが必要)が入っていれば次の1コマンドでも起動できます。
npx n8nアクセス先は同じく http://localhost:5678 で、データはホームディレクトリ直下の「.n8n」フォルダに保存されます。手早く試すには便利ですが、環境の分離やアップデート管理の面から、継続的に使うなら公式推奨のDockerが無難です。グローバルインストールする場合は「npm install n8n -g」、更新は「npm update -g n8n」です。
■初めてのワークフローを作る
題材として、練習用ノードからダミーの顧客データを取得し、必要な項目だけに整形するワークフローを作ります。n8nが学習用に用意している「Customer Datastore (n8n training)」ノードを使うため、認証情報(Credentials)の登録は不要です。
1.ワークフローを新規作成する:Overview画面の「Build a workflow」(環境によっては作成ボタンから「Workflow」を選択)をクリックすると、ノードを配置するキャンバスが開きます。

2.トリガーを追加する:キャンバス上の「Add first step...」をクリックし、一覧から「Trigger manually」を選びます。これはManual Triggerノードといい、実行ボタンを押したときだけ動く、テストに最適なトリガーです。

3.データ取得ノードを追加する:Manual Triggerノード右側の「+」をクリックし、検索欄に「Customer Datastore」と入力して「Customer Datastore (n8n training)」を選択、操作は「Get All People」を選びます。設定画面の「Execute step」を押すとこのノード単体が実行され、右側のOUTPUTパネルに架空の顧客データ(nameやidなどの項目)が表示されます。確認できたら「Back to canvas」でキャンバスに戻ります。

4.整形ノードを追加する:Customer Datastoreノード右側の「+」から「Edit Fields (Set)」ノードを追加します。出力に残したい項目を追加し、左側のINPUTパネルの「Schema」タブに表示される「name」や「id」を設定欄へドラッグ&ドロップすると、参照式(Expression)が自動で入力されます。

5.ワークフロー全体を実行する:キャンバスに戻り「Execute Workflow」ボタンをクリックします。各ノードに緑色のチェックが付けば成功です。Edit Fieldsノードを開くと、OUTPUTパネルで整形後のデータをTable/JSON形式で確認できます。
なお、現行バージョンのn8nでは編集内容は数秒ごとに自動保存され、手動の保存ボタンはありません。Schedule TriggerやWebhookなどのトリガーで自動実行させたい場合のみ、画面右上の「Publish」でワークフローを本番公開する仕組みです。今回のようにManual Triggerだけのワークフローは、公開しなくてもそのまま手動実行できます。

■停止・再開とアップデート
n8nを止めるときは、起動中のターミナルでCtrl+Cを押します(別のターミナルから「docker stop n8n」でも可)。--rm付きで起動しているためコンテナ自体は削除されますが、データはボリューム「n8n_data」に残っており、同じdocker runコマンドを再実行すればアカウントもワークフローもそのまま再開できます。アップデートする際は、次のコマンドで最新イメージを取得してから再度起動します。
docker pull docker.n8n.io/n8nio/n8n■まとめと次回
今回は、Dockerによるn8nのローカル起動から、トリガー → データ取得 → 整形という最小構成のワークフロー実行までを確認しました。ローカル環境ならAPIキーなしで何度でも作り直せるため、n8nの操作感をつかむ学習環境として最適です。次回は、このローカル環境にLLMノードを組み込み、AIによる要約・分類を行うワークフローの作成に進む予定です。