Business Capability Model¶
Document Type: Business Architecture
Status: Draft
Version: 1.0
Last Updated: 2024-12-30
Owner: Architecture Team
Purpose¶
This document defines the business capabilities that Dokploy provides to its users. A business capability represents what the platform must be able to do to deliver value, independent of how it's implemented. This model helps align technical architecture with business outcomes.
Capability Hierarchy¶
graph LR
DOKPLOY[Dokploy Platform]
DOKPLOY --> APP_MGMT[Application<br/>Management]
DOKPLOY --> DEPLOY[Deployment &<br/>Orchestration]
DOKPLOY --> INFRA[Infrastructure<br/>Management]
DOKPLOY --> DATA[Data<br/>Management]
DOKPLOY --> SECURITY[Security &<br/>Access Control]
DOKPLOY --> OBS[Observability &<br/>Monitoring]
DOKPLOY --> COLLAB[Collaboration &<br/>Team Management]
APP_MGMT --> APP_CATALOG[Application Catalog]
APP_MGMT --> APP_CONFIG[Configuration Management]
APP_MGMT --> APP_LIFECYCLE[Lifecycle Management]
DEPLOY --> DEPLOY_STRAT[Deployment Strategies]
DEPLOY --> DEPLOY_AUTO[Automated Deployment]
DEPLOY --> DEPLOY_ROLLBACK[Rollback & Recovery]
INFRA --> INFRA_PROV[Resource Provisioning]
INFRA --> INFRA_SCALE[Scaling Management]
INFRA --> INFRA_NET[Network Management]
DATA --> DATA_PERSIST[Data Persistence]
DATA --> DATA_BACKUP[Backup & Restore]
DATA --> DATA_MIGRATE[Data Migration]
SECURITY --> SEC_AUTH[Authentication]
SECURITY --> SEC_AUTHZ[Authorization]
SECURITY --> SEC_AUDIT[Audit & Compliance]
OBS --> OBS_LOG[Log Management]
OBS --> OBS_METRIC[Metrics & Monitoring]
OBS --> OBS_ALERT[Alerting]
COLLAB --> COLLAB_TEAM[Team Management]
COLLAB --> COLLAB_PROJECT[Project Organization]
COLLAB --> COLLAB_NOTIFY[Notifications]
style DOKPLOY fill:#e1f5ff
style APP_MGMT fill:#fff4e6
style DEPLOY fill:#e8f5e9
style INFRA fill:#f3e5f5
style DATA fill:#fce4ec
style SECURITY fill:#fff3e0
style OBS fill:#e0f2f1
style COLLAB fill:#f3e5f5
Level 1: Core Capabilities¶
1. Application Management¶
Definition: Ability to define, configure, and manage application deployments throughout their lifecycle.
Business Value: - Centralized application portfolio management - Consistent configuration across environments - Reduced deployment errors
Key Outcomes: - Create and catalog applications - Configure application settings - Manage application lifecycle (create, update, delete, pause)
2. Deployment & Orchestration¶
Definition: Automated deployment of applications with various strategies and orchestration patterns.
Business Value: - Faster time to market - Zero-downtime deployments - Automated rollback on failure
Key Outcomes: - Deploy applications from Git or Docker images - Execute rolling updates - Rollback to previous versions
3. Infrastructure Management¶
Definition: Management of underlying compute, network, and storage resources.
Business Value: - Efficient resource utilization - Cost optimization - Scalability on demand
Key Outcomes: - Provision containers and services - Scale horizontally and vertically - Manage networking and load balancing
4. Data Management¶
Definition: Persistent data storage, backup, and migration capabilities.
Business Value: - Data durability and availability - Disaster recovery readiness - Data portability
Key Outcomes: - Provision databases (PostgreSQL, MySQL, MongoDB, Redis) - Automated backups - Data migration and seeding
5. Security & Access Control¶
Definition: Authentication, authorization, and compliance capabilities.
Business Value: - Protect sensitive resources - Meet compliance requirements - Audit trail for accountability
Key Outcomes: - Authenticate users (local, OIDC) - Enforce role-based access control - Audit all actions
6. Observability & Monitoring¶
Definition: Visibility into system and application behavior through logs, metrics, and traces.
Business Value: - Faster troubleshooting - Proactive issue detection - Performance optimization insights
Key Outcomes: - Stream real-time logs - Collect and visualize metrics - Alert on anomalies
7. Collaboration & Team Management¶
Definition: Tools for teams to work together on projects and applications.
Business Value: - Improved team productivity - Clear ownership and responsibility - Streamlined workflows
Key Outcomes: - Organize applications into projects - Manage team members and roles - Notify team of events
Level 2: Sub-Capabilities¶
1.1 Application Catalog¶
Description: Repository of all applications managed by the platform.
Functions: - List all applications - Search and filter applications - View application details - Tag and categorize applications
Supporting Components: - Next.js UI: Application list view - PostgreSQL: Applications table - API: GET /api/applications
Maturity: Core (v1.0)
1.2 Configuration Management¶
Description: Manage application settings, environment variables, and secrets.
Functions: - Set environment variables - Manage secrets (API keys, passwords) - Configure resource limits (CPU, memory) - Set health check parameters - Configure networking (ports, domains)
Supporting Components: - Next.js UI: Configuration forms - PostgreSQL: Config storage - Docker Swarm: Secrets management - API: PUT /api/applications/{id}/config
Maturity: Core (v1.0)
1.3 Lifecycle Management¶
Description: Control application state and lifecycle transitions.
Functions: - Create new applications - Start/stop applications - Restart applications - Delete applications - Clone applications
Supporting Components: - Next.js API: Lifecycle controllers - Docker Swarm: Service management - PostgreSQL: State tracking - API: POST/DELETE /api/applications/{id}/lifecycle
Maturity: Core (v1.0)
2.1 Deployment Strategies¶
Description: Various methods for deploying application updates.
Functions: - Rolling Update: Update replicas one at a time - Blue-Green: Switch traffic between two versions - Canary: Gradual traffic shift to new version - Recreate: Stop old, start new (downtime)
Supporting Components: - Docker Swarm: Update strategies - Traefik: Traffic routing - Next.js API: Deployment orchestration
Maturity: - Rolling Update: Core (v1.0) - Blue-Green: Enhanced (v2.0) - Canary: Enhanced (v2.0) - Recreate: Core (v1.0)
2.2 Automated Deployment¶
Description: Trigger deployments automatically from various sources.
Functions: - Git webhook integration (GitHub, GitLab, Bitbucket) - Container registry webhooks (Docker Hub) - CI/CD pipeline integration - Scheduled deployments (cron) - Manual trigger
Supporting Components: - Next.js API: Webhook receivers - Background workers: Build jobs - PostgreSQL: Deployment queue - API: POST /api/applications/{id}/deploy
Maturity: - Git webhooks: Core (v1.0) - Manual trigger: Core (v1.0) - CI/CD integration: Enhanced (v1.5) - Scheduled: Enhanced (v2.0)
2.3 Rollback & Recovery¶
Description: Revert to previous working version on failure.
Functions: - Automatic rollback on health check failure - Manual rollback to specific version - View deployment history - Compare versions
Supporting Components: - Docker Swarm: Service update rollback - PostgreSQL: Deployment history - Next.js UI: Rollback controls - API: POST /api/applications/{id}/rollback
Maturity: Core (v1.0)
3.1 Resource Provisioning¶
Description: Provision compute resources for applications.
Functions: - Create Docker services - Set resource reservations (guaranteed resources) - Set resource limits (maximum resources) - Assign to specific nodes (placement constraints)
Supporting Components: - Docker Swarm: Service creation - Next.js API: Provisioning logic - API: POST /api/applications
Maturity: Core (v1.0)
3.2 Scaling Management¶
Description: Scale applications horizontally (replicas) or vertically (resources).
Functions: - Manual scaling (set replica count) - Auto-scaling based on metrics (CPU, memory) - Scale to zero (pause) - Load balancing across replicas
Supporting Components: - Docker Swarm: Replica management - Traefik: Load balancing - Metrics collector: Auto-scaling triggers - API: POST /api/applications/{id}/scale
Maturity: - Manual scaling: Core (v1.0) - Auto-scaling: Enhanced (v2.0)
3.3 Network Management¶
Description: Configure networking, domains, and load balancing.
Functions: - Assign custom domains - Configure TLS/SSL certificates (Let's Encrypt) - Set up load balancing - Manage overlay networks - Configure port mappings
Supporting Components: - Traefik: Reverse proxy, TLS termination - Docker Swarm: Overlay networks - Let's Encrypt: Certificate automation - API: POST /api/domains
Maturity: Core (v1.0)
4.1 Data Persistence¶
Description: Provision and manage databases and persistent storage.
Functions: - Deploy PostgreSQL databases - Deploy MySQL databases - Deploy MongoDB databases - Deploy Redis instances - Manage Docker volumes - Configure connection strings
Supporting Components: - Docker Swarm: Stateful services - Docker Volumes: Persistent storage - Next.js API: Database provisioning - API: POST /api/databases
Maturity: Core (v1.0)
4.2 Backup & Restore¶
Description: Automated backup and recovery of data.
Functions: - Schedule automated backups (daily, weekly) - Manual on-demand backups - Restore from backup point - Export/import data - Backup to S3-compatible storage
Supporting Components: - Cron jobs: Scheduled backups - PostgreSQL: pg_dump utility - S3 client: Remote storage - API: POST /api/databases/{id}/backup
Maturity: - Manual backup: Core (v1.0) - Scheduled backup: Enhanced (v1.5) - S3 integration: Enhanced (v1.5)
4.3 Data Migration¶
Description: Migrate data between environments or platforms.
Functions: - Import data from external sources - Export data for migration - Run database migrations (schema changes) - Seed initial data
Supporting Components: - Migration scripts - Next.js API: Migration controllers - API: POST /api/databases/{id}/migrate
Maturity: Enhanced (v1.5)
5.1 Authentication¶
Description: Verify user identity through various methods.
Functions: - Local username/password authentication - OIDC/OAuth2 integration (Google, GitHub, Keycloak) - Multi-factor authentication (future) - Session management - Password reset
Supporting Components: - Next.js: NextAuth.js - PostgreSQL: User credentials - OIDC Provider: External identity - API: POST /api/auth/login
Maturity: - Local auth: Core (v1.0) - OIDC: Core (v1.0) - MFA: Future (v3.0)
5.2 Authorization¶
Description: Control access to resources based on roles and permissions.
Functions: - Role-Based Access Control (RBAC) - Project-level permissions - Resource-level permissions - Team membership management - Permission inheritance
Supporting Components: - PostgreSQL: Roles and permissions tables - Next.js API: Authorization middleware - Row-Level Security: Database policies
Maturity: Core (v1.0)
5.3 Audit & Compliance¶
Description: Track and log all actions for security and compliance.
Functions: - Log all user actions - Log all system events - Query audit logs - Export audit reports - Alert on suspicious activity
Supporting Components: - PostgreSQL: Audit logs table - Next.js API: Audit logging - Full-text search: Log queries - API: GET /api/audit-logs
Maturity: Core (v1.0)
6.1 Log Management¶
Description: Collect, store, and query application and system logs.
Functions: - Stream real-time logs (WebSocket) - Search logs (full-text search) - Filter logs by time, level, service - Download logs - Set log retention policies
Supporting Components: - Docker: Container log driver - PostgreSQL: Log storage (optional) - Next.js API: Log streaming - WebSocket: Real-time updates - API: GET /api/applications/{id}/logs
Maturity: Core (v1.0)
6.2 Metrics & Monitoring¶
Description: Collect and visualize system and application metrics.
Functions: - Collect resource metrics (CPU, memory, disk, network) - Collect application metrics (requests, errors, latency) - Display dashboards (Grafana integration) - Historical metrics (time-series database) - Custom metrics
Supporting Components: - Prometheus: Metrics collection - Grafana: Visualization - Node exporter: System metrics - Application: /metrics endpoint - API: GET /api/metrics
Maturity: - Basic metrics: Core (v1.0) - Grafana integration: Enhanced (v1.5) - Custom metrics: Enhanced (v2.0)
6.3 Alerting¶
Description: Notify users of issues and anomalies.
Functions: - Define alert rules (threshold-based) - Multi-channel notifications (email, Slack, webhook) - Alert history - Alert acknowledgment - On-call scheduling
Supporting Components: - Prometheus: Alert rules - Alertmanager: Alert routing - SMTP: Email notifications - Webhook: Custom integrations - API: POST /api/alerts
Maturity: - Basic alerts: Enhanced (v1.5) - Multi-channel: Enhanced (v2.0) - On-call: Future (v3.0)
7.1 Team Management¶
Description: Organize users into teams with shared access.
Functions: - Create teams - Add/remove team members - Assign team roles - Team-level permissions
Supporting Components: - PostgreSQL: Teams and members tables - Next.js UI: Team management - API: POST /api/teams
Maturity: Core (v1.0)
7.2 Project Organization¶
Description: Group related applications into projects.
Functions: - Create projects - Assign applications to projects - Project-level settings - Project templates
Supporting Components: - PostgreSQL: Projects table - Next.js UI: Project views - API: POST /api/projects
Maturity: Core (v1.0)
7.3 Notifications¶
Description: Keep team members informed of events and changes.
Functions: - Deployment notifications - Alert notifications - Activity feed - In-app notifications - Email notifications - Webhook notifications
Supporting Components: - WebSocket: Real-time updates - SMTP: Email delivery - PostgreSQL: Notification queue - API: GET /api/notifications
Maturity: - In-app: Core (v1.0) - Email: Enhanced (v1.5) - Webhook: Enhanced (v1.5)
Capability Maturity Model¶
Maturity Levels¶
| Level | Description | Characteristics |
|---|---|---|
| Core | Essential, must-have | Launch blocker, v1.0 requirement |
| Enhanced | Important, high value | Post-launch, v1.5-2.0 |
| Advanced | Nice-to-have, power users | v2.0+ |
| Future | Planned, not committed | v3.0+, roadmap item |
Capability Maturity Matrix¶
| Capability | Core | Enhanced | Advanced | Future |
|---|---|---|---|---|
| Application Management | Catalog, Config, Lifecycle | Templates, Cloning | Multi-region | - |
| Deployment | Rolling, Manual | Git webhooks, CI/CD | Blue-Green, Canary | Progressive delivery |
| Infrastructure | Provisioning, Scaling | Auto-scaling | Multi-cloud | Edge deployment |
| Data Management | Provisioning, Basic backup | Scheduled backup, S3 | Point-in-time recovery | Multi-region replication |
| Security | Local auth, OIDC, RBAC | Audit reports | SSO (SAML, LDAP) | MFA, Certificate management |
| Observability | Logs, Basic metrics | Grafana, Alerting | Distributed tracing | APM integration |
| Collaboration | Teams, Projects | Activity feed, Notifications | Real-time collab | Video chat, AI assist |
Capability Dependencies¶
graph LR
AUTH[Authentication] --> AUTHZ[Authorization]
AUTHZ --> APP_MGMT[Application<br/>Management]
APP_MGMT --> DEPLOY[Deployment]
DEPLOY --> INFRA[Infrastructure<br/>Management]
INFRA --> OBS[Observability]
APP_MGMT --> DATA[Data<br/>Management]
DATA --> BACKUP[Backup]
OBS --> ALERT[Alerting]
AUTHZ --> COLLAB[Collaboration]
style AUTH fill:#fff3e0
style AUTHZ fill:#fff3e0
style APP_MGMT fill:#fff4e6
style DEPLOY fill:#e8f5e9
style INFRA fill:#f3e5f5
style DATA fill:#fce4ec
style OBS fill:#e0f2f1
Key Dependencies: - Authentication must exist before authorization - Authorization required for all resource management - Application management depends on authorization - Deployment depends on application definitions - Infrastructure provisioning required for deployment - Data management parallel to application management - Observability can be added incrementally
Capability Roadmap¶
Phase 1: Core Platform (v1.0) - Q1 2025¶
Focus: Essential capabilities for basic PaaS functionality
Capabilities: - ✅ Application catalog and lifecycle - ✅ Basic configuration management - ✅ Manual deployment (Docker, Git) - ✅ Rolling updates - ✅ Resource provisioning - ✅ Manual scaling - ✅ Network management (domains, TLS) - ✅ Database provisioning (PostgreSQL, Redis) - ✅ Local authentication - ✅ OIDC integration - ✅ RBAC - ✅ Basic audit logging - ✅ Log streaming - ✅ Basic metrics - ✅ Team and project management
Phase 2: Enhanced Operations (v1.5) - Q2 2025¶
Focus: Automation and improved observability
Capabilities: - Git webhook automation - CI/CD integration - Scheduled backups - S3 backup storage - Grafana integration - Alerting (email, Slack) - Activity feed - Email notifications - Data migration tools
Phase 3: Advanced Features (v2.0) - Q3 2025¶
Focus: Advanced deployment and scaling
Capabilities: - Auto-scaling - Blue-green deployment - Canary deployment - Point-in-time recovery - Custom metrics - Distributed tracing - Multi-channel alerting - Real-time collaboration
Phase 4: Enterprise (v3.0) - Q4 2025+¶
Focus: Enterprise-grade features
Capabilities: - Multi-factor authentication - SSO (SAML, LDAP) - Certificate management - Progressive delivery - Multi-region support - On-call scheduling - APM integration - AI-powered insights
Business Capability to Component Mapping¶
| Capability | Primary Components | Supporting Components |
|---|---|---|
| Application Catalog | Next.js UI, PostgreSQL | Search API, Tagging |
| Configuration Management | Next.js API, Docker Secrets | PostgreSQL, Validation |
| Deployment | Next.js API, Docker Swarm | Git, Docker Registry |
| Resource Provisioning | Docker Swarm | Next.js API, PostgreSQL |
| Scaling | Docker Swarm, Traefik | Metrics collector |
| Network Management | Traefik, Let's Encrypt | Docker overlay networks |
| Database Provisioning | Docker Swarm | PostgreSQL, Redis images |
| Backup & Restore | Cron, pg_dump | S3 client, PostgreSQL |
| Authentication | NextAuth.js | PostgreSQL, OIDC Provider |
| Authorization | Next.js middleware | PostgreSQL RLS |
| Audit Logging | PostgreSQL | Full-text search |
| Log Management | Docker logs | WebSocket, PostgreSQL |
| Metrics | Prometheus | Grafana, Exporters |
| Alerting | Alertmanager | SMTP, Webhooks |
| Team Management | Next.js UI, PostgreSQL | RBAC engine |
Success Metrics by Capability¶
Application Management¶
- Metric: Applications managed per user
- Target: 10+ per user (average)
- Measurement: PostgreSQL query
Deployment¶
- Metric: Deployment success rate
- Target: >95%
- Measurement: Deployment logs
Infrastructure¶
- Metric: Resource utilization
- Target: 70-85% (optimal range)
- Measurement: Prometheus metrics
Security¶
- Metric: Authentication success rate
- Target: >99%
- Measurement: Auth logs
Observability¶
- Metric: Mean time to detection (MTTD)
- Target: <5 minutes
- Measurement: Alert timestamp vs. issue timestamp
Collaboration¶
- Metric: Team adoption rate
- Target: 80% of users in teams
- Measurement: User/team membership ratio
Related Documents¶
- Architecture Vision: Overall goals and principles
- Stakeholder Analysis: Stakeholder needs mapped to capabilities
- Value Stream Mapping: Capabilities in action
- PRD: Detailed requirements for each capability
- Component Diagram: Technical implementation of capabilities
Document Version: 1.0
Last Updated: 2024-12-30
Next Review: 2025-03-30
Reviewed By: Architecture Team, Product Team