<!-- Note: we're "abusing" the classDiagram for the moment as we sketch this out -->

``` mermaid
classDiagram

%% TODO: replace classDiagram

Hardware --|> Storage
Hardware --|> Virtualization
Virtualization --|> Nixos
Virtualization --|> LinuxOS
Core_Services <|-- Services
Core_Services <|-- FediServices
Storage <|-- Services
Storage <|-- FediServices
Nixos --|> Services
Nixos --|> FediServices
Management_UI --|> NixOps
Management_UI --|> Administration

class Core_Services{
  DNS
  EMail
  identity_management
  secret_management
  authentication()
  SASL()
}

class Services {
  NextCloud
  secure_document_collaboration
  Forgejo
  webmail
  HedgeDoc
  project_planning
}

class FediServices {
  Matrix
  Pixelfed
  Peertube
  Mastadon %%GotoSocial
  activityPub()
}

class Administration {
  monitoring
  alerting
  graphing
  restore_backups
}

class Management_UI {
   human-oriented administration
   replication()
   migration()
}

class Storage {
  exclusive_filesystem
  shared_blob
  zfs()
}

class Hardware {
Storage
Networking
Operating-system
Virtualization
}

class Virtualization {
  Proxmox 
}

class Nixos {
  Application
}

class LinuxOS {
  Application
}

class NixOps {
orchestration
}
```
* human-centric
* easy, automated, replication and migration to different datacenter provider
* blob storage replicated generically
* files on the exclusive filesystems replicated via application-aware process, e.g.:
  * asynchronous, but "live" database replication
  * shutdown app then rsync directories
  * ZFS replication and snapshot-ing
* Strengths, Weaknesses, Opportunities, and Threats awareness for all apps
* Not everything needs to start on Nix, NixOs, or with NixOps
* Do not use "Open Core"
  * GitLab
  * Dovcot
  * Zimbra
* LXC containers (not Docker-style)