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
Mac and windows
請直接參考github 內文件
Ubuntu
Lazydocker是一個基於終端的 UI 工具,允許管理 Docker 和 Docker Compose 的容器、圖像和卷。Lazydocker 是一個用 Go 編程語言編寫的開源項目。
本教程展示瞭如何在 Ubuntu 20.04 上安裝 Lazydocker。
準備環境 在開始之前,請確保您已經安裝了 Docker。您可以閱讀帖子如何安裝它。
安裝懶人docker
- 從 GitHub 下載 Lazydocker 最新版本標籤。 將版本標籤設定成環境變數。
LAZYDOCKER_VERSION=$(curl -s "https://api.github.com/repos/jesseduffield/lazydocker/releases/latest" | grep -Po '"tag_name": "v\K[0-9.]+')
- 從 Lazydocker 存儲庫的發布頁面下載存檔。
curl -Lo lazydocker.tar.gz "https://github.com/jesseduffield/lazydocker/releases/latest/download/lazydocker_${LAZYDOCKER_VERSION}_Linux_x86_64.tar.gz"
- 解壓縮並且移動程式
mkdir lazydocker-temp
tar xf lazydocker.tar.gz -C lazydocker-temp
- 將二進製文件移動到/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