n8nの導入方法

n8nできること

もっと見る
n8n_font.png
n8n_icon.png

n8n とは?
About n8n

n8n(エヌエイトエヌ) はオープンソースのワークフロー自動化ツールです。ノーコード/ローコードで多数のサービスをつなぎ、個人や業務の自動化タスクを作れます。メール・Slack・Google スプレッドシート・Webhook などさまざまなトリガーやアクションが用意されています。

この記事を読むとできること
Key Outcomes

n8n_font.png

1. OS を最新化

sudo apt update && sudo apt upgrade -y

まずはシステムを最新にします。セキュリティ更新も含めて行ってください。

2. 必要なツールをインストール

sudo apt install -y curl build-essential docker-compose

`docker-compose` は環境によっては不要(Docker Compose V2 があれば `docker compose` を使用)ですが、互換性のために入れておくのは問題ありません。

3. Docker をインストールしてユーザーを追加
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# 変更を反映するために再ログイン or このターミナルだけ反映:
newgrp docker

`newgrp docker` を使えばログアウトせずにグループを反映できます。

4. n8n 用ディレクトリを作成

mkdir -p ~/n8n-docker
cd ~/n8n-docker

作業用ディレクトリを作っておくと管理が楽になります。

5. docker-compose.yml を作成

version: "3.9"

services:
  n8n:
    image: n8nio/n8n:1.33.1
    platform: linux/arm64/v8
    restart: always
    ports:
      - "5678:5678"
    environment:
      - GENERIC_TIMEZONE=Asia/Tokyo
      - TZ=Asia/Tokyo
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=user_name
      - N8N_BASIC_AUTH_PASSWORD=*******
      - WEBHOOK_URL=http://n8n.local
      - N8N_HOST=n8n.local
      - N8N_PORT=5678
      - N8N_PROTOCOL=http
      - N8N_SECURE_COOKIE=false
    volumes:
      - ./n8n_data:/home/node/.n8n

注意: YAML 内のパスワード等は公開しないでください。開発環境では N8N_SECURE_COOKIE=false を使って HTTP で動作確認できますが、本番ではプロキシで HTTPS 化することを推奨します。

Proxy サーバーが外向けの TLS/SSL を管理している場合、n8n 側はローカル URL を使うのが自然です。Proxy が HTTPS 化を行ったら、外部からは安全にアクセスできます。

6. データ保存用ディレクトリの権限調整

sudo mkdir -p ~/n8n-docker/n8n_data
sudo chown -R $(id -u):$(id -g) ~/n8n-docker/n8n_data
chmod 755 ~/n8n-docker/n8n_data

コンテナ内の node ユーザー(UID 1000)が書き込めるようにしておきます。

7. 起動(Docker Compose v2 の場合)

docker compose up -d
docker ps
docker compose logs -f

`docker compose`(スペース有り)は Compose v2 のコマンドです。もし古い `docker-compose` を使っている場合は環境に合わせてください。

8. 動作確認

ブラウザで以下にアクセス:
http://<ラズパイのIP>:5678
例: http://192.168.0.201:5678

初回はオーナーアカウント作成画面が出るので、管理者アカウントを作成してください。

⚠️ つまずきポイント

ポートの誤解

よくあるミス:
http://n8n.local とだけブラウザに入れて「つながらない」と慌てるケース。
正しくはポート 5678 を指定: http://n8n.local:5678

もし 80 番(ポートなし)でアクセスしたい場合は、リバースプロキシ(nginx/Caddy)で 80→5678 を転送してください。

SQLite のスキーマエラー

エラー例:
QueryFailedError: SQLITE_ERROR: no such column: WorkflowEntity__WorkflowEntity_shared.userId

古いデータベースと n8n のバージョン差異で発生します。対応策は下記の通り:

  1. バックアップを作成する(重要)
  2. データを破棄してクリーンに再作成する場合:
    docker compose down -v
    sudo rm -rf ~/n8n-docker/n8n_data
    docker compose up -d
  3. データを残して移行したい場合は PostgreSQL 等への移行を検討する(やや高度)

認証(Basic Auth)関連の注意

環境変数例:
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=user_name
N8N_BASIC_AUTH_PASSWORD=user_password

Basic Auth を有効にすると、ブラウザ側で HTTP レベルの認証ポップアップが出ます。初回セットアップ中は Basic Auth を無効化する(N8N_BASIC_AUTH_ACTIVE=false)と手間が少ないです。ただし公開運用時は必ず有効化してください。

Secure Cookie エラー

エラー: "Your n8n server is configured to use a secure cookie..."

原因は HTTPS ではないのにセキュアクッキーが有効になっていること。対処法:

  • 推奨: リバースプロキシで TLS(HTTPS)を設定する
  • ローカルでテストする場合: N8N_SECURE_COOKIE=false を設定して一時的に回避

補足

💡 補足として、万が一に備えて「バックアップと復元の方法」についても触れておきます。

バックアップ方法(手動)

# コンテナを停止(推奨)
cd ~/n8n-docker
docker compose down

# 日付付きバックアップ
mkdir -p ~/n8n-backup/$(date +%Y%m%d)
cp -r ~/n8n-docker/n8n_data ~/n8n-backup/$(date +%Y%m%d)

SQLite の場合は稼働中のファイルコピーは危険なので、停止してからバックアップしてください。

復元方法

# 現在の n8n を停止
cd ~/n8n-docker
docker compose down

# 現在のデータを置き換え
sudo rm -rf ~/n8n-docker/n8n_data
cp -r ~/n8n-backup/20250918/n8n_data ~/n8n-docker/
sudo chown -R 1000:1000 ~/n8n-docker/n8n_data

# コンテナ起動
docker compose up -d

日付は適宜読み替えてください。

まとめ

この記事では、Raspberry Pi に n8n をインストールし、Webhook、Basic Auth、再起動自動化、バックアップ・復元、よくあるトラブルとその対応までを解説しました。まずはローカルで安定稼働させ、必要ならプロキシ/TLS を導入して外部公開を検討してください。

writer

ryohma
りょうま

写真 2025-03-18 23.09.11.jpg

EC業界システムエンジニア。
アパレルECを9年経験後、
現在は木の玩具、家具ECへ。
世界販売に向けて挑戦中。
感じたことをつぶやきます。
趣味は、珈琲、キャンプ。