# augani/dory architecture

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

- Interactive diagram: https://gitdiagram.com/augani/dory
- Repository: https://github.com/augani/dory

## Overview

Dory is a native macOS local development runtime: users manage Docker workloads, Kubernetes, and separate Linux VMs through the app or CLI, with supporting storage, networking, migration, and diagnostics. The README documents the product’s major capabilities, while sampled source directly confirms Docker API access, engine boot/runtime responsibilities, and storage inventory. Other subsystem links reflect documented product boundaries; their internal call wiring was not sampled.

Main entry points: [`Dory/Models/AppStore.swift`](https://github.com/augani/dory/blob/main/Dory/Models/AppStore.swift) (App state), [`Dory/Runtime/ContainerRuntime.swift`](https://github.com/augani/dory/blob/main/Dory/Runtime/ContainerRuntime.swift) (Container runtime), [`Dory/Runtime/Docker/DockerEngineRuntime.swift`](https://github.com/augani/dory/blob/main/Dory/Runtime/Docker/DockerEngineRuntime.swift) (Docker engine client), [`Dory/DoryApp.swift`](https://github.com/augani/dory/blob/main/Dory/DoryApp.swift) (Native app)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_surfaces["User surfaces"]
  node_app["Native app<br/>[DoryApp.swift]"]
  node_workspace["Workload views"]
  node_cli["CLI commands<br/>[DoryCommands.swift]"]
  node_state["App state<br/>[AppStore.swift]"]
end

subgraph group_workloads["Workload runtimes"]
  node_compose["Compose projects"]
  node_compose_cli["Compose parsing<br/>[ComposeCLI.swift]"]
  node_docker["Docker engine client"]
  node_container_api["Container runtime"]
  node_hypervisor["VM engine<br/>[EngineMode.swift]"]
  node_kubernetes["Kubernetes"]
  node_kube_ui["Cluster browser"]
end

subgraph group_machines["Linux machines"]
  node_machine_service["Machine lifecycle"]
  node_machine_ui["Machine workspace<br/>[MachinesView.swift]"]
end

subgraph group_operations["Operations and migration"]
  node_migration["Migration coordinator"]
  node_health["Health diagnostics"]
end

subgraph group_platform["Host services"]
  node_networking["Networking services<br/>[DomainRouter.swift]"]
  node_storage_inventory["Storage inventory"]
  node_storage_view["Finder storage view"]
  node_storage_provider["File Provider"]
end

node_developer(("Developer"))
node_docker_service["Docker-compatible service"]
node_host_services["macOS host"]

node_developer -->|"uses"| node_app
node_developer -->|"runs commands"| node_cli
node_app -->|"presents"| node_workspace
node_workspace -->|"updates"| node_state
node_cli -->|"commands"| node_state
node_state -->|"manages workloads"| node_docker
node_docker -->|"implements"| node_container_api
node_container_api -->|"Docker API"| node_docker_service
node_compose -->|"loads projects"| node_compose_cli
node_compose_cli -->|"manages services"| node_container_api
node_state -->|"manages cluster"| node_kubernetes
node_kube_ui -->|"browses resources"| node_state
node_state -->|"manages machines"| node_machine_service
node_machine_ui -->|"configures machines"| node_state
node_machine_service -->|"provisions VMs"| node_hypervisor
node_state -->|"coordinates import"| node_migration
node_migration -->|"reads and stages"| node_container_api
node_health -->|"diagnoses runtime"| node_state
node_docker -->|"reads usage"| node_storage_inventory
node_storage_inventory -->|"publishes snapshot"| node_storage_view
node_storage_view -->|"exposes items"| node_storage_provider
node_hypervisor -->|"runs on"| node_host_services
node_state -->|"configures routes"| node_networking
node_networking -->|"bridges traffic"| node_host_services

click node_app "https://github.com/augani/dory/blob/main/Dory/DoryApp.swift"
click node_workspace "https://github.com/augani/dory/blob/main/Dory/Features/Main/MainColumnView.swift"
click node_cli "https://github.com/augani/dory/blob/main/Dory/App/DoryCommands.swift"
click node_state "https://github.com/augani/dory/blob/main/Dory/Models/AppStore.swift"
click node_compose "https://github.com/augani/dory/blob/main/Dory/Features/Compose/ComposeProjectsView.swift"
click node_compose_cli "https://github.com/augani/dory/blob/main/Dory/Compose/ComposeCLI.swift"
click node_docker "https://github.com/augani/dory/blob/main/Dory/Runtime/Docker/DockerEngineRuntime.swift"
click node_container_api "https://github.com/augani/dory/blob/main/Dory/Runtime/ContainerRuntime.swift"
click node_hypervisor "https://github.com/augani/dory/blob/main/Packages/ContainerizationEngine/Sources/dory-hv/EngineMode.swift"
click node_kubernetes "https://github.com/augani/dory/blob/main/Dory/Runtime/Kubernetes/KubernetesProvider.swift"
click node_kube_ui "https://github.com/augani/dory/blob/main/Dory/Features/Tables/KubernetesView.swift"
click node_machine_service "https://github.com/augani/dory/blob/main/Dory/Runtime/Machines/MachineService.swift"
click node_machine_ui "https://github.com/augani/dory/blob/main/Dory/Features/Machines/MachinesView.swift"
click node_migration "https://github.com/augani/dory/blob/main/Dory/Runtime/MigrationImportCoordinator.swift"
click node_health "https://github.com/augani/dory/blob/main/Dory/Features/Health/HealthDiagnostics.swift"
click node_networking "https://github.com/augani/dory/blob/main/Dory/Net/DomainRouter.swift"
click node_storage_inventory "https://github.com/augani/dory/blob/main/Dory/Runtime/Storage/DockerStorageInventory.swift"
click node_storage_view "https://github.com/augani/dory/blob/main/Dory/Runtime/Storage/DoryFinderStorageLocation.swift"
click node_storage_provider "https://github.com/augani/dory/blob/main/DoryStorageProvider/FileProviderExtension.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_app,node_workspace,node_cli,node_state toneBlue
class node_compose,node_compose_cli,node_docker,node_container_api,node_hypervisor,node_kubernetes,node_kube_ui toneAmber
class node_machine_service,node_machine_ui toneMint
class node_migration,node_health toneRose
class node_networking,node_storage_inventory,node_storage_view,node_storage_provider,node_developer,node_docker_service,node_host_services toneIndigo
```

## Components

### User surfaces

- [Native app](https://github.com/augani/dory/blob/main/Dory/DoryApp.swift): `Dory/DoryApp.swift`
- [Workload views](https://github.com/augani/dory/blob/main/Dory/Features/Main/MainColumnView.swift): `Dory/Features/Main/MainColumnView.swift`
- [CLI commands](https://github.com/augani/dory/blob/main/Dory/App/DoryCommands.swift): `Dory/App/DoryCommands.swift`
- [App state](https://github.com/augani/dory/blob/main/Dory/Models/AppStore.swift): `Dory/Models/AppStore.swift`

### Workload runtimes

- [Compose projects](https://github.com/augani/dory/blob/main/Dory/Features/Compose/ComposeProjectsView.swift): `Dory/Features/Compose/ComposeProjectsView.swift`
- [Compose parsing](https://github.com/augani/dory/blob/main/Dory/Compose/ComposeCLI.swift): `Dory/Compose/ComposeCLI.swift`
- [Docker engine client](https://github.com/augani/dory/blob/main/Dory/Runtime/Docker/DockerEngineRuntime.swift): `Dory/Runtime/Docker/DockerEngineRuntime.swift`
- [Container runtime](https://github.com/augani/dory/blob/main/Dory/Runtime/ContainerRuntime.swift): `Dory/Runtime/ContainerRuntime.swift`
- [VM engine](https://github.com/augani/dory/blob/main/Packages/ContainerizationEngine/Sources/dory-hv/EngineMode.swift): `Packages/ContainerizationEngine/Sources/dory-hv/EngineMode.swift`
- [Kubernetes](https://github.com/augani/dory/blob/main/Dory/Runtime/Kubernetes/KubernetesProvider.swift): `Dory/Runtime/Kubernetes/KubernetesProvider.swift`
- [Cluster browser](https://github.com/augani/dory/blob/main/Dory/Features/Tables/KubernetesView.swift): `Dory/Features/Tables/KubernetesView.swift`

### Linux machines

- [Machine lifecycle](https://github.com/augani/dory/blob/main/Dory/Runtime/Machines/MachineService.swift): `Dory/Runtime/Machines/MachineService.swift`
- [Machine workspace](https://github.com/augani/dory/blob/main/Dory/Features/Machines/MachinesView.swift): `Dory/Features/Machines/MachinesView.swift`

### Operations and migration

- [Migration coordinator](https://github.com/augani/dory/blob/main/Dory/Runtime/MigrationImportCoordinator.swift): `Dory/Runtime/MigrationImportCoordinator.swift`
- [Health diagnostics](https://github.com/augani/dory/blob/main/Dory/Features/Health/HealthDiagnostics.swift): `Dory/Features/Health/HealthDiagnostics.swift`

### Host services

- [Networking services](https://github.com/augani/dory/blob/main/Dory/Net/DomainRouter.swift): `Dory/Net/DomainRouter.swift`
- [Storage inventory](https://github.com/augani/dory/blob/main/Dory/Runtime/Storage/DockerStorageInventory.swift): `Dory/Runtime/Storage/DockerStorageInventory.swift`
- [Finder storage view](https://github.com/augani/dory/blob/main/Dory/Runtime/Storage/DoryFinderStorageLocation.swift): `Dory/Runtime/Storage/DoryFinderStorageLocation.swift`
- [File Provider](https://github.com/augani/dory/blob/main/DoryStorageProvider/FileProviderExtension.swift): `DoryStorageProvider/FileProviderExtension.swift`

### Other components

- **Developer**
- **Docker-compatible service**
- **macOS host**

## Connections

- Developer → Native app: uses
- Developer → CLI commands: runs commands
- Native app → Workload views: presents
- Workload views → App state: updates
- CLI commands → App state: commands
- App state → Docker engine client: manages workloads
- Docker engine client → Container runtime: implements
- Container runtime → Docker-compatible service: Docker API
- Compose projects → Compose parsing: loads projects
- Compose parsing → Container runtime: manages services
- App state → Kubernetes: manages cluster
- Cluster browser → App state: browses resources
- App state → Machine lifecycle: manages machines
- Machine workspace → App state: configures machines
- Machine lifecycle → VM engine: provisions VMs
- App state → Migration coordinator: coordinates import
- Migration coordinator → Container runtime: reads and stages
- Health diagnostics → App state: diagnoses runtime
- Docker engine client → Storage inventory: reads usage
- Storage inventory → Finder storage view: publishes snapshot
- Finder storage view → File Provider: exposes items
- VM engine → macOS host: runs on
- App state → Networking services: configures routes
- Networking services → macOS host: bridges traffic
