ConoHa VPS(Ver.3.0)にて提供しているDockerイメージにて、n8n(コミュニティ版)をデプロイする手順例を記載します。

動作確認時の各種ソフトウェア情報

インストールOS

OS バージョン
Ubuntu 22.04

主要ソフトウェア

パッケージ バージョン ライセンス
Docker CE 27.5.1 Apache 2
Caddy v2.10.0 Apache 2
n8n 1.100.1 fair-code

https通信設定のため、事前に下記を準備してください。

  • ・ドメイン

メモ

設定可能なドメインがない場合、VPSの逆引きホスト名を活用ください。ConoHa VPS(Ver.3.0)では、VPSに設定されているグローバルIPアドレスの逆引きホストが標準で設定されており、該当グローバルIPアドレスに正引きされてます。

n8nとは

n8n(エヌエイトエヌ)は、ノーコードまたはローコードで様々なアプリケーションやサービスを連携させ、業務プロセスを自動化できるオープンソースのワークフロー自動化プラットフォームです。

Step 0: セキュリティグループについて

ConoHa VPS(Ver.3.0)ではサーバー毎にIPアドレスまたはポートでトラフィックを制御するセキュリティグループ(仮想ファイアウォール)が設定されます。
本テンプレートをご利用の場合は、予め利用するポートの通信許可設定が必要です。
詳細はセキュリティグループを参照してください。

今回は「Docker」イメージから作成するサーバーに以下セキュリティグループを設定します。

  • ・IPv4v6-SSH
  • ・IPv4v6-Web

Step 1: サーバーの準備

ConoHa VPS(Ver.3.0)の「Docker」イメージから作成したサーバーにコントロールパネルのコンソールやSSHでログインします。

n8nの最小システム要件を満たすVPSが必要です。

  • CPU >= 2 Core
  • RAM >= 2 GiB
鍵認証でのSSH接続コマンド例
# ssh -i 秘密鍵ファイルのパス root@VPSのグローバルIPアドレス

Step 2: OS内ファイアウォールの設定

1. アプリケーションの登録

# cat <<EOF > /etc/ufw/applications.d/web-server
[web-server]
title=web-server
description=web-server
ports=80/tcp|443/tcp
EOF

2. アプリケーションの許可

# ufw allow web-server

3. ファイアウォール設定再読込

# ufw reload

4. ファイアウォールルール確認

# ufw status verbose
Status: active
Logging: on (low)
Default: reject (incoming), allow (outgoing), deny (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp (OpenSSH)           ALLOW IN    Anywhere
80/tcp (web-server)        ALLOW IN    Anywhere
443/tcp (web-server)       ALLOW IN    Anywhere
22/tcp (OpenSSH (v6))      ALLOW IN    Anywhere (v6)
80/tcp (web-server (v6))   ALLOW IN    Anywhere (v6)
443/tcp (web-server (v6))  ALLOW IN    Anywhere (v6)

Step 3: 一般ユーザーの準備

1. 一般ユーザーの作成

ここでは「n8n-user」というユーザーを作成します。コマンド実行後パスワード設定とユーザー情報設定を求められるので任意のパスワードとユーザー情報を設定ください。ユーザー情報は「ENTER」キーを押下することでデフォルト設定が可能です。

# adduser n8n-user

2. sudoグループに追加

# usermod -aG sudo n8n-user

3. ユーザーの切り替え

# su n8n-user

4. 作業ディレクトリへ移動

ここでは一般ユーザーのhomeディレクトリとします。

$ cd ~

Step 4: Caddyのインストール

今回はCaddyを利用し、Let’s EncryptのSSL証明書取得、設定を自動化します。

$ sudo apt install -y debian-keyring debian-archive-keyring

$ curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg

$ curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list

$ sudo apt update

$ sudo apt install caddy -y

Step 5: Caddyの設定変更

1. Caddyの構成ファイル更新

Caddyの構成ファイルに追記します。ドメイン名には実際のドメイン名に置き換えてください。

$ sudo tee -a /etc/caddy/Caddyfile <<EOF > /dev/null
ドメイン名 {
    reverse_proxy localhost:5678
}
EOF

2. Caddyの再起動

設定反映のため、Caddyを再起動します。

$ sudo systemctl restart caddy

Step 6: n8nの起動

1. n8nディレクトリ作成

n8n用のディレクトリを作成し、そこに移動します。

$ mkdir ~/n8n

$ cd ~/n8n

2. docker-compose.yml作成

docker-compose.ymlを作成します。

$ cat <<EOF > docker-compose.yml
services:
  n8n:
    image: docker.io/n8nio/n8n:latest
    restart: always
    ports:
      - "5678:5678"
    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  n8n_data:
EOF

3. n8nのデプロイ

Docker composeを実行してn8nをデプロイします。

$ sudo docker compose up -d

準備は整いました。下記にアクセスしてn8nの管理者アカウントの設定を進めましょう。

https://ドメイン名

注意

今回の手順ではLet’s EncryptでSSL証明書を取得するため、接続元IP制限を行っておりません。悪意のある第三者もブラウザ経由でアクセス可能なため、速やかに管理者アカウントを設定してください。

外部リンク

項目 URL
n8n公式リポジトリ https://github.com/n8n-io/n8n
n8n Docs https://docs.n8n.io/
Caddy Documentation https://caddyserver.com/docs/