@startuml package Management { object "Nix-Panel" as A { } object "Nix-Panel API" as B { } object "**Central Database**" as CD { Netbox Accounting State Secrets } object "**Orchestrator**" as Orch { NixOps } object "**Identity Management**" as AAA { Authentication Authorization Accounting } object "**Central Services**" as CS { DNS Email } } package Hardware { object "**Systems**" as Sys { Operating System Network Storage Virtualisation } object "**Storage**" as Stor { exclusive_filesystem } object "**S3 storage**" as S3 { Garage } } package Virtualization { object "**Nixos VM A**" as NixA { Application A Application B } object "**Nixos VM B**" as NixB { Application C } map "**Application options**" as App { Edumeet => Matrix NextCloud => Pixelfed Webmail => Peertube Hedgehoc => Mastodon Project planning => Owncast Office => Castopod } } Sys --> Stor Sys::Virtualisation -l-> Virtualization NixA --> Stor NixB --r--> S3 NixA --> App NixB --> App NixA --> AAA NixB --> AAA A -d-> B B -d-> CD CD <-d-> Orch Orch -r-> CS::DNS Orch -r-> CS::Email Orch -d-> Virtualization Orch --> NixA Orch --> NixB Orch --> S3 Orch <-l-> AAA B -d-> AAA @enduml