From 97989dc907929c5883eaff1ea54e8efb672741de Mon Sep 17 00:00:00 2001 From: Nick Yeoman Date: Tue, 14 Jul 2026 21:36:21 -0700 Subject: [PATCH] activepieces is now in current template format --- activepieces_dev/README.md | 81 ++++++++++++++++++++++++++--- activepieces_dev/compose.yaml | 69 ++++++++++++++++++++++++ activepieces_dev/docker-compose.yml | 44 ---------------- activepieces_dev/sample.env | 43 +++++++-------- 4 files changed, 161 insertions(+), 76 deletions(-) create mode 100644 activepieces_dev/compose.yaml delete mode 100644 activepieces_dev/docker-compose.yml diff --git a/activepieces_dev/README.md b/activepieces_dev/README.md index b73785b..382547c 100644 --- a/activepieces_dev/README.md +++ b/activepieces_dev/README.md @@ -1,9 +1,76 @@ -# Active Pieces +# Activepieces -* [Dockerhub Tags](https://hub.docker.com/r/activepieces/activepieces/tags) -* [Docker Compose File](https://github.com/activepieces/activepieces/blob/main/docker-compose.yml) -* [ENV file](https://github.com/activepieces/activepieces/blob/main/.env.example) -* [Homepage](https://www.activepieces.com/) -* [Docs](https://www.activepieces.com/docs/getting-started/introduction) -* Proxy port: 80 +## Overview +Activepieces is an open-source automation platform. This stack runs Activepieces with PostgreSQL and Redis. + +## Project Details + +- **Project Repository:** [https://github.com/activepieces/activepieces](https://github.com/activepieces/activepieces) +- **Container Image:** [GitHub Packages](https://github.com/activepieces/activepieces/pkgs/container/activepieces) +- **Documentation:** [https://www.activepieces.com/docs](https://www.activepieces.com/docs) +- **Reverse Proxy Port:** `80` + +## Getting Started + +1. Generate secrets and set them in your environment: + ```bash + export AP_ENCRYPTION_KEY=$(openssl rand -hex 16) + export AP_JWT_SECRET=$(openssl rand -hex 32) + ``` +2. Start the stack: `docker compose up -d` +3. Open http://localhost:8080 in your browser + +## Environment Variable Notes + + VOL_PATH – base path for persistent data volumes + VOL_PROJECTS – base path for project directories + ACTIVEPIECES_IMAGE – Activepieces container image (default: ghcr.io/activepieces/activepieces:0.44.0) + ACTIVEPIECES_RESTART – restart policy (default: unless-stopped) + ACTIVEPIECES_PORT – host port mapped to container port 80 (default: 8080) + ACTIVEPIECES_DOMAIN – domain for frontend URL + AP_ENCRYPTION_KEY – 256-bit encryption key (32 hex chars, default: changeme – generate with `openssl rand -hex 16`) + AP_JWT_SECRET – JWT signing secret (default: changeme – generate with `openssl rand -hex 32`) + AP_POSTGRES_PASSWORD – PostgreSQL password + +## Volume Notes + + ${VOL_PATH}/activepieces_dev/cache – Activepieces cache files + ${VOL_PATH}/activepieces_dev/postgres – PostgreSQL data directory + ${VOL_PATH}/activepieces_dev/redis – Redis data directory + +## Network Notes + +Requires the external `proxy` network (Nginx Proxy Manager). An internal bridge network `internal` is created for inter-service communication. + +## Docker Run + +```bash +docker run -d \ + --name activepieces \ + -v ${VOL_PATH:-/data}/activepieces_dev/cache:/usr/src/app/cache \ + -e AP_ENCRYPTION_KEY=your-32-hex-char-key \ + -e AP_JWT_SECRET=your-secret \ + -e AP_POSTGRES_PASSWORD=changeme \ + -e AP_POSTGRES_HOST=postgres \ + -e AP_REDIS_HOST=redis \ + -p 8080:80 \ + --network proxy \ + ghcr.io/activepieces/activepieces:0.44.0 +``` + +## Additional Notes / Gotchas + +- `AP_ENCRYPTION_KEY` and `AP_JWT_SECRET` are required and must be set before the first run. Changing them after data has been written will cause errors. +- Activepieces requires the `UNSANDBOXED` execution mode in Docker; switch to `SANDBOXED` if you need isolation (requires `privileged: true`). + +## Dockhand Stack, Deploy from Git + +Cookbooks Repository +stackname: ACTIVEPIECES_DEV +Compose file path: activepieces_dev/compose.yaml +Additional env file (optional): activepieces_dev/sample.env + +Then "Load" activepieces_dev/sample.env into the Environmental variables in dockhand + +Create the Stack diff --git a/activepieces_dev/compose.yaml b/activepieces_dev/compose.yaml new file mode 100644 index 0000000..ea3053e --- /dev/null +++ b/activepieces_dev/compose.yaml @@ -0,0 +1,69 @@ +# Activepieces + +services: + activepieces: + image: ${ACTIVEPIECES_IMAGE:-ghcr.io/activepieces/activepieces:0.44.0} + restart: ${ACTIVEPIECES_RESTART:-unless-stopped} + + volumes: + - ${VOL_PATH:-/data}/activepieces_dev/cache:/usr/src/app/cache + + environment: + - AP_ENGINE_EXECUTABLE_PATH=dist/packages/engine/main.js + - AP_ENCRYPTION_KEY=${AP_ENCRYPTION_KEY:-changeme} + - AP_JWT_SECRET=${AP_JWT_SECRET:-changeme} + - AP_ENVIRONMENT=prod + - AP_FRONTEND_URL=http://${ACTIVEPIECES_DOMAIN:-localhost}:${ACTIVEPIECES_PORT:-8080} + - AP_POSTGRES_DATABASE=activepieces + - AP_POSTGRES_HOST=postgres + - AP_POSTGRES_PORT=5432 + - AP_POSTGRES_USERNAME=postgres + - AP_POSTGRES_PASSWORD=${AP_POSTGRES_PASSWORD:-changeme} + - AP_EXECUTION_MODE=UNSANDBOXED + - AP_REDIS_HOST=redis + - AP_REDIS_PORT=6379 + - AP_FLOW_TIMEOUT_SECONDS=600 + - AP_TELEMETRY_ENABLED=true + - AP_TEMPLATES_SOURCE_URL=https://cloud.activepieces.com/api/v1/flow-templates + + ports: + - "${ACTIVEPIECES_PORT:-8080}:80" + + networks: + - proxy + - internal + + depends_on: + - postgres + - redis + + postgres: + image: ${ACTIVEPIECES_POSTGRES_IMAGE:-postgres:14.4} + restart: ${ACTIVEPIECES_RESTART:-unless-stopped} + + volumes: + - ${VOL_PATH:-/data}/activepieces_dev/postgres:/var/lib/postgresql/data + + environment: + - POSTGRES_DB=activepieces + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=${AP_POSTGRES_PASSWORD:-changeme} + + networks: + - internal + + redis: + image: ${ACTIVEPIECES_REDIS_IMAGE:-redis:7.0.7} + restart: ${ACTIVEPIECES_RESTART:-unless-stopped} + + volumes: + - ${VOL_PATH:-/data}/activepieces_dev/redis:/data + + networks: + - internal + +networks: + proxy: + external: true + internal: + driver: bridge diff --git a/activepieces_dev/docker-compose.yml b/activepieces_dev/docker-compose.yml deleted file mode 100644 index c0c5fcc..0000000 --- a/activepieces_dev/docker-compose.yml +++ /dev/null @@ -1,44 +0,0 @@ -# https://github.com/activepieces/activepieces/blob/main/docker-compose.yml - -services: - activepieces: - image: ghcr.io/activepieces/activepieces:0.44.0 - container_name: activepieces - restart: unless-stopped - ## Enable the following line if you already use AP_EXECUTION_MODE with SANDBOXED or old activepieces, checking the breaking change documentation for more info. - ## privileged: true - ports: - - '8080:80' - depends_on: - - postgres - - redis - env_file: .env - volumes: - - ./cache:/usr/src/app/cache - networks: - - activepieces - postgres: - image: 'postgres:14.4' - container_name: postgres - restart: unless-stopped - environment: - - 'POSTGRES_DB=${AP_POSTGRES_DATABASE}' - - 'POSTGRES_PASSWORD=${AP_POSTGRES_PASSWORD}' - - 'POSTGRES_USER=${AP_POSTGRES_USERNAME}' - volumes: - - postgres_data:/var/lib/postgresql/data - networks: - - activepieces - redis: - image: 'redis:7.0.7' - container_name: redis - restart: unless-stopped - volumes: - - 'redis_data:/data' - networks: - - activepieces -volumes: - postgres_data: - redis_data: -networks: - activepieces: \ No newline at end of file diff --git a/activepieces_dev/sample.env b/activepieces_dev/sample.env index 5fc6420..6ea503b 100644 --- a/activepieces_dev/sample.env +++ b/activepieces_dev/sample.env @@ -1,29 +1,22 @@ -# It's advisable to consult the documentation and use the tools/deploy.sh to generate the passwords, keys, instead of manually filling them. -# https://github.com/activepieces/activepieces/blob/main/.env.example +# ===== Paths ===== +VOL_PATH=/data +VOL_PROJECTS=/data/projects -AP_ENGINE_EXECUTABLE_PATH=dist/packages/engine/main.js +# ===== Activepieces ===== +ACTIVEPIECES_IMAGE=ghcr.io/activepieces/activepieces:0.44.0 +ACTIVEPIECES_RESTART=unless-stopped +ACTIVEPIECES_PORT=8080 +ACTIVEPIECES_DOMAIN=localhost -## Random Long Password (Optional for community edition) -AP_API_KEY= +# ===== Required Secrets ===== +# Generate with: openssl rand -hex 16 +AP_ENCRYPTION_KEY=changeme +# Generate with: openssl rand -hex 32 +AP_JWT_SECRET=changeme -## 256 bit encryption key, 32 hex character -AP_ENCRYPTION_KEY= +# ===== Database ===== +AP_POSTGRES_PASSWORD=changeme -## JWT Secret -AP_JWT_SECRET= - -AP_ENVIRONMENT=prod -AP_FRONTEND_URL=http://localhost:8080 -AP_WEBHOOK_TIMEOUT_SECONDS=30 -AP_TRIGGER_DEFAULT_POLL_INTERVAL=5 -AP_POSTGRES_DATABASE=activepieces -AP_POSTGRES_HOST=postgres -AP_POSTGRES_PORT=5432 -AP_POSTGRES_USERNAME=postgres -AP_POSTGRES_PASSWORD= -AP_EXECUTION_MODE=UNSANDBOXED -AP_REDIS_HOST=redis -AP_REDIS_PORT=6379 -AP_FLOW_TIMEOUT_SECONDS=600 -AP_TELEMETRY_ENABLED=true -AP_TEMPLATES_SOURCE_URL="https://cloud.activepieces.com/api/v1/flow-templates" \ No newline at end of file +# ===== Redis ===== +# AP_REDIS_HOST=redis +# AP_REDIS_PORT=6379