version: '3.7' services: activepieces: image: activepieces/activepieces:0.27.0 container_name: activepieces restart: unless-stopped ports: - '${APP_PORT}:80' depends_on: activepieces-postgres: condition: service_healthy activepieces-redis: condition: service_healthy environment: - AP_ENGINE_EXECUTABLE_PATH=dist/packages/engine/main.js - AP_API_KEY=${AP_API_KEY} - AP_ENCRYPTION_KEY=${AP_ENCRYPTION_KEY} - AP_JWT_SECRET=${AP_JWT_SECRET} - AP_ENVIRONMENT=prod - AP_FRONTEND_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN} - AP_WEBHOOK_TIMEOUT_SECONDS=30 - AP_TRIGGER_DEFAULT_POLL_INTERVAL=5 - AP_POSTGRES_DATABASE=activepieces - AP_POSTGRES_HOST=activepieces-postgres - AP_POSTGRES_PORT=5432 - AP_POSTGRES_USERNAME=tipi - AP_POSTGRES_PASSWORD=${AP_POSTGRES_PASSWORD} - AP_EXECUTION_MODE=UNSANDBOXED - AP_REDIS_HOST=activepieces-redis - AP_REDIS_PORT=6379 - AP_SANDBOX_RUN_TIME_SECONDS=600 - AP_TELEMETRY_ENABLED=true - AP_TEMPLATES_SOURCE_URL="https://cloud.activepieces.com/api/v1/flow-templates" networks: - tipi_main_network labels: # Main traefik.enable: true traefik.http.middlewares.activepieces-web-redirect.redirectscheme.scheme: https traefik.http.services.activepieces.loadbalancer.server.port: 80 # Web traefik.http.routers.activepieces-insecure.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.activepieces-insecure.entrypoints: web traefik.http.routers.activepieces-insecure.service: activepieces traefik.http.routers.activepieces-insecure.middlewares: activepieces-web-redirect # Websecure traefik.http.routers.activepieces.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.activepieces.entrypoints: websecure traefik.http.routers.activepieces.service: activepieces traefik.http.routers.activepieces.tls.certresolver: myresolver # Local domain traefik.http.routers.activepieces-local-insecure.rule: Host(`activepieces.${LOCAL_DOMAIN}`) traefik.http.routers.activepieces-local-insecure.entrypoints: web traefik.http.routers.activepieces-local-insecure.service: activepieces traefik.http.routers.activepieces-local-insecure.middlewares: activepieces-web-redirect # Local domain secure traefik.http.routers.activepieces-local.rule: Host(`activepieces.${LOCAL_DOMAIN}`) traefik.http.routers.activepieces-local.entrypoints: websecure traefik.http.routers.activepieces-local.service: activepieces traefik.http.routers.activepieces-local.tls: true activepieces-postgres: image: postgres:14 restart: unless-stopped container_name: activepieces-postgres healthcheck: test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"] interval: 30s timeout: 30s retries: 3 environment: - POSTGRES_DB=activepieces - POSTGRES_PASSWORD=${AP_POSTGRES_PASSWORD} - POSTGRES_USER=tipi volumes: - '${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data' networks: - tipi_main_network activepieces-redis: image: redis:7 container_name: activepieces-redis healthcheck: test: redis-cli ping interval: 30s timeout: 30s retries: 3 restart: unless-stopped volumes: - '${APP_DATA_DIR}/data/redis/:/data' networks: - tipi_main_network