业务自动化工具Automatisch

什么是 Automatisch ?

Automatisch 是一种开源的 Zapier 替代业务自动化工具,可让您连接不同的服务,如 TwitterSlack 等,以自动化您的业务流程。您可以使用 Automatisch 构建工作流程自动化,而无需花费时间和金钱。也不需要任何编程知识。

老苏没用过 Zapier,但是用过同类型的流程自动化工具 IFTTT,理念就是 if this then that,最典型的例子就是「如果明天下雨,那么就提醒我带雨伞」

Automatisch 宣传的是开源 Zapier 替代方案,采用 Automatisch 自托管方式主要好处之一是,它允许您将数据存储在自己的服务器上,这对于处理敏感用户信息且不能冒险与外部云服务共享信息的企业至关重要。

安装

在群晖上以 Docker 方式安装。

将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
version: '3.9'

services:
main:
image: automatischio/automatisch:latest
container_name: automatischio-web
restart: unless-stopped
#entrypoint: /compose-entrypoint.sh
ports:
- 3048:3000
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_started
environment:
- HOST=localhost
- PROTOCOL=http
- PORT=3000
- APP_ENV=production
- REDIS_HOST=redis
- POSTGRES_HOST=postgres
- POSTGRES_DATABASE=automatisch
- POSTGRES_USERNAME=automatisch_user
- POSTGRES_PASSWORD=automatisch_password
- ENCRYPTION_KEY=SqsKazDXkNVxuo3hpDz8k5ZHuJn9MYGZ
- WEBHOOK_SECRET_KEY=zmegGnqj76BYxDeEMWT5gQKuEe8uhhi2
- APP_SECRET_KEY=dDbwPkcUSXq6zKTSoya9UGaYscJ9aRTL
volumes:
- ./data:/automatisch/storage

worker:
image: automatischio/automatisch:latest
container_name: automatischio-worker
restart: unless-stopped
#entrypoint: /compose-entrypoint.sh
depends_on:
- main
environment:
- APP_ENV=production
- REDIS_HOST=redis
- POSTGRES_HOST=postgres
- POSTGRES_DATABASE=automatisch
- POSTGRES_USERNAME=automatisch_user
- POSTGRES_PASSWORD=automatisch_password
- ENCRYPTION_KEY=SqsKazDXkNVxuo3hpDz8k5ZHuJn9MYGZ
- WEBHOOK_SECRET_KEY=zmegGnqj76BYxDeEMWT5gQKuEe8uhhi2
- APP_SECRET_KEY=dDbwPkcUSXq6zKTSoya9UGaYscJ9aRTL
- WORKER=true
volumes:
- ./data:/automatisch/storage

postgres:
image: postgres:14
container_name: automatischio-db
restart: unless-stopped
environment:
- POSTGRES_DB=automatisch
- POSTGRES_USER=automatisch_user
- POSTGRES_PASSWORD=automatisch_password
volumes:
- ./pdata:/var/lib/postgresql/data
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}']
interval: 10s
timeout: 5s
retries: 5

redis:
image: redis
container_name: automatischio-redis
restart: unless-stopped
volumes:
- ./rdata:/data

automatischio/automatisch 只有一个 latest 版本

  • automatischio-web 容器
可变
HOST HTTP 主机,设为 localhost
PROTOCOL HTTP 协议,设为 http
PORT HTTP 端口,设为 3000
APP_ENV 环境设置,设为 production
REDIS_HOST Redis 主机,设为 redis
POSTGRES_HOST 数据库主机,设为 postgres
POSTGRES_DATABASE 数据库名称,设为 automatisch
POSTGRES_USERNAME 数据库用户,建议修改
POSTGRES_PASSWORD 数据库用户密码,建议修改
ENCRYPTION_KEY 用于存储凭据的加密密钥,建议修改
WEBHOOK_SECRET_KEY 用于验证 Webhook 请求的 Webhook 密钥,建议修改
APP_SECRET_KEY 用于验证用户身份的密钥,建议修改

ENCRYPTION_KEYWEBHOOK_SECRET_KEYAPP_SECRET_KEY3key 值,可以用 openssl rand -hex 32 生成;

  • automatischio-worker 容器
可变
APP_ENV 环境设置,设为 production
REDIS_HOST Redis 主机,设为 redis
POSTGRES_HOST 数据库主机,设为 postgres
POSTGRES_DATABASE 数据库名称,设为 automatisch
POSTGRES_USERNAME 数据库用户,建议修改
POSTGRES_PASSWORD 数据库用户密码,建议修改
ENCRYPTION_KEY 用于存储凭据的加密密钥,建议修改
WEBHOOK_SECRET_KEY 用于验证 Webhook 请求的 Webhook 密钥,建议修改
APP_SECRET_KEY 用于验证用户身份的密钥,建议修改
WORKER 是否为 worker服务
  • automatischio-db 容器
可变
POSTGRES_DB 数据库名称,设为 automatisch
POSTGRES_USER 数据库用户,建议修改
POSTGRES_PASSWORD 数据库用户密码,建议修改

更多环境变量,请参考官方文档:https://automatisch.io/docs/advanced/configuration

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 automatisch 和 子目录
mkdir -p /volume1/docker/automatisch/{data,pdata,rdata}

# 进入 automatisch 目录
cd /volume1/docker/automatisch

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

不出意外的话,会有 4 个容器启动

运行

在浏览器中输入 http://群晖IP:3048 就能看到登录界面

缺省的用户:user@automatisch.io,密码:sample,请不要忘记从设置页面更改您的电子邮件和密码;

主界面

右上角 Create flow

设置 Trigger

app 选择 RSSevent 选择 New items in feed

Feed URL 还是以老苏的博客的 RSS 为例,输入 https://laosu.cf/atom.xml

Test 一下,如果没问题时会有返回的

触发 Action

app 选择 SMTPevent 选择 Send an email

邮箱设置

设置 Action

  • Subject:邮件主题选择了 RSS 中文章的 Title
  • Body:邮件的内容选择了 RSS 中文章的连接;

Test 一下

看起来一切正常,点 Continue 继续

点左上角起名字,比如 RSS2Email,点右上角的 PUBLISH 发布

执行 App

Executions 中能看到执行情况

打开邮箱,能看到发的测试邮件

当老苏发布了新的文章时,就会收到新的邮件通知了

参考文档

automatisch/automatisch: The open source Zapier alternative. Build workflow automation without spending time and money.
地址:https://github.com/automatisch/automatisch/tree/main

Automatisch - Open Source Zapier Alternative
地址:https://automatisch.io/

What is Automatisch? | Automatisch Docs
地址:https://automatisch.io/docs