DPS Templates
DPS owns a registry of pre-configured app templates. Each template ships with a Docker image (where applicable), a wizard in the dashboard, a scaffolding repo, and a reference deployment pipeline.
Source
Templates live under apps/dps/dps-templates/ — a meta-package containing each scaffold:
| Template | Type | Repo |
|---|---|---|
| Parse Server | Backend | dps-templates-parse-server |
| React Landing | Frontend | dps-templates-react-landing |
| React Next.js | Frontend | dps-templates-react-nextjs |
| React Native | Mobile | dps-templates-react-native |
Template registry
All template metadata is defined in dps-dashboard/src/types/templates.ts as AppTemplateConfig:
interface AppTemplateConfig {
id: string;
name: string;
slug: string;
description: string;
longDescription: string;
icon: string;
author: string; // "DuabaLabs"
category: string;
tags: string[];
featured: boolean;
appType: 'web' | 'mobile' | 'backend' | 'worker';
supportedDeploymentTargets: DeploymentTarget[];
defaultDeploymentTarget: DeploymentTarget;
connectionType: 'new' | 'existing' | 'both';
supportedSourceTypes: TemplateSourceType[];
defaultSourceType: TemplateSourceType;
// DPS Docker Registry
dpsDockerImage?: string; // ghcr.io/duabalabs/...
dpsDockerVersions?: string[];
// GitHub Template Repository
repositoryUrl?: string;
dpsRepositoryUrl?: string;
configurationFields: TemplateConfigField[];
relatedTemplates?: string[];
}Current registry
| Template ID | Name | Docker Image | Template Repo | Wizard |
|---|---|---|---|---|
parse-server | Parse Server | ✅ ghcr.io/duabalabs/parse-server | ❌ | ✅ ParseServerWizard |
sellub-server | Sellub Server | ✅ ghcr.io/duabalabs/sellub-server | ❌ | ⚠️ Generic + Sellub |
sellub-dashboard | Sellub Dashboard | ❌ | ❌ | ⚠️ Generic |
sellub-storefront | Sellub Storefront | ❌ | ❌ | ⚠️ Generic |
react-web | React Web App | ✅ ghcr.io/duabalabs/react-web | ❌ | ⚠️ Generic |
react-native | React Native | ❌ (Expo) | ❌ | ⚠️ Generic |
landing-saas | SaaS Landing | ❌ | ❌ | ⚠️ Generic |
landing-agency | Agency Landing | ❌ | ❌ | ⚠️ Generic |
landing-ecommerce | E-commerce Landing | ❌ | ❌ | ⚠️ Generic |
landing-app | App Download Page | ❌ | ❌ | ⚠️ Generic |
landing-waitlist | Waitlist Page | ❌ | ❌ | ⚠️ Generic |
Docker registry
Production images live at:
ghcr.io/duabalabs/
├── parse-server # Parse Server backend (latest, 7.0.0, 6.5.0, 6.4.0)
├── sellub-server # Vendure-based e-commerce (latest, 2.3.0, 2.2.0, 2.1.0)
├── react-web # React/Vite web app (latest, 18-alpine, 20-alpine, 18-slim)
├── landing-saas # ❌ TO BE CREATED
├── landing-agency # ❌ TO BE CREATED
├── landing-ecommerce # ❌ TO BE CREATED
├── landing-app # ❌ TO BE CREATED
└── landing-waitlist # ❌ TO BE CREATEDBuild pipeline
Each DPS Docker image follows the same multi-stage Dockerfile pattern:
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM node:20-alpine AS runner
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/package.json ./
EXPOSE 3000
CMD ["npm", "start"]