dps-workflows
n8n automation glue for DPS. Lives at apps/dps/dps-templates/dps-workflows (sibling to the templates).
- Repo: duabalabs/dps-workflows
- Stack: n8n self-hosted (Docker), with optional Postgres + Redis
- Deploy: SSH-based Docker compose with Nginx + SSL via Certbot
What it automates
n8n is used for the glue between DPS and external services where a workflow editor is more pragmatic than a hand-coded cloud function:
- Lead capture → CRM / email
- Donation receipts and post-payment notifications
- Sellub onboarding emails (
apps/automation/sellub-onboarding.json) - Sellub post-approval flows (
apps/automation/sellub-post-approval.json) - Duabanti event reminders (
apps/automation/duabanti-event-reminders.json) - Duaba-leads pipeline (
apps/automation/duaba-leads.json)
The exported workflow JSON lives under apps/automation/ and is imported into n8n.
n8n as a DPS app type
n8n is also a first-class DPS app type — customers can provision their own n8n instance via the platform dashboard. The server-side cloud functions are 90% complete:
- Create / start / stop / restart / list / details
- Tier-based pricing (free / starter / professional / enterprise)
- Docker compose with
env_file(n8n + optional postgres + optional redis)
Critical gaps (~40% overall — see Supported App Types):
- No rendering path in
dps-dashboard/page.tsx - No
n8nSectionMap - No tab headers in
getTabsForApp() - Not in
AppTypeunion (sections/types.ts) N8nInstanceManager.tsx(1033 lines) is never imported
Operator notes
- Public n8n instance for Duabalabs internal automations runs alongside dps-server.
- Workflows are version-controlled via the JSON exports in
apps/automation/. - See
apps/automation/SETUP.mdfor import/export procedure.
Reusable GitHub Actions for mobile builds
dps-workflows also publishes the reusable GitHub Actions that client
repos consume to build and upload mobile artifacts to DPS.
actions/upload@v1— composite action that SHA-256-checksums a built artifact, requests a presigned upload URL, PUTs the file, and finalizes the artifact. Optionally creates a release..github/workflows/dps-build-reusable.yml—workflow_callreusable workflow. Reads the client repo’s.dps/config.jsonto decide the build script + artifact path, runs the build on the right runner (macOS for iOS, Ubuntu for Android), then invokesactions/upload@v1.
See REPO-CONTRACT.md for the full schema, and Mobile Builds & Releases for end-to-end usage.
Repo contract
A repository is managed-build compatible when it contains:
package.json.dps/config.json(build commands + artifact paths per platform/profile).github/workflows/dps-build.yml(thin wrapper around the reusable workflow)
Repos without these files still work for artifact upload and release publishing — see Mobile Builds & Releases for both modes.