tweak project proposal #1
					 1 changed files with 16 additions and 14 deletions
				
			
		| 
						 | 
					@ -4,8 +4,12 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Developers
 | 
					- Developers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  The group working on this repository.
 | 
					  The group maintaining this repository.
 | 
				
			||||||
  We are creating the deployment workflows and service configurations.
 | 
					  We are creating the deployment workflows and service configurations, and curate changes proposed by contributors.
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					- Contributors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  People proposing changes to this repository.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Hosting provider
 | 
					- Hosting provider
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33,11 +37,11 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Application
 | 
					- Application
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  User-facing software (e.g. from Fediverse) run by the hosting provider for an operator.
 | 
					  User-facing software (e.g. from Fediverse) configured by operators and used by users.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Configuration
 | 
					- Configuration
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  A collection of settings for a machine running NixOS.
 | 
					  A collection of settings for a piece of software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  > Example: Configurations are deployed to VMs.
 | 
					  > Example: Configurations are deployed to VMs.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -47,10 +51,8 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Deploy
 | 
					- Deploy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Put software, such as applications, onto computers.
 | 
					  Put software onto computers.
 | 
				
			||||||
  The software includes technical configuration that links software components.
 | 
					  The software includes technical configuration that links software components.
 | 
				
			||||||
  In our context, this a Configuration deployed to a runtime environment.
 | 
					 | 
				
			||||||
  Most user-facing configuration remains untouched by the deployment process.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Migrate
 | 
					- Migrate
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -100,7 +102,7 @@ Considered alternatives include:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### [SelfHostBlocks](https://nlnet.nl/project/SelfHostBlocks/)
 | 
					### [SelfHostBlocks](https://nlnet.nl/project/SelfHostBlocks/)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SelfHostBlocks offers Nix module contracts to decouple applications from service providers, empowering user choice by providing sane defaults yet a [unified interface](https://nlnet.nl/project/SelfHostBlocks/).
 | 
					SelfHostBlocks offers Nix module contracts to decouple application configuration from implementation details, empowering user choice by providing sane defaults yet a [unified interface](https://nlnet.nl/project/SelfHostBlocks/).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Considered alternatives include:
 | 
					Considered alternatives include:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -192,10 +194,10 @@ Considered alternatives include:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Architecture
 | 
					## Architecture
 | 
				
			||||||
 | 
					
 | 
				
			||||||
At the core of Fediversity lies a NixOS configuration template containing selected applications.
 | 
					At the core of Fediversity lies a NixOS configuration module for a set of selected applications.
 | 
				
			||||||
We support using this with different run-time environments, with targets deemed in scope including NixOS itself and hypervisor ProxmoX.
 | 
					We will support using it with different run-time environments, such as a single NixOS machine or a ProxmoX hypervisor.
 | 
				
			||||||
Depending on the targeted run-time environment, deployment will further involve orchestrator OpenTofu.
 | 
					Depending on the targeted run-time environment, deployment will further involve OpenTofu as an orchestrator.
 | 
				
			||||||
We further provide a [reference front-end](https://git.fediversity.eu/Fediversity/Fediversity/src/branch/main/panel) to configure our template.
 | 
					We further provide a [reference front-end](https://git.fediversity.eu/Fediversity/Fediversity/src/branch/main/panel) to configure applications.
 | 
				
			||||||
To ensure reproducibility, we also offer Nix packaging for our software.
 | 
					To ensure reproducibility, we also offer Nix packaging for our software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
To reach our goals, we aim to implement the following interactions between [actors](#actors) (depicted with rounded corners) and system components (see the [glossary](#glossary), depicted with rectangles).
 | 
					To reach our goals, we aim to implement the following interactions between [actors](#actors) (depicted with rounded corners) and system components (see the [glossary](#glossary), depicted with rectangles).
 | 
				
			||||||
| 
						 | 
					@ -212,7 +214,7 @@ Relationships among the entities used to model migrations are as follows, using
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Host architecture
 | 
					### Host architecture
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Whereas the core abstraction in Fediversity is a NixOS configuration template, a more full-fledged example architecture of the web host use-case we aim to support as part of our exploitation would be as follows, where VMs in question run Fediversity to offer our selected applications:
 | 
					Whereas the core abstraction in Fediversity is a NixOS configuration module, a more full-fledged example architecture of the web host use-case we aim to support as part of our exploitation would be as follows, where VMs in question run Fediversity to offer our selected applications:
 | 
				
			||||||
 | 
					
 | 
				
			||||||

 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -261,7 +263,7 @@ Whereas details of the implementation may need to be decided as the technical ch
 | 
				
			||||||
        - [garbage collection of unallocated resources](https://git.fediversity.eu/Fediversity/Fediversity/issues/188)
 | 
					        - [garbage collection of unallocated resources](https://git.fediversity.eu/Fediversity/Fediversity/issues/188)
 | 
				
			||||||
        - [Nix-less bootstrap](https://git.fediversity.eu/Fediversity/Fediversity/issues/332)
 | 
					        - [Nix-less bootstrap](https://git.fediversity.eu/Fediversity/Fediversity/issues/332)
 | 
				
			||||||
        - [ensure hosts may update users' deployments](https://git.fediversity.eu/Fediversity/Fediversity/issues/159)
 | 
					        - [ensure hosts may update users' deployments](https://git.fediversity.eu/Fediversity/Fediversity/issues/159)
 | 
				
			||||||
        - [reference front-end decoupled from template version](https://git.fediversity.eu/Fediversity/Fediversity/issues/304)
 | 
					        - [reference front-end decoupled from version of configuration module](https://git.fediversity.eu/Fediversity/Fediversity/issues/304)
 | 
				
			||||||
        - [security audit](https://git.fediversity.eu/Fediversity/Fediversity/issues/291)
 | 
					        - [security audit](https://git.fediversity.eu/Fediversity/Fediversity/issues/291)
 | 
				
			||||||
    - [Key features improving user experience supported](https://git.fediversity.eu/Fediversity/Fediversity/issues/289):
 | 
					    - [Key features improving user experience supported](https://git.fediversity.eu/Fediversity/Fediversity/issues/289):
 | 
				
			||||||
        - [enqueuing deployment syncs](https://git.fediversity.eu/Fediversity/Fediversity/issues/242)
 | 
					        - [enqueuing deployment syncs](https://git.fediversity.eu/Fediversity/Fediversity/issues/242)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue