n8nのインストール方法まとめ
はじめに
最近、n8nというワークフロー自動化ツールを使い始めたので、インストール方法を自分用にまとめておこうと思います。
毎日同じ作業を繰り返すのって本当に面倒ですよね。複数のサービスを手動で連携させたり、定期的に同じデータを転記したり。そういう作業を自動化できるのがn8nです。
n8nってなに?
n8nは、いろんなサービスやAPIを繋げて自動化できるツールです。読み方は「ノード・エイト・ノード」らしいです。
特徴をいくつか挙げると:
- オープンソースで無料で使える
- 300種類以上のサービスに対応している(Slack、Gmail、Notion、GitHubなど)
- 自分のサーバーで動かせる
- プログラミングできなくても使えるし、JavaScriptも書ける
- Zapierの代わりとして使えそう
具体的に何ができるかというと、例えば:
- Gmailで特定のメールを受信したらSlackに通知する
- Googleフォームの回答を自動でスプレッドシートに整形して保存
- 特定のキーワードでツイートされたらNotionに保存
- カレンダーの予定に基づいて自動でタスクを作成
- 複数のサービス間でデータを自動同期
こんな感じのことができます。
インストール方法を選ぶ
n8nをインストールする方法は主に3つあります。
方法1: npm
Node.jsがすでに入っている人向け。一番シンプルで軽量。ただ、Node.jsの知識がある程度必要です。
方法2: Docker
環境を汚したくない人におすすめ。Dockerの基本的な使い方を知っていれば使えます。
方法3: docker-compose
本格的に運用したい人向け。設定ファイルで管理できるので、再現性が高いです。最初の設定はちょっと複雑かも。
方法1: npmでインストール
Node.jsがすでに入っていれば、これが一番簡単です。
まず、Node.jsのバージョンを確認します。18.x以上が必要です。
node --version
インストールはこれだけ。
npm install -g n8n
インストールが終わったら起動します。
n8n
ブラウザで http://localhost:5678 を開くと、n8nの画面が出てきます。
メリットは、コマンド1つで簡単にインストールできることと、すぐ試せること。アップデートも npm update -g n8n で終わります。
注意点としては、システム全体にインストールされるので、複数のバージョンを使い分けたい場合はちょっと面倒かもしれません。
方法2: Dockerでインストール
Dockerを使うと、環境を汚さずにn8nを動かせるので個人的におすすめです。
まず、Dockerが入っているか確認。
docker --version
とりあえず試すだけなら、これで起動できます。
docker run -it --rm \\\\
--name n8n \\\\
-p 5678:5678 \\\\
docker.n8n.io/n8nio/n8n
ただし、これだとコンテナを停止したときにデータが消えます。
実際に使うなら、データを保存する設定が必要です。
docker run -it --rm \\\\
--name n8n \\\\
-p 5678:5678 \\\\
-v ~/.n8n:/home/node/.n8n \\\\
docker.n8n.io/n8nio/n8n
日本時間で動かすために、タイムゾーンも設定しておくといいです。
docker run -it --rm \\\\
--name n8n \\\\
-p 5678:5678 \\\\
-e GENERIC_TIMEZONE="Asia/Tokyo" \\\\
-e TZ="Asia/Tokyo" \\\\
-v ~/.n8n:/home/node/.n8n \\\\
docker.n8n.io/n8nio/n8n
方法3: docker-composeでインストール
本格的に運用するなら、docker-composeがいいと思います。設定ファイルで管理できるので、後から見返したり、チームで共有したりするのが楽です。
プロジェクト用のディレクトリを作って、docker-compose.yml ファイルを置きます。
version: '3.8'
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- "5678:5678"
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=your_secure_password_here
- GENERIC_TIMEZONE=Asia/Tokyo
- TZ=Asia/Tokyo
- N8N_HOST=localhost
- N8N_PORT=5678
- N8N_PROTOCOL=http
- NODE_ENV=production
volumes:
- ./n8n-data:/home/node/.n8n
環境変数について少し説明しておきます。
N8N_BASIC_AUTH_ACTIVE: 基本認証を有効にするかどうか。セキュリティのためtrueにしておくのがいいです。N8N_BASIC_AUTH_USER: ログイン時のユーザー名。好きな名前に変更してください。N8N_BASIC_AUTH_PASSWORD: ログイン時のパスワード。必ず変更してください。GENERIC_TIMEZONE: ワークフローのタイムゾーン。日本ならAsia/Tokyo。TZ: システムのタイムゾーン。これもAsia/Tokyo。N8N_HOST: ホスト名。ローカルならlocalhost、ドメインを使うならそれに変更。N8N_PROTOCOL:httpかhttps。HTTPSを使うならhttpsに変更。
起動方法はこんな感じ。
# docker-compose.ymlがあるディレクトリで実行
docker-compose up -d
# ログを見たいとき
docker-compose logs -f
# 停止するとき
docker-compose down
# 再起動するとき
docker-compose restart
初回セットアップ
インストールが終わったら、ブラウザで http://localhost:5678 を開きます。
初めてアクセスすると、管理者アカウントの作成画面が出てきます。メールアドレスとパスワード(8文字以上がいいです)を入力してアカウントを作ります。
それが終わると、ワークフローを作れるようになります。「Create new workflow」というボタンがあるので、それをクリック。
試しに簡単なワークフローを作ってみるといいと思います。例えば:
- Scheduleノードを追加(定期実行用)
- Setノードを追加(データ設定用)
- ノード同士を繋げて保存
これだけでも、自動化の仕組みが理解できるはずです。
HTTPS設定(外部公開する場合)
外部からアクセスできるようにする場合は、HTTPSの設定をしたほうがいいです。
一般的なやり方としては、NginxとかTraefikみたいなリバースプロキシを前に置いて、Let’s Encryptで無料のSSL証明書を取得する方法があります。
docker-compose.ymlにnginxを追加する場合、こんな感じになります。
version: '3.8'
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
environment:
- N8N_HOST=your-domain.com
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://your-domain.com/
- GENERIC_TIMEZONE=Asia/Tokyo
- TZ=Asia/Tokyo
volumes:
- ./n8n-data:/home/node/.n8n
networks:
- n8n-network
nginx:
image: nginx:alpine
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
- ./ssl:/etc/nginx/ssl:ro
networks:
- n8n-network
depends_on:
- n8n
networks:
n8n-network:
driver: bridge
よくある質問
n8nは完全無料?
セルフホストで使う分には無料です。n8n Cloudという公式のホスティングサービスもあって、それは有料ですが、自分でサーバーを用意すれば無料で使えます。
Zapierとの違いは?
一番の違いは、n8nは自分のサーバーで動かせること。オープンソースなので、カスタマイズも自由です。Zapierは使いやすいけど、月額料金がかかるし、実行回数に制限があります。
プログラミングの知識は必要?
基本的なワークフローならノーコードで作れます。ただ、複雑なことをやろうとすると、JavaScriptの知識があったほうが便利です。
どのくらいのサーバースペックが必要?
軽いワークフローなら、メモリ512MB、CPU 1コアでも動きます。本格的に使うなら、メモリ2GB以上、CPU 2コア以上あったほうがいいかなと思います。
データはどこに保存される?
デフォルトでは、SQLiteデータベースが ~/.n8n に保存されます。PostgreSQLやMySQLも使えます。
まとめ
n8nのインストール方法を3つ紹介しました。
- とりあえず試したい → npm
- 環境を汚したくない → Docker
- 本番環境で運用 → docker-compose
個人的には、Dockerで試してみて、良さそうだったらdocker-composeに移行するのがおすすめです。
n8nを使えば、毎日の面倒な作業を自動化できるので、もっと大事なことに時間を使えるようになります。
まずは簡単なワークフローから始めて、少しずつ慣れていくのがいいと思います。
参考になれば幸いです。
他にもdockerの使い方なども勉強中なので一緒に勉強していきましょう。
