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 Bfediversity setup Aruntime environmentruntime environmentconfigurationsusedeployupdatedescribestorechangetriggermaintainupdatedescribeimplement runtime interfacesmaintainfediversity source codeapplication modulesruntime backendsruntime optionsconfigurationsstaged configurationdeployed configurationuserapplicationsstaged configurationdeployed configurationdevelopersruntime configstateoperatorapplicationsstatemigrationhosting provider \ No newline at end of file
fediversity setup B
fediversity setup A
runtime environment
configurations
use
deploy
update
describe
store
change
trigger
maintain
implement runtime interfaces
fediversity source code
application modules
runtime backends
runtime options
staged configuration
deployed configuration
user
applications
developers
runtime config
state
operator
migration
hosting provider