tweak project proposal #1
					 1 changed files with 88 additions and 53 deletions
				
			
		
							
								
								
									
										141
									
								
								architecture.md
									
										
									
									
									
								
							
							
						
						
									
										141
									
								
								architecture.md
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -240,56 +240,91 @@ Whereas the core abstraction in Fediversity is a NixOS configuration module, a m
 | 
			
		|||
 | 
			
		||||
Whereas details of the implementation may need to be decided as the technical challenges involved become clear, we can already give a higher-level planning of relevant milestones and some of their salient features:
 | 
			
		||||
 | 
			
		||||
1.  [Implement a way to run online services emphasising user autonomy and portability](https://git.fediversity.eu/Fediversity/Fediversity/issues/347)
 | 
			
		||||
    - [deploying Fediversity applications](https://git.fediversity.eu/Fediversity/Fediversity/issues/99)
 | 
			
		||||
    - [Initial internal user to kick-start feedback process](https://git.fediversity.eu/Fediversity/Fediversity/issues/225):
 | 
			
		||||
        - automated provisioning of:
 | 
			
		||||
            - [databases](https://git.fediversity.eu/Fediversity/Fediversity/issues/115)
 | 
			
		||||
            - [object storage](https://git.fediversity.eu/Fediversity/Fediversity/issues/185)
 | 
			
		||||
            - [virtual machines](https://git.fediversity.eu/Fediversity/Fediversity/issues/116)
 | 
			
		||||
            - [DNS](https://git.fediversity.eu/Fediversity/Fediversity/issues/110)
 | 
			
		||||
            - [admin accounts](https://git.fediversity.eu/Fediversity/Fediversity/issues/178)
 | 
			
		||||
            - [SMTP service](https://git.fediversity.eu/Fediversity/Fediversity/issues/117)
 | 
			
		||||
            - [email accounts](https://git.fediversity.eu/Fediversity/Fediversity/issues/118)
 | 
			
		||||
            - [ephemeral state](https://git.fediversity.eu/Fediversity/Fediversity/issues/314)
 | 
			
		||||
        - [specification published](https://git.fediversity.eu/Fediversity/Fediversity/issues/334)
 | 
			
		||||
        - [ProxmoX back-end supports multiple users](https://git.fediversity.eu/Fediversity/Fediversity/issues/313)
 | 
			
		||||
        - [user can have multiple deployments](https://git.fediversity.eu/Fediversity/Fediversity/issues/241)
 | 
			
		||||
        - [users can update their deployment configurations](https://git.fediversity.eu/Fediversity/Fediversity/issues/158)
 | 
			
		||||
    - [application data back-ups](https://git.fediversity.eu/Fediversity/Fediversity/issues/123)
 | 
			
		||||
    - [migrating application data between hosting providers](https://git.fediversity.eu/Fediversity/Fediversity/issues/100)
 | 
			
		||||
1.  [Disseminate our results by engaging the open-source community to further expand on work in this direction](https://git.fediversity.eu/Fediversity/Fediversity/issues/348)
 | 
			
		||||
    - [automated dev-ops workflows](https://git.fediversity.eu/Fediversity/Fediversity/issues/224):
 | 
			
		||||
        - [separate test environments for staging vs. production](https://git.fediversity.eu/Fediversity/Fediversity/issues/69)
 | 
			
		||||
        - [continuous deployment](https://git.fediversity.eu/Fediversity/Fediversity/issues/177)
 | 
			
		||||
        - [CI rejects failing deployments](https://git.fediversity.eu/Fediversity/Fediversity/issues/102)
 | 
			
		||||
        - [Nix package overlays upstreamed](https://git.fediversity.eu/Fediversity/Fediversity/issues/248)
 | 
			
		||||
        - [facilitate suggestions in PR reviews](https://git.fediversity.eu/Fediversity/Fediversity/issues/302)
 | 
			
		||||
        - [integration test](https://git.fediversity.eu/Fediversity/Fediversity/issues/277)
 | 
			
		||||
    - [external developers empowered to contribute](https://git.fediversity.eu/Fediversity/Fediversity/issues/288):
 | 
			
		||||
        - [NixOS configuration as the core abstraction](https://git.fediversity.eu/Fediversity/Fediversity/issues/339)
 | 
			
		||||
        - [integration tests](https://git.fediversity.eu/Fediversity/Fediversity/issues/277)
 | 
			
		||||
        - [Continuous Integration builds available in a public cache](https://git.fediversity.eu/Fediversity/Fediversity/issues/92)
 | 
			
		||||
        - [reproducible project infrastructure](https://git.fediversity.eu/Fediversity/Fediversity/issues/336)
 | 
			
		||||
        - [continuous deployment](https://git.fediversity.eu/Fediversity/Fediversity/issues/177)
 | 
			
		||||
        - [separate staging/testing environments](https://git.fediversity.eu/Fediversity/Fediversity/issues/69)
 | 
			
		||||
        - [code reviewers can suggest changes](https://git.fediversity.eu/Fediversity/Fediversity/issues/302)
 | 
			
		||||
        - [knowledge base](https://git.fediversity.eu/Fediversity/Fediversity/issues/288)
 | 
			
		||||
        - [module upstreamed to nixpkgs](https://git.fediversity.eu/Fediversity/Fediversity/issues/333)
 | 
			
		||||
1.  [Exploit our work by facilitating the sample use-case of web hosting organisations using an initial set of services](https://git.fediversity.eu/Fediversity/Fediversity/issues/349)
 | 
			
		||||
    - [Software ready for web hosts to take into production](https://git.fediversity.eu/Fediversity/Fediversity/issues/228):
 | 
			
		||||
        - [garbage collection of unallocated resources](https://git.fediversity.eu/Fediversity/Fediversity/issues/188)
 | 
			
		||||
        - [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)
 | 
			
		||||
        - [reference front-end decoupled from version of configuration module](https://git.fediversity.eu/Fediversity/Fediversity/issues/304)
 | 
			
		||||
        - [security check](https://git.fediversity.eu/Fediversity/Fediversity/issues/291)
 | 
			
		||||
    - [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)
 | 
			
		||||
        - [provide single sign-on](https://git.fediversity.eu/Fediversity/Fediversity/issues/212)
 | 
			
		||||
        - [upstream configuration options exposed](https://git.fediversity.eu/Fediversity/Fediversity/issues/195)
 | 
			
		||||
        - [allow disabling application while retaining data](https://git.fediversity.eu/Fediversity/Fediversity/issues/186)
 | 
			
		||||
        - [ProxmoX deployment allows scaling resources assigned to a VM](https://git.fediversity.eu/Fediversity/Fediversity/issues/119)
 | 
			
		||||
        - [aid needed user actions on schema update](https://git.fediversity.eu/Fediversity/Fediversity/issues/214)
 | 
			
		||||
        - [pooling application instances to shared VMs](https://git.fediversity.eu/Fediversity/Fediversity/issues/322)
 | 
			
		||||
        - [allow use of external single sign-on](https://git.fediversity.eu/Fediversity/Fediversity/issues/161)
 | 
			
		||||
        - [on migration, allow reconfiguring monolithic vs distributed](https://git.fediversity.eu/Fediversity/Fediversity/issues/341)
 | 
			
		||||
1. [implement a way to run online services emphasising user autonomy and data portability](https://git.fediversity.eu/Fediversity/Fediversity/issues/347)
 | 
			
		||||
    1. [Finalize architecture doc](https://git.fediversity.eu/Fediversity/Fediversity/issues/39)
 | 
			
		||||
    1. [code-based migration data model](https://git.fediversity.eu/Fediversity/Fediversity/issues/103)
 | 
			
		||||
    1. [migrating application data between hosting providers](https://git.fediversity.eu/Fediversity/Fediversity/issues/100)
 | 
			
		||||
        1. [code-based migration data model](https://git.fediversity.eu/Fediversity/Fediversity/issues/103)
 | 
			
		||||
        1. [enable back-ups of application](https://git.fediversity.eu/Fediversity/Fediversity/issues/123)
 | 
			
		||||
        1. [Create a deployment migration string](https://git.fediversity.eu/Fediversity/Fediversity/issues/77)
 | 
			
		||||
        1. [Start deployment migration](https://git.fediversity.eu/Fediversity/Fediversity/issues/78)
 | 
			
		||||
    1. [application offering generalised](https://git.fediversity.eu/Fediversity/Fediversity/issues/369)
 | 
			
		||||
    1. [NixOS configuration as the core abstraction](https://git.fediversity.eu/Fediversity/Fediversity/issues/339)
 | 
			
		||||
1. [disseminate our results by engaging the open-source community to further expand on work in this direction](https://git.fediversity.eu/Fediversity/Fediversity/issues/348)
 | 
			
		||||
    1. [automated dev-ops workflows](https://git.fediversity.eu/Fediversity/Fediversity/issues/224)
 | 
			
		||||
        1. [Backups for Forgejo](https://git.fediversity.eu/Fediversity/Fediversity/issues/29)
 | 
			
		||||
        1. [use dedicated Nix builder](https://git.fediversity.eu/Fediversity/Fediversity/issues/366)
 | 
			
		||||
        1. [initial focus on single application for development](https://git.fediversity.eu/Fediversity/Fediversity/issues/327)
 | 
			
		||||
        1. [unify versioning](https://git.fediversity.eu/Fediversity/Fediversity/issues/279)
 | 
			
		||||
        1. [Automated dependency updates](https://git.fediversity.eu/Fediversity/Fediversity/issues/65)
 | 
			
		||||
        1. [infrastructure automatically deployed using continuous deployment](https://git.fediversity.eu/Fediversity/Fediversity/issues/177)
 | 
			
		||||
        1. [Full integration test](https://git.fediversity.eu/Fediversity/Fediversity/issues/277)
 | 
			
		||||
        1. [CI rejects failing deployments](https://git.fediversity.eu/Fediversity/Fediversity/issues/102)
 | 
			
		||||
        1. [code reviewers can suggest changes](https://git.fediversity.eu/Fediversity/Fediversity/issues/302)
 | 
			
		||||
        1. [fediversity apps reused in infra](https://git.fediversity.eu/Fediversity/Fediversity/issues/370)
 | 
			
		||||
        1. [derive users and their keys from the keys directory](https://git.fediversity.eu/Fediversity/Fediversity/issues/199)
 | 
			
		||||
        1. [Nix package overlays upstreamed](https://git.fediversity.eu/Fediversity/Fediversity/issues/248)
 | 
			
		||||
        1. [Separate test environments for staging vs. production](https://git.fediversity.eu/Fediversity/Fediversity/issues/69)
 | 
			
		||||
        1. [support password-protected personal SSH keys for deploying services in development](https://git.fediversity.eu/Fediversity/Fediversity/issues/272)
 | 
			
		||||
        1. [Write all modules with destructured arguments](https://git.fediversity.eu/Fediversity/Fediversity/issues/93)
 | 
			
		||||
        1. [ephemeral state is automatically provisioned](https://git.fediversity.eu/Fediversity/Fediversity/issues/314)
 | 
			
		||||
    1. [external developers empowered to contribute](https://git.fediversity.eu/Fediversity/Fediversity/issues/288)
 | 
			
		||||
        1. [code reviewers can suggest changes](https://git.fediversity.eu/Fediversity/Fediversity/issues/302)
 | 
			
		||||
        1. [Reproducible proxmox installation](https://git.fediversity.eu/Fediversity/Fediversity/issues/325)
 | 
			
		||||
        1. [Continuous Integration builds available in a public cache](https://git.fediversity.eu/Fediversity/Fediversity/issues/92)
 | 
			
		||||
        1. [docs: document having to load nix dev shell for pre-commit hook](https://git.fediversity.eu/Fediversity/Fediversity/issues/98)
 | 
			
		||||
        1. [Update documentation on services](https://git.fediversity.eu/Fediversity/Fediversity/issues/86)
 | 
			
		||||
        1. [knowledge base](https://git.fediversity.eu/Fediversity/Fediversity/issues/243)
 | 
			
		||||
        1. [Document the semantics of our various domains](https://git.fediversity.eu/Fediversity/Fediversity/issues/210)
 | 
			
		||||
        1. [Describe the hardware infrastructure needed to run Fediversity yourself](https://git.fediversity.eu/Fediversity/Fediversity/issues/68)
 | 
			
		||||
        1. [reproducible project infrastructure](https://git.fediversity.eu/Fediversity/Fediversity/issues/336)
 | 
			
		||||
        1. [NixOS configuration as the core abstraction](https://git.fediversity.eu/Fediversity/Fediversity/issues/339)
 | 
			
		||||
        1. [fediversity apps reused in infra](https://git.fediversity.eu/Fediversity/Fediversity/issues/370)
 | 
			
		||||
        1. [Generate documentation on the deployments from the code](https://git.fediversity.eu/Fediversity/Fediversity/issues/89)
 | 
			
		||||
        1. [Write all modules with destructured arguments](https://git.fediversity.eu/Fediversity/Fediversity/issues/93)
 | 
			
		||||
        1. [module upstreamed to nixpkgs](https://git.fediversity.eu/Fediversity/Fediversity/issues/333)
 | 
			
		||||
        1. [panel bundled into Fediversity configuration](https://git.fediversity.eu/Fediversity/Fediversity/issues/342)
 | 
			
		||||
1. [exploit our work by enabling reproducible deployments of an initial set of portable applications](https://git.fediversity.eu/Fediversity/Fediversity/issues/349)
 | 
			
		||||
    1. [applications deployed on command](https://git.fediversity.eu/Fediversity/Fediversity/issues/99)
 | 
			
		||||
        1. [ProxmoX back-end supports multiple users](https://git.fediversity.eu/Fediversity/Fediversity/issues/313)
 | 
			
		||||
        1. [Proxmox resources are provisioned to deploy services to](https://git.fediversity.eu/Fediversity/Fediversity/issues/116)
 | 
			
		||||
        1. [Deployed services are accessible under the configured domain](https://git.fediversity.eu/Fediversity/Fediversity/issues/76)
 | 
			
		||||
    1. [kick-started initial feedback cycle](https://git.fediversity.eu/Fediversity/Fediversity/issues/225)
 | 
			
		||||
        1. [ProxmoX back-end supports multiple users](https://git.fediversity.eu/Fediversity/Fediversity/issues/313)
 | 
			
		||||
        1. [Proxmox resources are provisioned to deploy services to](https://git.fediversity.eu/Fediversity/Fediversity/issues/116)
 | 
			
		||||
        1. [Users can configure their desired sub-domains in the online panel, so that the deployed services are assigned the desired sub-domains](https://git.fediversity.eu/Fediversity/Fediversity/issues/142)
 | 
			
		||||
        1. [provision admin accounts for deployed services](https://git.fediversity.eu/Fediversity/Fediversity/issues/178)
 | 
			
		||||
        1. [users can update their deployment configurations](https://git.fediversity.eu/Fediversity/Fediversity/issues/158)
 | 
			
		||||
        1. [use immutable buckets from VMs](https://git.fediversity.eu/Fediversity/Fediversity/issues/185)
 | 
			
		||||
        1. [Databases are provisioned so that services can use a central storage](https://git.fediversity.eu/Fediversity/Fediversity/issues/115)
 | 
			
		||||
        1. [VMs use central file storage](https://git.fediversity.eu/Fediversity/Fediversity/issues/138)
 | 
			
		||||
        1. [reproduce DNS VM](https://git.fediversity.eu/Fediversity/Fediversity/issues/200)
 | 
			
		||||
        1. [SMTP service is provisioned so that applications can send emails](https://git.fediversity.eu/Fediversity/Fediversity/issues/117)
 | 
			
		||||
        1. [fediversity apps reused in infra](https://git.fediversity.eu/Fediversity/Fediversity/issues/370)
 | 
			
		||||
        1. [ephemeral state is automatically provisioned](https://git.fediversity.eu/Fediversity/Fediversity/issues/314)
 | 
			
		||||
        1. [panel staging/production configuration](https://git.fediversity.eu/Fediversity/Fediversity/issues/136)
 | 
			
		||||
        1. [code passes security check](https://git.fediversity.eu/Fediversity/Fediversity/issues/291)
 | 
			
		||||
    1. [brought into production](https://git.fediversity.eu/Fediversity/Fediversity/issues/228)
 | 
			
		||||
        1. [Have a DNS service running to allow users to tie services to their own domain](https://git.fediversity.eu/Fediversity/Fediversity/issues/104)
 | 
			
		||||
        1. [garbage collection of unallocated resources](https://git.fediversity.eu/Fediversity/Fediversity/issues/188)
 | 
			
		||||
        1. [Relevant email accounts are provisioned such that the operator may be contacted](https://git.fediversity.eu/Fediversity/Fediversity/issues/118)
 | 
			
		||||
        1. [reference front-end is decoupled from version of configuration module](https://git.fediversity.eu/Fediversity/Fediversity/issues/304)
 | 
			
		||||
        1. [specification published](https://git.fediversity.eu/Fediversity/Fediversity/issues/334)
 | 
			
		||||
        1. [REST API available](https://git.fediversity.eu/Fediversity/Fediversity/issues/368)
 | 
			
		||||
        1. [Hosting providers can update their operators' deployments](https://git.fediversity.eu/Fediversity/Fediversity/issues/159)
 | 
			
		||||
        1. [code passes security check](https://git.fediversity.eu/Fediversity/Fediversity/issues/291)
 | 
			
		||||
    1. [nix-less bootstrap](https://git.fediversity.eu/Fediversity/Fediversity/issues/332)
 | 
			
		||||
    1. [key features improving user experience supported](https://git.fediversity.eu/Fediversity/Fediversity/issues/289)
 | 
			
		||||
        1. [upstream configuration options exposed](https://git.fediversity.eu/Fediversity/Fediversity/issues/195)
 | 
			
		||||
        1. [allow disabling service while retaining data](https://git.fediversity.eu/Fediversity/Fediversity/issues/186)
 | 
			
		||||
        1. [enqueuing deployment syncs](https://git.fediversity.eu/Fediversity/Fediversity/issues/242)
 | 
			
		||||
        1. [user can have multiple deployments](https://git.fediversity.eu/Fediversity/Fediversity/issues/241)
 | 
			
		||||
        1. [ProxmoX deployment allows scaling resources assigned to a VM](https://git.fediversity.eu/Fediversity/Fediversity/issues/119)
 | 
			
		||||
        1. [View difference between configured and deployed state](https://git.fediversity.eu/Fediversity/Fediversity/issues/143)
 | 
			
		||||
        1. [visualise schema changes](https://git.fediversity.eu/Fediversity/Fediversity/issues/213)
 | 
			
		||||
        1. [aid needed actions on schema update](https://git.fediversity.eu/Fediversity/Fediversity/issues/214)
 | 
			
		||||
        1. [single sign-on (SSO) for services](https://git.fediversity.eu/Fediversity/Fediversity/issues/212)
 | 
			
		||||
        1. [delegating user management](https://git.fediversity.eu/Fediversity/Fediversity/issues/337)
 | 
			
		||||
        1. [pooling instances to shared VMs](https://git.fediversity.eu/Fediversity/Fediversity/issues/322)
 | 
			
		||||
        1. [on migration, allow reconfiguring monolithic vs distributed](https://git.fediversity.eu/Fediversity/Fediversity/issues/341)
 | 
			
		||||
        1. [connecting an existing identity management service](https://git.fediversity.eu/Fediversity/Fediversity/issues/161)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue