81 lines
1.4 KiB
Plaintext
81 lines
1.4 KiB
Plaintext
@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
|