セルフホスティングの IFTTT 代替。n8n.io を使ってみた

IFTTT が実質有料化してしまったので、代替ツールを探していた。前々から自分のサーバにホスティングする IFTTT っぽいツールに興味があったので、今日はその一つである n8n.io というモノを試してみる。

なお、それ以外の IFTTT 代替のツールは以下で探せる。

n8n.io は Node.js ベースで依存するモノが少なく済みそうなのと、Docker イメージがあって導入が簡単そうだったので試してみた。

無料 IaaS である GCE や OCI の VM 上に Docker をインストールしてあれば、次のように叩くだけで n8n.io が立ち上がる。

# root ユーザで作業するテイ
$ sudo su -

# n8n.io のデータは SQLite で管理される。ホスト側にデータを残すためディレクトリを作る
$ mkdir /root/.n8n

# 以下のように Docker をバックグラウンド起動すれば良い
# ユーザ名とパスワードは BASIC 認証で使用する
$ docker run -dit \
  --name n8n \
  -p 8080:5678 \
  -v "${HOME}/.n8n:/root/.n8n" \
  -e N8N_BASIC_AUTH_ACTIVE=true \
  -e N8N_BASIC_AUTH_USER=【ユーザ名】 \
  -e N8N_BASIC_AUTH_PASSWORD=【パスワード】 \
  n8nio/n8n

-p オプションで指定したとおり、コレで

にアクセスすれば、n8n.io の画面が開く。

ワークフローの構築は比較的簡単で、RSS や SNS、Webhook URL などをトリガーに好きな処理を実行できる他、cron 的な定期実行も可能。以下のページでテンプレート的なワークフローが公開されていて、コレをそのままインポートできるので、参考にされたし。

IFTTT には劣るが、それなりに連携サービスが多いので、GitHub と Slack で連携するとか、Twitter と Google スプレッドシートなんかを連携するとか、可能性は広い。

24時間・365日稼動が必要なければ、自分の PC 上で時々起動しておけば良いし、小規模であれば前述のとおり Always Free な IaaS にでも置いておけば良いだろう。