Railwayにn8nをデプロイしてLINE自動応答を24時間稼働させた話


目次

この記事について

前回の記事でローカル環境(Windows 11 / WSL2 / Docker)に構築したn8n × Claude API × Supabaseの訪問介護向けLINE自動応答システムを、Railwayにデプロイして24時間稼働させるまでの実装ログです。

詰まったポイントを中心に記録します。

環境

  • n8n(Docker Image:n8nio/n8n)
  • Railway(無料枠:月$5クレジット)
  • LINE Messaging API
  • Windows 11 / ブラウザ操作のみ

前回の記事n8n × Claude API × Supabaseで訪問介護向けLINE自動応答を作った話


ローカル環境との違い

ローカル(ngrok)
PCを閉じる → n8n停止 → LINEに返信できない
ngrokを再起動 → URLが変わる → LINE設定も変更必要

Railway
PCを閉じる → n8nは動き続ける
URLは固定 → LINE設定の変更不要

ngrokのローカル環境では「PCを起動してngrokを立ち上げてURLをLINEに設定し直す」という手順が毎回必要でした。Railwayに移行することでこの問題が解消されます。


Railwayの料金について

Railwayは月$5のクレジットが無料で付与されます。n8nの軽い利用であれば実質無料で運用できます。

無料の代替サービスとして以下も検討しましたが、今回の用途では不向きでした。

サービス問題点
n8n Cloud14日トライアルのみ・無料プランなし
Render15分無操作でスリープ → Webhookが失敗する
Fly.io設定が複雑

Webhookを使うシステムではスリープが致命的です。Renderの無料プランはリクエストがなければ15分でスリープして、次のWebhookリクエストで起動に数十秒かかります。その間LINEのWebhookが失敗するため使えません。


デプロイ手順

STEP 1:Railwayアカウント作成・プロジェクト作成

https://railway.app でGitHubアカウントでサインアップします。

「New Project」→「Empty project」→「Add a service」→「Docker Image」を選択して以下を入力します。

n8nio/n8n

STEP 2:ドメインの発行

「Settings」タブ → 「Networking」→「Generate Domain」をクリックします。

ポート番号の入力欄が表示されるので以下を入力します。

5678

発行されるURLの形式は以下です。

https://n8n-production-xxxxx.up.railway.app

注意点:URLの形式は xxxxx.up.railway.app です。up の前後にドットが入ります。後で WEBHOOK_URL に設定する際にこの形式を正確にコピーしてください。形式が違うと Invalid URL エラーが発生します。

STEP 3:環境変数の設定

「Variables」タブで以下を設定します。

変数名
N8N_BASIC_AUTH_ACTIVEtrue
N8N_BASIC_AUTH_USERadmin
N8N_BASIC_AUTH_PASSWORD任意の強いパスワード
GENERIC_TIMEZONEAsia/Tokyo
TZAsia/Tokyo
NODE_FUNCTION_ALLOW_BUILTINhttps,http
NODE_FUNCTION_ALLOW_EXTERNAL*
WEBHOOK_URLhttps://n8n-production-xxxxx.up.railway.app

WEBHOOK_URL はSTEP 2で発行したURLをそのままコピーします。末尾のスラッシュは不要です。

STEP 4:ワークフローのインポート

ローカルのn8nからワークフローをエクスポートします。

キャンバス画面 → 右上「...」→「Download」→ workflow.json

RailwayのURL上のn8nにログインしてインポートします。

新規ワークフロー作成 → 右上「...」→「Import from file」→ workflow.json を選択

STEP 5:LINE DevelopersのWebhook URLを更新

変更前:https://xxxx.ngrok-free.app/webhook/line
変更後:https://n8n-production-xxxxx.up.railway.app/webhook/line

「検証」ボタンで成功を確認します。

STEP 6:ワークフローをActivate

n8nのキャンバス画面右上のトグルを「Active」にします。


詰まったポイントと解決策

① axiosが使えない(Module ‘axios’ is disallowed)

エラー内容

Error: Module 'axios' is disallowed [line 16]

原因

n8n 2.16.1から導入された「Task Runner」機能がCodeノードでの外部モジュール利用を制限しています。

解決策

環境変数に以下を追加します。

NODE_FUNCTION_ALLOW_EXTERNAL = *
NODE_FUNCTION_ALLOW_BUILTIN  = https,http

* はすべての外部モジュールを許可する設定です。

注意N8N_RUNNERS_ENABLED=false を追加するとクラッシュする場合があります。この変数は追加しないでください。


② WEBHOOK_URLのInvalid URLエラー

エラー内容

TypeError: Invalid URL

原因

WEBHOOK_URL の値が正しくない形式になっていました。

よくある間違い

# NG:httpsがない
n8n-production-xxxxx.up.railway.app

# NG:末尾にスラッシュがある
https://n8n-production-xxxxx.up.railway.app/

# NG:upの前後のドットが抜けている
https://n8n-production-xxxxx.railway.app

正しい形式

https://n8n-production-xxxxx.up.railway.app

RailwayのSettingsタブ → Networkingセクションに表示されているURLをそのままコピーするのが確実です。


③ ボリュームのパーミッションエラー(EACCES)

エラー内容

Error: EACCES: permission denied, open '/home/node/.n8n/config'

原因

Railwayのボリュームをマウントすると、n8nのDockerイメージが /home/node/.n8n に書き込もうとしますが、ボリュームの所有者権限の問題で書き込めません。

試みた解決策(いずれも効果なし)

  • Mount Pathを /data に変更 → 同じエラーが発生
  • N8N_USER_FOLDER=/data を設定 → 同じエラーが発生
  • N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=false を設定 → 効果なし
  • N8N_RUNNERS_ENABLED=false を設定 → クラッシュした

現在の対処法

ボリュームなしで運用しています。Railwayが再起動するとワークフローが消えるため、workflow.json をGitHubで管理しておき、再起動後に手動でインポートします。

再起動の頻度は低く、復旧は5分以内で完了します。

今後の対応

n8nのDockerイメージをカスタムしてパーミッション問題を根本解決する予定です。


動作確認

LINEから以下のメッセージを送信します。

訪問介護のサービス内容を教えてください

数秒後にClaude APIが生成した返答がLINEに届けば成功です。

RailwayのExecutionsタブで実行履歴を確認できます。


ローカルとRailwayの使い分け

現在の運用方針は以下の通りです。

開発・デバッグ → ローカル(localhost:5678)
本番稼働      → Railway

ワークフローを変更する場合はローカルで修正・テストしてからRailwayにインポートします。


まとめ

Railwayへのデプロイ自体は30分程度で完了しますが、axiosのモジュール制限・WEBHOOK_URLの形式・ボリュームのパーミッション問題の3点で時間がかかりました。

同じ構成を試す方の参考になれば幸いです。ボリュームのパーミッション問題については引き続き調査中です。解決策が見つかり次第この記事を更新します。


よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

1981年生まれ、名古屋出身。
2008年より17年間ドイツ・ベルリンに在住。
ドイツの職業訓練プログラムを修了後、複数のIT企業でフルスタックエンジニアとして経験を積む。2022年よりドイツの大手システム開発会社で、リードエンジニアとして勤務する。小売・医療・メディアなど異なる業種に携わる。2026年6月株式会社Neurosynchを設立。2027年、日本に帰国予定。
著書「AI時代の海外移住戦略

コメント

コメントする

目次