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
|