Deployment
How DPS itself is deployed and operated. For how DPS deploys consumer apps, see Multi-Tenancy & Isolation and the per-template chapters.
Production topology
| Component | Where | Container | Port |
|---|---|---|---|
| dps-server | gcp-platform VM | dps-server-app | 1337 |
| dps-server MongoDB | gcp-platform VM | dps-server-mongo | 27017 (internal) |
| dps-dashboard | Vercel | n/a | 443 |
| dps-workflows (n8n) | gcp-platform VM | n8n | 5678 (proxied) |
| Tenant Parse Servers | gcp-platform VM | parse-<instanceId> | dynamic 8000–9000 |
| Tenant MongoDBs | gcp-platform VM | mongo-<instanceId> | internal |
Public endpoints
| Endpoint | Routes to |
|---|---|
| api.platform.duabalabs.com/parse | dps-server-app:1337 |
| api.platform.duabalabs.com/dashboard | parse-dashboard inside dps-server-app |
| platform.duabalabs.com | Vercel deployment of dps-dashboard |
| dps.duabalabs.com | Marketing landing (Netlify, separate site) |
<custom>.dps.duabalabs.com | Tenant Parse Server (dynamic Nginx + Certbot) |
Deployment paths
dps-server
- Image:
ghcr.io/duabalabs/dps-server:<tag>(built by GitHub Actions on push tomain). - Deploy method: SSH-based Docker compose pull-and-restart.
- Operator command:
ssh dps@20.90.115.254 "cd /opt/dps && sudo docker compose pull dps-server-app && sudo docker compose up -d dps-server-app". - Environment file:
/opt/dps/.envon the VM (managed viatools/bootstrap-server.sh). - Nginx + SSL: managed by Certbot for
*.platform.duabalabs.comwildcard.
dps-dashboard
- Deploy: Vercel (auto on push to
mainof the dps-dashboard repo). - Env vars:
NEXT_PUBLIC_PARSE_APP_ID,NEXT_PUBLIC_PARSE_SERVER_URL,NEXTAUTH_URL,NEXTAUTH_SECRET, plus OAuth provider creds.
Tenant instances
- Provisioned through
dps_createParseInstanceetc. — see API Reference. - Each gets a dedicated container, MongoDB database, and dynamic port.
- Nginx is reconfigured per-tenant via the SSH deployer.
Logs and diagnostics
- dps-server logs:
ssh dps@20.90.115.254 "sudo docker logs dps-server-app --tail 200". - Tenant logs: Surfaced through the dashboard via
dps_getInstanceLogs(Docker logs of the tenant container). - Metrics:
dps_getAppMetricsreturns realdocker statsoutput, plus Parse_Userand_Sessioncounts for parse-server type.
Backup strategy
| Resource | Frequency | Mechanism |
|---|---|---|
| dps-server MongoDB | Daily | mongodump via cron on the VM |
| Tenant MongoDB (Pro tier) | Daily | dps_createMongoBackup (Docker exec) |
| Tenant Postgres (Pro tier, sellub) | Daily | dps_createPostgresBackup (Docker exec, gzip) |
| Tenant MongoDB (Enterprise) | Hourly | Same mechanism, scheduled hourly |
Operator runbook
See the umbrella Infrastructure page for VM bootstrap, swarm topology, ACR / GHCR access, DNS, and shared secrets management.