HTTPS通信を有効化したn8nのデプロイ(Dockerイメージ利用)
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/ |