Skip to content

n8n介紹

Published: at 下午11:20

n8n 是一款 workflow 流程工具 啟動方法 有 Webhook 和 Schedule Trigger

現況也有很多現成的串接 ex line notify , slack ,bigquer ,excel ,telegram ,mysql

,gitlabb gitlab 自架 domain 自發ssl憑證的話就要在特別處理

可以無痛串接

以下是使用時的一些紀錄

時間處理

Schedule Trigger 呼叫時的格式不是太好用 但因為 n8n 是javascript 做的 所以\{\{\}\}\ 中可以再支援luxon, JMESpath

https://docs.n8n.io/code-examples/expressions/

https://moment.github.io/luxon/#/formatting

所以要取台灣時間時可以使用

{{ DateTime.now().minus({month:1}).toFormat('yyyy_MM_dd_')}}

增加時間可以使用

{{ DateTime.now().plus({ month:1,hour:1 }).setZone('Asia/Taipei').toFormat('yyyy_MM_dd HH:mm:ss')}}

減少時間可以使用

{{ DateTime.now().minus({ hour:1 }).setZone('Asia/Taipei').toFormat('yyyy_MM_dd HH:mm:ss')}}

webhook

如果啟用的是 docker-compose withPostgres 的話 webhook 會自己去n8n cloud 產 url

原因是因為 docker-compose.yml —tunnel

command: /bin/sh -c "n8n start --tunnel"

把 —tunnel 拿掉 就可以 根據自己主機定義自己的url 前綴

但 記得要於 environment 增加 WEBHOOK_URL=XXXXX

才會顯示

postgresql

進入

psql postgresql://[dbuser]:[dbpwd]@[dbip]:[dbport]/n8n

表結構

查表

 \dt
 Schema |        Name         | Type  | Owner
--------+---------------------+-------+-------
 public | credentials_entity  | table | adx
 public | execution_entity    | table | adx
 public | installed_nodes     | table | adx
 public | installed_packages  | table | adx
 public | migrations          | table | adx
 public | role                | table | adx
 public | settings            | table | adx
 public | shared_credentials  | table | adx
 public | shared_workflow     | table | adx
 public | tag_entity          | table | adx
 public | user                | table | adx
 public | webhook_entity      | table | adx
 public | workflow_entity     | table | adx
 public | workflow_statistics | table | adx
 public | workflows_tags      | table | adx

如何讓 webhook 不是走 n8n的domain 是走靜態ip

docker-compose.yml

WEBHOOK_URL 更換

command n8n start -tunnel 拿掉

  n8n:
    image: n8nio/n8n
    restart: always
    environment:
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
      - DB_POSTGRESDB_USER=${POSTGRES_NON_ROOT_USER}
      - DB_POSTGRESDB_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD}
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER
      - N8N_BASIC_AUTH_PASSWORD
      - WEBHOOK_URL=http://XXX.XXX.XXX.XXX:5678/
    ports:
      - 5678:5678
    links:
      - postgres
    volumes:
      - n8n_storage:/home/node/.n8n
    command: /bin/sh -c "n8n start"
    depends_on:

套件分享

proxy-web-storage

https://github.com/KID-joker/proxy-web-storage

這個庫 可以讓操作 localStorage, sessionStorage 時

更加方便

github-lazydocker 推薦

今天看到在github 中有一個好用的docker cmd moniter gui

laydocker

Mac and windows

請直接參考github 內文件

Ubuntu

Lazydocker是一個基於終端的 UI 工具,允許管理 Docker 和 Docker Compose 的容器、圖像和卷。Lazydocker 是一個用 Go 編程語言編寫的開源項目。

本教程展示瞭如何在 Ubuntu 20.04 上安裝 Lazydocker。

準備環境 在開始之前,請確保您已經安裝了 Docker。您可以閱讀帖子如何安裝它。

安裝懶人docker

  1. 從 GitHub 下載 Lazydocker 最新版本標籤。 將版本標籤設定成環境變數。
LAZYDOCKER_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazydocker/releases/latest" | grep -Po '"tag_name": "v\K[0-9.]+')
  1. 從 Lazydocker 存儲庫的發布頁面下載存檔。
curl -Lo lazydocker.tar.gz "https://github.com/jesseduffield/lazydocker/releases/latest/download/lazydocker_${LAZYDOCKER_VERSION}_Linux_x86_64.tar.gz"
  1. 解壓縮並且移動程式
mkdir lazydocker-temp
tar xf lazydocker.tar.gz -C lazydocker-temp
  1. 將二進製文件移動到/usr/local/bin目錄:
sudo mv lazydocker-temp/lazydocker /usr/local/bin

現在lazydocker可以用作所有用戶的系統範圍命令。

可以檢查 Lazydocker 版本:

lazydocker --version

移除存檔和暫時的目錄

rm -rf lazydocker.tar.gz
rm -rf lazydocker-temp

測試 Lazydocker

lazydocker

wrk 壓測工具

還有一款壓測工具 是阿帕契出的 較ab 也不錯用

brew install wrk

wrk -t12 -c400 -d30s http://test/api