From 59c050b519dcb990e96ce98752d1d9032cf1fec1 Mon Sep 17 00:00:00 2001 From: DrMxrcy Date: Tue, 12 Nov 2024 13:05:21 -0500 Subject: [PATCH] Add: Activepieces --- .../dokploy/public/templates/activepieces.svg | 4 ++ .../templates/activepieces/docker-compose.yml | 53 +++++++++++++++++++ apps/dokploy/templates/activepieces/index.ts | 33 ++++++++++++ apps/dokploy/templates/templates.ts | 14 +++++ 4 files changed, 104 insertions(+) create mode 100644 apps/dokploy/public/templates/activepieces.svg create mode 100644 apps/dokploy/templates/activepieces/docker-compose.yml create mode 100644 apps/dokploy/templates/activepieces/index.ts diff --git a/apps/dokploy/public/templates/activepieces.svg b/apps/dokploy/public/templates/activepieces.svg new file mode 100644 index 00000000..dcf0a52b --- /dev/null +++ b/apps/dokploy/public/templates/activepieces.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/apps/dokploy/templates/activepieces/docker-compose.yml b/apps/dokploy/templates/activepieces/docker-compose.yml new file mode 100644 index 00000000..cc9eca49 --- /dev/null +++ b/apps/dokploy/templates/activepieces/docker-compose.yml @@ -0,0 +1,53 @@ +version: "3.8" + +services: + activepieces: + image: ghcr.io/activepieces/activepieces:0.35.0 + restart: unless-stopped + networks: + - dokploy-network + depends_on: + postgres: + condition: service_healthy + redis: + condition: service_healthy + environment: + - AP_POSTGRES_DATABASE=${AP_POSTGRES_DATABASE} + - AP_POSTGRES_PASSWORD=${AP_POSTGRES_PASSWORD} + - AP_POSTGRES_USERNAME=${AP_POSTGRES_USERNAME} + - AP_POSTGRES_HOST=postgres + - AP_REDIS_HOST=redis + + postgres: + image: postgres:14.4 + restart: unless-stopped + networks: + - dokploy-network + environment: + - POSTGRES_DB=${AP_POSTGRES_DATABASE} + - POSTGRES_PASSWORD=${AP_POSTGRES_PASSWORD} + - POSTGRES_USER=${AP_POSTGRES_USERNAME} + volumes: + - postgres_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U ${AP_POSTGRES_USERNAME}"] + interval: 10s + timeout: 5s + retries: 5 + + redis: + image: redis:7.0.7 + restart: unless-stopped + networks: + - dokploy-network + volumes: + - redis_data:/data + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 10s + timeout: 5s + retries: 5 + +volumes: + postgres_data: + redis_data: \ No newline at end of file diff --git a/apps/dokploy/templates/activepieces/index.ts b/apps/dokploy/templates/activepieces/index.ts new file mode 100644 index 00000000..95f3f632 --- /dev/null +++ b/apps/dokploy/templates/activepieces/index.ts @@ -0,0 +1,33 @@ +import { + type DomainSchema, + type Schema, + type Template, + generatePassword, + generateRandomDomain, +} from "../utils"; + +export function generate(schema: Schema): Template { + const mainDomain = generateRandomDomain(schema); + const postgresPassword = generatePassword(); + const postgresUser = "activepieces"; + const postgresDb = "activepieces"; + + const domains: DomainSchema[] = [ + { + host: mainDomain, + port: 80, + serviceName: "activepieces", + }, + ]; + + const envs = [ + `AP_POSTGRES_DATABASE=${postgresDb}`, + `AP_POSTGRES_PASSWORD=${postgresPassword}`, + `AP_POSTGRES_USERNAME=${postgresUser}`, + ]; + + return { + domains, + envs, + }; +} \ No newline at end of file diff --git a/apps/dokploy/templates/templates.ts b/apps/dokploy/templates/templates.ts index 2e3fbf85..c41b0e8d 100644 --- a/apps/dokploy/templates/templates.ts +++ b/apps/dokploy/templates/templates.ts @@ -730,4 +730,18 @@ export const templates: TemplateData[] = [ tags: ["workflow", "automation", "development"], load: () => import("./windmill/index").then((m) => m.generate), }, + { + id: "activepieces", + name: "Activepieces", + version: "0.35.0", + description: "Open-source no-code business automation tool. An alternative to Zapier, Make.com, and Tray.", + logo: "activepieces.svg", + links: { + github: "https://github.com/activepieces/activepieces", + website: "https://www.activepieces.com/", + docs: "https://www.activepieces.com/docs", + }, + tags: ["automation", "workflow", "no-code"], + load: () => import("./activepieces/index").then((m) => m.generate), + }, ];