# keepcoolch/dockamp architecture

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

- Interactive diagram: https://gitdiagram.com/keepcoolch/dockamp
- Repository: https://github.com/keepcoolch/dockamp

## Overview

DockAMP’s checked-in product is a macOS SwiftUI app for configuring and operating Docker-hosted web/app server stacks. The main workflow is to create a server configuration, start its stack through Docker, and monitor or manage it from the app. Separate capabilities cover database attachment, Proxy Manager, Compose YAML, recovery exports, backups, and maintenance. The README also describes a browser-based Docker edition, but its implementation is not present in this file tree; several documented capabilities therefore have no confidently identifiable source module here.

Main entry points: [`DockAMP/DockerManager.swift`](https://github.com/keepcoolch/dockamp/blob/main/DockAMP/DockerManager.swift) (Docker operations), [`DockAMP/ContentView.swift`](https://github.com/keepcoolch/dockamp/blob/main/DockAMP/ContentView.swift) (Server dashboard), [`DockAMP/NewServerSheet.swift`](https://github.com/keepcoolch/dockamp/blob/main/DockAMP/NewServerSheet.swift) (New server setup), [`DockAMP/ProxyManagerConfigView.swift`](https://github.com/keepcoolch/dockamp/blob/main/DockAMP/ProxyManagerConfigView.swift) (Proxy Manager settings)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App workflow"]
  node_content["Server dashboard<br/>[ContentView.swift]"]
  node_create["New server setup"]
  node_detail["Server details"]
  node_model["Server view model"]
  node_config[("Server configuration")]
  node_serverconfig["Server model"]
  node_logs["Container logs<br/>[LogsTabView.swift]"]
  node_visitors["Live visitors"]
end

subgraph group_runtime["Docker runtime"]
  node_docker["Docker operations"]
end

subgraph group_integrations["Integrations"]
  node_dbview["Database settings"]
  node_sharedb[("Shared database settings")]
  node_proxyview["Proxy Manager settings"]
  node_proxystore[("Proxy Manager settings store")]
  node_npm["NPM API service"]
  node_composeview["Compose YAML center"]
end

subgraph group_recovery["Recovery and maintenance"]
  node_maintenance["Maintenance controls"]
  node_backup["Backup and restore"]
  node_export["Compose recovery export"]
  node_images["Image updates"]
end

node_user(("App user"))
node_engine(("Docker Engine"))
node_npmservice(("Nginx Proxy Manager"))

node_user -->|"uses"| node_content
node_content -->|"opens setup"| node_create
node_content -->|"reads and updates"| node_config
node_content -->|"starts and monitors"| node_docker
node_create -->|"builds"| node_serverconfig
node_create -->|"saves"| node_config
node_create -->|"starts stack"| node_docker
node_content -->|"opens server"| node_detail
node_detail -->|"uses"| node_model
node_model -->|"manages stack"| node_docker
node_docker -->|"runs containers"| node_engine
node_dbview -->|"reads and saves"| node_sharedb
node_dbview -->|"manages database tools"| node_docker
node_proxyview -->|"saves settings"| node_proxystore
node_proxyview -->|"starts and stops"| node_docker
node_proxyview -->|"tests and loads hosts"| node_npm
node_npm -->|"sends API requests"| node_npmservice
node_composeview -->|"runs Compose files"| node_docker
node_maintenance -->|"backs up and restores"| node_backup
node_maintenance -->|"requests exports"| node_export
node_maintenance -->|"updates and cleans"| node_docker
node_backup -->|"reads configurations"| node_config
node_backup -->|"checks containers and dumps"| node_docker
node_proxystore -->|"requests export on save"| node_export
node_sharedb -->|"requests export on save"| node_export
node_logs -->|"retrieves logs"| node_docker
node_visitors -->|"retrieves traffic data"| node_docker
node_images -->|"checks images"| node_docker

click node_content "https://github.com/keepcoolch/dockamp/blob/main/DockAMP/ContentView.swift"
click node_create "https://github.com/keepcoolch/dockamp/blob/main/DockAMP/NewServerSheet.swift"
click node_detail "https://github.com/keepcoolch/dockamp/blob/main/DockAMP/ServerDetailView.swift"
click node_model "https://github.com/keepcoolch/dockamp/blob/main/DockAMP/ServerViewModel.swift"
click node_config "https://github.com/keepcoolch/dockamp/blob/main/DockAMP/ConfigurationStore.swift"
click node_serverconfig "https://github.com/keepcoolch/dockamp/blob/main/DockAMP/ServerConfiguration.swift"
click node_docker "https://github.com/keepcoolch/dockamp/blob/main/DockAMP/DockerManager.swift"
click node_dbview "https://github.com/keepcoolch/dockamp/blob/main/DockAMP/DatabaseConfigView.swift"
click node_sharedb "https://github.com/keepcoolch/dockamp/blob/main/DockAMP/SharedDatabaseStore.swift"
click node_proxyview "https://github.com/keepcoolch/dockamp/blob/main/DockAMP/ProxyManagerConfigView.swift"
click node_proxystore "https://github.com/keepcoolch/dockamp/blob/main/DockAMP/ProxyManagerStore.swift"
click node_npm "https://github.com/keepcoolch/dockamp/blob/main/DockAMP/NPMProxyService.swift"
click node_composeview "https://github.com/keepcoolch/dockamp/blob/main/DockAMP/ComposeYAMLCenterView.swift"
click node_maintenance "https://github.com/keepcoolch/dockamp/blob/main/DockAMP/SystemMaintenanceView.swift"
click node_backup "https://github.com/keepcoolch/dockamp/blob/main/DockAMP/BackupManager.swift"
click node_export "https://github.com/keepcoolch/dockamp/blob/main/DockAMP/ComposeExportManager.swift"
click node_logs "https://github.com/keepcoolch/dockamp/blob/main/DockAMP/LogsTabView.swift"
click node_visitors "https://github.com/keepcoolch/dockamp/blob/main/DockAMP/LiveVisitorsView.swift"
click node_images "https://github.com/keepcoolch/dockamp/blob/main/DockAMP/ImageUpdateCenterView.swift"

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_content,node_create,node_detail,node_model,node_config,node_serverconfig,node_logs,node_visitors,node_user toneBlue
class node_docker toneAmber
class node_dbview,node_sharedb,node_proxyview,node_proxystore,node_npm,node_composeview toneMint
class node_maintenance,node_backup,node_export,node_images toneRose
class node_engine,node_npmservice toneIndigo
```

## Components

### App workflow

- [Server dashboard](https://github.com/keepcoolch/dockamp/blob/main/DockAMP/ContentView.swift): `DockAMP/ContentView.swift`
- [New server setup](https://github.com/keepcoolch/dockamp/blob/main/DockAMP/NewServerSheet.swift): `DockAMP/NewServerSheet.swift`
- [Server details](https://github.com/keepcoolch/dockamp/blob/main/DockAMP/ServerDetailView.swift): `DockAMP/ServerDetailView.swift`
- [Server view model](https://github.com/keepcoolch/dockamp/blob/main/DockAMP/ServerViewModel.swift): `DockAMP/ServerViewModel.swift`
- [Server configuration](https://github.com/keepcoolch/dockamp/blob/main/DockAMP/ConfigurationStore.swift): `DockAMP/ConfigurationStore.swift`
- [Server model](https://github.com/keepcoolch/dockamp/blob/main/DockAMP/ServerConfiguration.swift): `DockAMP/ServerConfiguration.swift`
- [Container logs](https://github.com/keepcoolch/dockamp/blob/main/DockAMP/LogsTabView.swift): `DockAMP/LogsTabView.swift`
- [Live visitors](https://github.com/keepcoolch/dockamp/blob/main/DockAMP/LiveVisitorsView.swift): `DockAMP/LiveVisitorsView.swift`

### Docker runtime

- [Docker operations](https://github.com/keepcoolch/dockamp/blob/main/DockAMP/DockerManager.swift): `DockAMP/DockerManager.swift`

### Integrations

- [Database settings](https://github.com/keepcoolch/dockamp/blob/main/DockAMP/DatabaseConfigView.swift): `DockAMP/DatabaseConfigView.swift`
- [Shared database settings](https://github.com/keepcoolch/dockamp/blob/main/DockAMP/SharedDatabaseStore.swift): `DockAMP/SharedDatabaseStore.swift`
- [Proxy Manager settings](https://github.com/keepcoolch/dockamp/blob/main/DockAMP/ProxyManagerConfigView.swift): `DockAMP/ProxyManagerConfigView.swift`
- [Proxy Manager settings store](https://github.com/keepcoolch/dockamp/blob/main/DockAMP/ProxyManagerStore.swift): `DockAMP/ProxyManagerStore.swift`
- [NPM API service](https://github.com/keepcoolch/dockamp/blob/main/DockAMP/NPMProxyService.swift): `DockAMP/NPMProxyService.swift`
- [Compose YAML center](https://github.com/keepcoolch/dockamp/blob/main/DockAMP/ComposeYAMLCenterView.swift): `DockAMP/ComposeYAMLCenterView.swift`

### Recovery and maintenance

- [Maintenance controls](https://github.com/keepcoolch/dockamp/blob/main/DockAMP/SystemMaintenanceView.swift): `DockAMP/SystemMaintenanceView.swift`
- [Backup and restore](https://github.com/keepcoolch/dockamp/blob/main/DockAMP/BackupManager.swift): `DockAMP/BackupManager.swift`
- [Compose recovery export](https://github.com/keepcoolch/dockamp/blob/main/DockAMP/ComposeExportManager.swift): `DockAMP/ComposeExportManager.swift`
- [Image updates](https://github.com/keepcoolch/dockamp/blob/main/DockAMP/ImageUpdateCenterView.swift): `DockAMP/ImageUpdateCenterView.swift`

### Other components

- **App user**
- **Docker Engine**
- **Nginx Proxy Manager**

## Connections

- App user → Server dashboard: uses
- Server dashboard → New server setup: opens setup
- Server dashboard → Server configuration: reads and updates
- Server dashboard → Docker operations: starts and monitors
- New server setup → Server model: builds
- New server setup → Server configuration: saves
- New server setup → Docker operations: starts stack
- Server dashboard → Server details: opens server
- Server details → Server view model: uses
- Server view model → Docker operations: manages stack
- Docker operations → Docker Engine: runs containers
- Database settings → Shared database settings: reads and saves
- Database settings → Docker operations: manages database tools
- Proxy Manager settings → Proxy Manager settings store: saves settings
- Proxy Manager settings → Docker operations: starts and stops
- Proxy Manager settings → NPM API service: tests and loads hosts
- NPM API service → Nginx Proxy Manager: sends API requests
- Compose YAML center → Docker operations: runs Compose files
- Maintenance controls → Backup and restore: backs up and restores
- Maintenance controls → Compose recovery export: requests exports
- Maintenance controls → Docker operations: updates and cleans
- Backup and restore → Server configuration: reads configurations
- Backup and restore → Docker operations: checks containers and dumps
- Proxy Manager settings store → Compose recovery export: requests export on save
- Shared database settings → Compose recovery export: requests export on save
- Container logs → Docker operations: retrieves logs
- Live visitors → Docker operations: retrieves traffic data
- Image updates → Docker operations: checks images
