diff --git a/architecture-docs/Fediversity-architecture-notes.md b/architecture-docs/Fediversity-architecture-notes.md new file mode 100644 index 0000000..3272b95 --- /dev/null +++ b/architecture-docs/Fediversity-architecture-notes.md @@ -0,0 +1,102 @@ + + +``` 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)