# skygenesisenterprise/notploy architecture

> Architecture diagram of the GitHub repository skygenesisenterprise/notploy, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/skygenesisenterprise/notploy
- Repository: https://github.com/skygenesisenterprise/notploy

## Overview

Notploy is a self-hostable deployment control plane: users configure infrastructure and projects, deploy and operate applications, Compose stacks, and databases, then monitor and maintain them. The dashboard is the main user-facing workflow; the desktop app is a separate client for connecting to an instance and managing its resources. The README documents deployment engines, scheduled backups, API/CLI/SDK/MCP access, and templates, but their implementation paths are not present in this tree. The graph uses documented capabilities without claiming uninspected wiring; sampled source supports the desktop connection/storage flow and dashboard API actions.

Main entry points: [`apps/notploy/components/dashboard`](https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard) (Dashboard), [`apps/notploy/components/dashboard/project`](https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard/project) (Projects and environments), [`apps/notploy/components/dashboard/application`](https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard/application) (Application configuration), [`apps/desktop/src/main/connection/connection-manager.ts`](https://github.com/skygenesisenterprise/notploy/blob/master/apps/desktop/src/main/connection/connection-manager.ts) (Connection manager)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_control["Web Control Plane"]
  node_dashboard["Dashboard"]
  node_auth["Authentication<br/>[auth-client.ts]"]
  node_project["Projects and environments"]
  node_infrastructure["Servers and clusters"]
end

subgraph group_operations["Deploy And Operate"]
  node_application["Application configuration"]
  node_compose["Compose projects"]
  node_databases["Database services"]
  node_deployment["Deployment operations"]
  node_routing["Domains and routing"]
  node_backups["Database backups"]
  node_docker["Docker operations"]
  node_monitoring_ui["Monitoring and logs"]
  node_integrations["Git and notifications"]
end

subgraph group_desktop["Desktop Client"]
  node_desktop_ui["Desktop pages<br/>[overview-page.tsx]"]
  node_bridge["Desktop IPC<br/>[ipc.ts]"]
  node_connections["Connection manager"]
  node_api_client["Instance API client<br/>[notploy-client.ts]"]
  node_credential_store["Credential storage<br/>[safe-storage.ts]"]
  node_secrets[("Encrypted credentials<br/>[secure-storage.ts]")]
end

subgraph group_services["Supporting Services"]
  node_api["API and work service<br/>[service.ts]"]
  node_monitoring_service["Metrics service<br/>[main.go]"]
end

node_operator(("Platform operator"))
node_instance["Notploy instance"]
node_workloads["Managed workloads"]
node_os_keychain["Operating-system keychain"]
node_api_access["API, CLI, SDK, MCP"]
node_templates["Blueprint gallery"]

node_operator -->|"uses"| node_dashboard
node_dashboard -->|"authenticates with"| node_auth
node_dashboard -->|"configures"| node_project
node_dashboard -->|"configures"| node_infrastructure
node_project -->|"organizes"| node_application
node_project -->|"organizes"| node_compose
node_project -->|"organizes"| node_databases
node_application -->|"configures deploys"| node_deployment
node_compose -->|"configures deploys"| node_deployment
node_databases -->|"configures backups"| node_backups
node_application -->|"configures"| node_routing
node_dashboard -->|"operates"| node_docker
node_dashboard -->|"views"| node_monitoring_ui
node_dashboard -->|"configures"| node_integrations
node_deployment -->|"deploys"| node_workloads
node_docker -->|"manages"| node_workloads
node_monitoring_ui -->|"reads metrics"| node_monitoring_service
node_dashboard -->|"calls"| node_api
node_operator -->|"uses"| node_desktop_ui
node_desktop_ui -->|"invokes"| node_bridge
node_bridge -->|"dispatches"| node_connections
node_connections -->|"reads credentials"| node_credential_store
node_credential_store -->|"selects storage"| node_secrets
node_secrets -->|"encrypts through"| node_os_keychain
node_connections -->|"builds client"| node_api_client
node_api_client -->|"requests API"| node_instance
node_instance -->|"serves requests"| node_api
node_api_access -.->|"automates through"| node_api
node_templates -.->|"provides blueprints"| node_project

click node_dashboard "https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard"
click node_auth "https://github.com/skygenesisenterprise/notploy/blob/master/apps/notploy/lib/auth-client.ts"
click node_project "https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard/project"
click node_infrastructure "https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard/settings/servers"
click node_application "https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard/application"
click node_compose "https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard/compose"
click node_databases "https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard/postgres"
click node_deployment "https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard/deployments"
click node_routing "https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard/application/domains"
click node_backups "https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard/database/backups"
click node_docker "https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard/docker"
click node_monitoring_ui "https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard/monitoring"
click node_integrations "https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard/settings/git"
click node_api "https://github.com/skygenesisenterprise/notploy/blob/master/apps/api/src/service.ts"
click node_monitoring_service "https://github.com/skygenesisenterprise/notploy/blob/master/apps/monitoring/main.go"
click node_desktop_ui "https://github.com/skygenesisenterprise/notploy/blob/master/apps/desktop/src/renderer/pages/overview-page.tsx"
click node_bridge "https://github.com/skygenesisenterprise/notploy/blob/master/apps/desktop/src/main/ipc.ts"
click node_connections "https://github.com/skygenesisenterprise/notploy/blob/master/apps/desktop/src/main/connection/connection-manager.ts"
click node_api_client "https://github.com/skygenesisenterprise/notploy/blob/master/apps/desktop/src/main/client/notploy-client.ts"
click node_credential_store "https://github.com/skygenesisenterprise/notploy/blob/master/apps/desktop/src/main/security/safe-storage.ts"
click node_secrets "https://github.com/skygenesisenterprise/notploy/blob/master/apps/desktop/src/main/security/secure-storage.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_dashboard,node_auth,node_project,node_infrastructure toneBlue
class node_application,node_compose,node_databases,node_deployment,node_routing,node_backups,node_docker,node_monitoring_ui,node_integrations toneAmber
class node_desktop_ui,node_bridge,node_connections,node_api_client,node_credential_store,node_secrets,node_api_access toneMint
class node_api,node_monitoring_service toneRose
class node_operator,node_instance,node_workloads,node_os_keychain,node_templates toneIndigo
```

## Components

### Web Control Plane

- [Dashboard](https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard): `apps/notploy/components/dashboard`
- [Authentication](https://github.com/skygenesisenterprise/notploy/blob/master/apps/notploy/lib/auth-client.ts): `apps/notploy/lib/auth-client.ts`
- [Projects and environments](https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard/project): `apps/notploy/components/dashboard/project`
- [Servers and clusters](https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard/settings/servers): `apps/notploy/components/dashboard/settings/servers`

### Deploy And Operate

- [Application configuration](https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard/application): `apps/notploy/components/dashboard/application`
- [Compose projects](https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard/compose): `apps/notploy/components/dashboard/compose`
- [Database services](https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard/postgres): `apps/notploy/components/dashboard/postgres`
- [Deployment operations](https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard/deployments): `apps/notploy/components/dashboard/deployments`
- [Domains and routing](https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard/application/domains): `apps/notploy/components/dashboard/application/domains`
- [Database backups](https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard/database/backups): `apps/notploy/components/dashboard/database/backups`
- [Docker operations](https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard/docker): `apps/notploy/components/dashboard/docker`
- [Monitoring and logs](https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard/monitoring): `apps/notploy/components/dashboard/monitoring`
- [Git and notifications](https://github.com/skygenesisenterprise/notploy/tree/master/apps/notploy/components/dashboard/settings/git): `apps/notploy/components/dashboard/settings/git`

### Desktop Client

- [Desktop pages](https://github.com/skygenesisenterprise/notploy/blob/master/apps/desktop/src/renderer/pages/overview-page.tsx): `apps/desktop/src/renderer/pages/overview-page.tsx`
- [Desktop IPC](https://github.com/skygenesisenterprise/notploy/blob/master/apps/desktop/src/main/ipc.ts): `apps/desktop/src/main/ipc.ts`
- [Connection manager](https://github.com/skygenesisenterprise/notploy/blob/master/apps/desktop/src/main/connection/connection-manager.ts): `apps/desktop/src/main/connection/connection-manager.ts`
- [Instance API client](https://github.com/skygenesisenterprise/notploy/blob/master/apps/desktop/src/main/client/notploy-client.ts): `apps/desktop/src/main/client/notploy-client.ts`
- [Credential storage](https://github.com/skygenesisenterprise/notploy/blob/master/apps/desktop/src/main/security/safe-storage.ts): `apps/desktop/src/main/security/safe-storage.ts`
- [Encrypted credentials](https://github.com/skygenesisenterprise/notploy/blob/master/apps/desktop/src/main/security/secure-storage.ts): `apps/desktop/src/main/security/secure-storage.ts`

### Supporting Services

- [API and work service](https://github.com/skygenesisenterprise/notploy/blob/master/apps/api/src/service.ts): `apps/api/src/service.ts`
- [Metrics service](https://github.com/skygenesisenterprise/notploy/blob/master/apps/monitoring/main.go): `apps/monitoring/main.go`

### Other components

- **Platform operator**
- **Notploy instance**
- **Managed workloads**
- **Operating-system keychain**
- **API, CLI, SDK, MCP**
- **Blueprint gallery**

## Connections

- Platform operator → Dashboard: uses
- Dashboard → Authentication: authenticates with
- Dashboard → Projects and environments: configures
- Dashboard → Servers and clusters: configures
- Projects and environments → Application configuration: organizes
- Projects and environments → Compose projects: organizes
- Projects and environments → Database services: organizes
- Application configuration → Deployment operations: configures deploys
- Compose projects → Deployment operations: configures deploys
- Database services → Database backups: configures backups
- Application configuration → Domains and routing: configures
- Dashboard → Docker operations: operates
- Dashboard → Monitoring and logs: views
- Dashboard → Git and notifications: configures
- Deployment operations → Managed workloads: deploys
- Docker operations → Managed workloads: manages
- Monitoring and logs → Metrics service: reads metrics
- Dashboard → API and work service: calls
- Platform operator → Desktop pages: uses
- Desktop pages → Desktop IPC: invokes
- Desktop IPC → Connection manager: dispatches
- Connection manager → Credential storage: reads credentials
- Credential storage → Encrypted credentials: selects storage
- Encrypted credentials → Operating-system keychain: encrypts through
- Connection manager → Instance API client: builds client
- Instance API client → Notploy instance: requests API
- Notploy instance → API and work service: serves requests
- API, CLI, SDK, MCP → API and work service: automates through
- Blueprint gallery → Projects and environments: provides blueprints
