遅まきながら、n8nに入門してみました。 n8nはオープンソースのワークフロー自動化ツールです。ブロックくっつけるタイプのやつで、用意されているブロックを利用して各種の処理を繋げていけるのですが、こと最近だと"AI Agent"というブロックの力でけっこう力技で処理ができるということに気づきました。
ということで、重い腰を上げて、セルフホスト上で走らせるということを試しています。 実は道半ばのところがあるのですが、ある程度書いておきたいと思います。
※ “n8n"で書籍検索したらこれが出るんだもんw もう少し健康に気遣えという戒めですか?
n8nとは
n8nは、OSSのワークフロー自動化ツールです。ノーコードでブロックを組み合わせて処理を自動化できます。最近ではAIエージェントの機能が強化され、AIを活用した高度な自動化も可能になっています。
- n8nの公式サイト: n8n.io
ホスティング版もあるのですが、実はOSSで開発されており、ソースを引っ張ってくればセルフホストで使えるようになっています。
- n8nのGitHubリポジトリ: n8n/n8n
なので、これを自分のサーバー上で走らせればそれなりに動かせてしまいます。 ということで、GCPのAlways Free枠で動かしているょゎょゎなサーバー上で構築してみました。
導入手順
Dockerによるイメージも配布されているのですが、低スペックすぎて下手にコンテナを組み込むとマトモに動けないという状況だったので、ソースを取得して直接走らせる形にしておきます。
大雑把な手順はたいしたことありません。 設置したいサーバーにログインしてから…
- 適当なディレクトリにてソースのクローン
- Node.jsのインストール
- pnpm をインストールします。ここすごく重要。
- pnpmを使って依存関係のインストール
- n8nの起動
ここまでが軌道までのステップです。 n8n自体はNode.jsで動くのですが、npmでは必要なモジュールを入れている最中にエラー(?)で停止していまいました。 workspaceがうんたらかんたらという感じでしたが、理由はわかりませんが、pnpmだとインストールできるという情報を得てそちらで対応しました。 そうすればn8n自体は起動します。
リバースプロキシで繋ぐ
n8n自体はローカルでポート5678で動いているため、リバースプロキシでブラウザからコントロールできるようにしておきましょう。 ここではCaddyを使ってリバースプロキシの構築です。
- n8n用にホストを設定する(DNSサーバーに登録しておく)
- Caddyfile(普通に入れていれば
/etc/caddy/Caddyfile
)に以下のような設定を追加1 2 3
n8n.example.com:443 { reverse_proxy localhost:5678 }
- Caddyを再起動すればOK
これで指定ホストに繋ぐと、Caddyは偉いのでLet’s EncryptでSSL証明書を作成してTLSによる接続でn8nにアクセスできるようになります。
あとはワークフローを作るだけ
ということでゴリゴリとワークフローを作って研鑽の日々です。
現在は、
- 朝起きた時間にぐらいに自動でワークフローを回してお仕事の予定と天気をDiscordの個人チャネルに送る
- RSS,Atomのフィード解析から新着記事を取得して見出しを要約し、カテゴライズしてDiscordの個人チャネルに送る(英文記事であれば見出しの翻訳も入れる)
というぐらいで動いています。 無駄にでかいワークフロー図はこうなっております。改善の余地はまだまだあるはず。
途中にAI Agentを入れることで、翻訳や要約、カテゴライズを任せることができるようになっています。 若干コスト発生しますが、Google Ai StudioのAPIでは、Gemini 2.5 Flashには無料枠がある程度あるみたいなので、そこである程度まかなってもらいましょう。