diff --git a/architecture-docs/.gitignore b/architecture-docs/.gitignore new file mode 100644 index 0000000..7f123b4 --- /dev/null +++ b/architecture-docs/.gitignore @@ -0,0 +1,3 @@ +*.err +*.odt +.~lock* diff --git a/architecture-docs/2024-architecture.png b/architecture-docs/2024-architecture.png deleted file mode 100644 index 5aed04b..0000000 Binary files a/architecture-docs/2024-architecture.png and /dev/null differ diff --git a/architecture-docs/entity-relations.mmd b/architecture-docs/entity-relations.mmd new file mode 100644 index 0000000..5d07491 --- /dev/null +++ b/architecture-docs/entity-relations.mmd @@ -0,0 +1,25 @@ +--- +title: Fediversity migration entity relations +--- +erDiagram + setup["Fediversity setup"] + env["run-time environment"] + deployed["deployed configuration"] + staged["staged configuration"] + token["deployment token"] + script["migration script"] + + setup }o--o{ env : offers + setup ||--o{ operator : serves + operator ||--o{ domain : owns + deployment }|--|| domain : uses + operator ||--o{ deployment : has + deployment ||--|{ token : generates + deployment ||--o| deployed : has + deployment ||--|| staged : has + deployed |o--|| staged : compares + deployed ||--|{ application : describes + application ||--o{ version : follows + application ||--o{ script : runs + deployed }|--o{ version : follows + script }o--|| token : uses diff --git a/architecture-docs/entity-relations.svg b/architecture-docs/entity-relations.svg new file mode 100644 index 0000000..f337017 --- /dev/null +++ b/architecture-docs/entity-relations.svg @@ -0,0 +1 @@ +Fediversity setuprun-time environmentdeployed configurationstaged configurationdeployment tokenmigration scriptoperatordomaindeploymentapplicationversionoffersservesownsuseshasgenerateshashascomparesdescribesfollowsrunsfollowsusesFediversity migration data model \ No newline at end of file diff --git a/architecture-docs/host-architecture.png b/architecture-docs/host-architecture.png new file mode 100644 index 0000000..7dfb6d4 Binary files /dev/null and b/architecture-docs/host-architecture.png differ diff --git a/architecture-docs/2024-architecture.puml b/architecture-docs/host-architecture.puml similarity index 90% rename from architecture-docs/2024-architecture.puml rename to architecture-docs/host-architecture.puml index 1a119f0..fcc7925 100644 --- a/architecture-docs/2024-architecture.puml +++ b/architecture-docs/host-architecture.puml @@ -1,4 +1,5 @@ @startuml +skinparam backgroundcolor transparent package Management { object "Nix-Panel" as A { @@ -12,7 +13,7 @@ package Management { Secrets } object "**Orchestrator**" as Orch { - NixOps + Terraform } object "**Identity Management**" as AAA { Authentication @@ -49,12 +50,10 @@ package Virtualization { Application C } map "**Application options**" as App { - Edumeet => Matrix + Vaultwarden => Matrix NextCloud => Pixelfed Webmail => Peertube - Hedgehoc => Mastodon - Project planning => Owncast - Office => Castopod + Forgejo => Mastodon } } diff --git a/architecture-docs/interactions.mmd b/architecture-docs/interactions.mmd new file mode 100644 index 0000000..f1e7466 --- /dev/null +++ b/architecture-docs/interactions.mmd @@ -0,0 +1,47 @@ +flowchart + + user(user) --> |use| deployment + + configuration1 -->|deploy| deployed1 + devs(developers) --> |maintain| fediversity + + fediversity --> |update| provider1 + subgraph provider1["fediversity setup A"] + subgraph configurations1[configurations] + configuration1[staged configuration] + configuration1 --> |update| configuration1 + deployed1[deployed configuration] + end + deployed1 --> |describe| deployment + provider-config[runtime config] --> |describe| host + provider-config --> |implement runtime interfaces| configurations1 + subgraph host[runtime environment] + deployment[applications] + state + end + end + + deployment --> |store| state + + operator(operator) --> |change| configuration1 + + subgraph provider2["fediversity setup B"] + subgraph configurations2[configurations] + configuration2[staged configuration] + deployed2[deployed configuration] + end + subgraph host2[runtime environment] + deployment2[applications] + state2[state] + end + end + + operator --> |trigger| migration + configurations1 & state --> migration + migration --> configurations2 & state2 + provider(hosting provider) --> |maintain| provider1 + subgraph fediversity[fediversity source code] + applications[application modules] + backends[runtime backends] + config[runtime options] + end diff --git a/architecture-docs/interactions.svg b/architecture-docs/interactions.svg new file mode 100644 index 0000000..b605d61 --- /dev/null +++ b/architecture-docs/interactions.svg @@ -0,0 +1 @@ +

fediversity setup B

fediversity setup A

runtime environment

runtime environment

configurations

use

deploy

update

describe

store

change

trigger

maintain

update

describe

implement runtime interfaces

maintain

fediversity source code

application modules

runtime backends

runtime options

configurations

staged configuration

deployed configuration

user

applications

staged configuration

deployed configuration

developers

runtime config

state

operator

applications

state

migration

hosting provider

\ No newline at end of file