forked from fediversity/fediversity
		
	list goals, actors; add glossary (#132)
Reviewed-on: Fediversity/Fediversity#132
This commit is contained in:
		
							parent
							
								
									a3365eb508
								
							
						
					
					
						commit
						6513150abd
					
				
					 1 changed files with 110 additions and 1 deletions
				
			
		
							
								
								
									
										111
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										111
									
								
								README.md
									
										
									
									
									
								
							|  | @ -4,7 +4,116 @@ This repository contains all the code and code-related files having to do with | |||
| [the Fediversity project](https://fediversity.eu/), with the notable exception | ||||
| of [NixOps4 that is hosted on GitHub](https://github.com/nixops4/nixops4). | ||||
| 
 | ||||
| ## Content of this repository | ||||
| ## Goals | ||||
| 
 | ||||
| Decentralise the operational responsibility for social media. | ||||
| Enable a more robust market of hosting providers, by making it easy to migrate operations and data to different providers. | ||||
| 
 | ||||
| Note that Fediversity is not about self-hosting. | ||||
| There already exist solutions for self-hosting, but they're not suitable for what we're trying to do. | ||||
| The ones we're aware of require substantial technical knowledge and time commitment by operators, especially for scaling to thousands of users. | ||||
| Not everyone has the expertise and time to run their own server. | ||||
| 
 | ||||
| ## Actors | ||||
| 
 | ||||
| - Fediversity project team | ||||
| 
 | ||||
|   The group working on this repository. | ||||
|   We are creating the deployment workflows and service configurations. | ||||
| 
 | ||||
|   The project partners for Fediversity are: | ||||
|   - [NLnet Foundation](https://nlnet.nl/) | ||||
|   - Open Internet Discourse Foundation | ||||
|   - [NORDUnet](https://nordu.net/) | ||||
|   - [Tweag](https://www.tweag.io/) | ||||
| 
 | ||||
|   Refer to [fediversity.eu](https://fediversity.eu) for more details about the project. | ||||
| 
 | ||||
| - Hosting provider | ||||
| 
 | ||||
|   They provide and maintain the physical infrastructure, and run the software in this repository, through which operators interact with their deployments. | ||||
|   Hosting providers are technical administrators for these deployments, ensuring availability and appropriate performance. | ||||
| 
 | ||||
|   We target small- to medium-scale hosting providers with 20+ physical machines. | ||||
| 
 | ||||
| - Operator | ||||
| 
 | ||||
|   They select the applications they want to run (Mastodon, Pixelfed, Matrix, etc.). | ||||
|   They don't need to own hardware or deal with operations. | ||||
|   Operators administer their services in a non-technical fashion, e.g. as moderators. | ||||
|   They pay the hosting provider for registering a domain name, maintaining physical resources, and monitoring deployments. | ||||
| 
 | ||||
|   Initially, Fediversity is targeted at organisations, such as universities. | ||||
| 
 | ||||
| - User | ||||
| 
 | ||||
|   They are individuals that are not necessarily affiliated with any organisation. | ||||
|   They register an account on services (e.g. Mastodon) run by the operators, and e.g. post content. | ||||
|   Users don’t need to administrate anything. | ||||
| 
 | ||||
|   Given initial operators will be universities, users would be staff or students. | ||||
| 
 | ||||
| ## Glossary | ||||
| 
 | ||||
| - [Fediverse](https://en.wikipedia.org/wiki/Fediverse) | ||||
| 
 | ||||
|   A collection of social networking services that can communicate with each other using a common protocol. | ||||
| 
 | ||||
| - Service | ||||
| 
 | ||||
|   A Fediverse application run by the hosting provider for an operator. | ||||
| 
 | ||||
| - Configuration | ||||
| 
 | ||||
|   A collection of settings for a machine running NixOS. | ||||
| 
 | ||||
|   > Example: Configurations are deployed to VMs. | ||||
| 
 | ||||
| - Provision | ||||
| 
 | ||||
|   Make a resource, such as a virtual machine, available for use. | ||||
| 
 | ||||
|   > Example: We use [Proxmox](https://www.proxmox.com) to provision VMs for services run by operators. | ||||
| 
 | ||||
| - Deploy | ||||
| 
 | ||||
|   Put software, such as services, onto computers. | ||||
|   The software includes technical configuration that links software components. | ||||
|   Most user-facing configuration remains untouched by the deployment process. | ||||
| 
 | ||||
|   > Example: NixOps4 is used to deploy [Pixelfed](https://pixelfed.org). | ||||
| 
 | ||||
| - Migrate | ||||
| 
 | ||||
|   Move service configurations and user data to a different hosting provider. | ||||
| 
 | ||||
| - [NixOps4](https://github.com/nixops4/nixops4) | ||||
| 
 | ||||
|   A tool for deploying and managing resources through the Nix language. | ||||
|   NixOps4 development is supported by the Fediversity project | ||||
| 
 | ||||
| - Resource | ||||
| 
 | ||||
|   A [resource for NixOps4](https://nixops.dev/manual/development/concept/resource.html) is any external entity that can be declared with NixOps4 expressions and manipulated with NixOps4, such as a virtual machine, an active NixOS configuration, a DNS entry, or customer database.  | ||||
| 
 | ||||
| - Resource provider | ||||
| 
 | ||||
|   A resource provider for NixOps4 is an executable that communicates between a resource and NixOps4 using a standardised protocol, allowing [CRUD operations](https://en.wikipedia.org/wiki/Create,_read,_update_and_delete) on the resources to be performed by NixOps4.  | ||||
|   Refer to the [NixOps4 manual](https://nixops.dev/manual/development/resource-provider/index.html) for details. | ||||
| 
 | ||||
|   > Example: We need a resource provider for obtaining deployment secrets from a database. | ||||
| 
 | ||||
| ## Development | ||||
| 
 | ||||
| All the code made for this project is freely licenced under [EUPL](https://en.m.wikipedia.org/wiki/European_Union_Public_Licence). | ||||
| This means, anyone can use the work here to learn from it or change it according to their needs. | ||||
| You can even read up on [development proceedings](https://git.fediversity.eu/Fediversity/meta). | ||||
| 
 | ||||
| Contact the project team if you have questions or suggestions, or if you're interested in using Fediversity software for your operations: | ||||
| - E-mail: <mailto:contact@fediversity.eu> | ||||
| - Mastodon: <https://mastodon.fediversity.eu/@fediversity> | ||||
| 
 | ||||
| ### Content of this repository | ||||
| 
 | ||||
| Most of the directories in this repository have their own README going into more | ||||
| details as to what they are for. As an overview: | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue