diff --git a/architecture-docs/Fediversity-architecture-notes-1.png b/architecture-docs/Fediversity-architecture-notes-1.png new file mode 100644 index 0000000..33a7c47 Binary files /dev/null and b/architecture-docs/Fediversity-architecture-notes-1.png differ diff --git a/architecture-docs/Fediversity-architecture-notes.md b/architecture-docs/Fediversity-architecture-notes.md index 7262d2b..32810af 100644 --- a/architecture-docs/Fediversity-architecture-notes.md +++ b/architecture-docs/Fediversity-architecture-notes.md @@ -1,9 +1,6 @@ ```mermaid graph TB -Core[Core-services
DNS
Email
identity_management
secret_management
authentication
SASL
] - - subgraph Management A[Nix-panel] --> I Z[(central database
Netbox)]--> B[Orchestrator
NixOps] --> D[Proxmox] @@ -11,9 +8,10 @@ subgraph Management B --> G[DNS] B --> F[Email] B --> J[Garage] - B --> H[IdentityManagement] + B --> H[IdentityManagement
Authentication
Authorization
Accounting
] I[Nix-Panel API] --> Z H --> I + Core[Core-services
DNS
Email
identity_management
secret_management
authentication
SASL
] end @@ -86,3 +84,16 @@ Attendees: Robert, Valentin, Koen, Kevin - But for the full integration to work one will have to understand the whole system anyway - At that point one may as well keep maintaining it or rewrite it - Koen: The existing thing needs work regardless, and would like to move away from PHP to Python anyway + +## Architecture meeting +- Identitymanagement == AAA +- Central database is two databases, one accounting and one state +- Datamodel -> dns, aaa, ip, machines, etc. +- Data complete first, model later +- Data flows/processes +- Describe casestories +- Nixos -> VM +- LinuxOS out of scope +- Services and Fediservices one box +- move secretsmanagement +- move core-services to management diff --git a/architecture-docs/architecture.png b/architecture-docs/architecture.png index 40dbd32..fe44ca3 100644 Binary files a/architecture-docs/architecture.png and b/architecture-docs/architecture.png differ diff --git a/architecture-docs/architecture.uml b/architecture-docs/architecture.uml new file mode 100644 index 0000000..1a119f0 --- /dev/null +++ b/architecture-docs/architecture.uml @@ -0,0 +1,80 @@ +@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 diff --git a/planning/gantt.png b/planning/gantt.png new file mode 100644 index 0000000..0ffed89 Binary files /dev/null and b/planning/gantt.png differ diff --git a/planning/gantt.uml b/planning/gantt.uml new file mode 100644 index 0000000..7070735 --- /dev/null +++ b/planning/gantt.uml @@ -0,0 +1,59 @@ +@startgantt + + + +Project starts 2023-12-01 +projectscale monthly +-- WP1 Project Management -- +[M1 First ActivityPub presence] starts 2023-12-29 and requires 7 days and is 100% completed +[D1.1 Data Management Plan] starts 2023-12-01 and ends 2024-02-29 and is 80% completed +[M6 First Tech talk] starts 2024-05-31 and requires 7 days and is 100% completed +[M7 First Workshop] starts 2024-07-31 and requires 7 days and is 100% completed + +-- WP2 Vertical Hosting -- +[D2.5 Technical architecture document] starts 2024-01-01 and ends 2024-03-29 and is 60% completed +[D2.7 Analyze investment on fediverse] starts 2023-12-01 and ends 2024-04-30 and is colored in Red +[D2.6 CI/CD setup] starts 2024-03-01 and ends 2024-10-31 and is colored in Red +[D2.4 Nix Packages and NixOS Services] starts 2024-05-01 and ends 2024-11-29 and is colored in Red +[D2.1 Software Release test environment] starts 2024-06-28 and ends 2024-11-29 and is colored in Red +[D2.2 Software Release beta environment] starts 2025-01-01 and ends 2025-12-31 and is 0% completed +[D2.3 Software release 1.0] starts 2025-12-01 and ends 2026-11-30 and is 0% completed + +-- WP3 Vertical Public organizations -- +[D3.1 Requirements document] as [c1] starts 2023-12-01 and ends 2024-07-31 and is colored in Red +[D3.2 Pilot program proposals] starts at [c1]'s end and ends 2024-11-29 and is colored in Red +[D3.3 Technical architecture document pilot programs] starts 2024-12-02 and ends 2025-05-30 and is 0% completed +[D3.4 Nix service flakes, packages and services for pilot programs] starts 2024-12-02 and ends 2025-05-30 and is 0% completed +[D3.5 CI/CD setup for pilot programs] starts 2024-12-02 and ends 2025-05-30 and is 0% completed +[D3.6 Running Fediverse software for public organisations advisory] starts 2025-05-01 and ends 2026-10-30 and is 0% completed + +-- WP4 Open calls and grant management -- +[M2 Announcement open call] starts 2023-12-29 and requires 7 days and is 100% completed +[M3 First open call opens] starts 2024-02-01 and requires 7 days and is 100% completed +[M4 First batch of grantees selected] starts 2024-03-29 and requires 7 days and is 0% completed +[D4.1 Overview of granted projects] starts 2026-07-01 and ends 2026-11-30 and is 0% completed + +-- WP5 Enhancement and Usability -- +[D5.6 Setup UX design testlab] starts 2023-12-01 and ends 2024-07-31 and is colored in Red +[D5.1 User requirement document] starts 2024-05-01 and ends 2024-08-30 and is colored in Red +[D5.2 UX design] starts 2024-09-02 and ends 2025-11-28 and is 0% completed +[D5.3 UX design implementation] starts 2025-12-01 and ends 2026-05-29 and is 0% completed +[D5.4 UX design user studies] starts 2026-05-01 and ends 2026-09-30 and is 0% completed +[D5.5 Design iteration and final release] starts 2026-10-01 and ends 2026-11-30 and is 0% completed + +-- WP6 Outreach and Dissemination -- +[D6.1 Communication strategy] starts 2023-12-01 and ends 2024-01-31 and is colored in Red +[D6.2 Media package] starts 2024-05-01 and ends 2024-07-31 and is colored in Red +[D6.3 Communication report first period] starts 2025-03-03 and ends 2025-04-30 and is 0% completed +[D6.4 Communication report second period] starts 2026-09-01 and ends 2026-10-30 and is 0% completed +@endgantt