# activepieces — automatiserings-/koppellaag (derden-box) Compose-definitie voor [Activepieces](https://www.activepieces.com) (MIT, community-editie) op de derden-box, gedraaid als **Coolify docker-compose (git-based)** — géén route B (geen registry-image, geen CI, geen host-watcher). Coolify klont deze repo en draait `docker compose up`. Tracking-issue: `wSFcQyxBu1/infra#77`. Beheer, sleutelbos-regels, koppel- en rotatierecept: infra-runbook `runbooks/activepieces-derden-box.md`. ## Wat er staat - `docker-compose.yml` — drie services met **exact gepinde tags**: `activepieces/activepieces:0.90.4` (app + embedded worker), `pgvector/pgvector:0.8.0-pg16`, `redis:7.4.11-alpine`. PG/Redis alleen op het privé net; alleen de app op `coolify` (Traefik). Geen `ports:`. Named volumes: `postgres-data`, `redis-data`, `activepieces-cache`. - Secrets staan **niet** hier: `AP_ENCRYPTION_KEY`, `AP_JWT_SECRET`, `AP_POSTGRES_PASSWORD`, `AP_SMTP_*` en `AP_FRONTEND_URL` komen uit de Coolify-env (off-box kopie `~/.config/doc-gen-deploy/activepieces.env` op de Mac Mini + wachtwoordmanager eigenaar). ## Updaten 1. Nieuwe tag op Docker Hub (`activepieces/activepieces`) + [release notes](https://github.com/activepieces/activepieces/releases); check of de upstream `docker-compose.yml`/env-namen zijn gewijzigd. 2. Bump de tag(s) hier, commit + push naar `main`. 3. Redeploy de Coolify-app (API `GET /deploy?uuid=` via docgen, of de UI). De app migreert zelf bij boot. 4. Verifieer: `curl -s -o /dev/null -w '%{http_code}\n' https://flows.2487.eu/` → `401` (basic-auth-poort dicht), met creds → `200`; `/api/v1/health` (met creds) → `200`. ## Vaste keuzes (waarom) - `AP_EXECUTION_MODE=SANDBOX_CODE_ONLY`: Code-stappen in een V8-isolate, zónder privileged container. - `AP_NETWORK_MODE=STRICT`: flow-code kan RFC1918/loopback/metadata niet bereiken (PG/Redis dus ook niet). - `AP_TELEMETRY_ENABLED=false`, `AP_ALLOW_OPEN_SIGN_UP=false`, run-data-retentie 7 dagen. - Admin-UI staat achter een Traefik-basic-auth-poort op de box (lockdown-patroon); inkomende webhooks zijn daardoor bewust (nog) niet bereikbaar — polling-/schedule-flows alleen.