forked from fediversity/meta
		
	add high-level spec
This commit is contained in:
		
							parent
							
								
									0ff5a8affe
								
							
						
					
					
						commit
						a6209f056c
					
				
					 1 changed files with 49 additions and 0 deletions
				
			
		
							
								
								
									
										49
									
								
								architecture-docs/2025-04-08-high-level-spec.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								architecture-docs/2025-04-08-high-level-spec.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,49 @@
 | 
			
		|||
# fediversity product specification
 | 
			
		||||
 | 
			
		||||
## stack
 | 
			
		||||
 | 
			
		||||
### user-facing
 | 
			
		||||
 | 
			
		||||
- fediverse
 | 
			
		||||
- ...
 | 
			
		||||
- prioritize efforts taking in mind
 | 
			
		||||
  - added value to operator autonomy
 | 
			
		||||
  - strategic relevance to counter-balance big tech
 | 
			
		||||
  - demand
 | 
			
		||||
  - nix package/service maturity
 | 
			
		||||
    - may involve relation with application devs to:
 | 
			
		||||
      - [upstream](https://git.fediversity.eu/Fediversity/Fediversity/issues/127#issuecomment-5669) nix package
 | 
			
		||||
      - ensure architecture takes immutable build/storage in mind
 | 
			
		||||
 | 
			
		||||
### under the hood
 | 
			
		||||
 | 
			
		||||
- nixos
 | 
			
		||||
- [opentofu](https://opentofu.org/)
 | 
			
		||||
  - passes relevant info on to nixos config wrapper
 | 
			
		||||
- VM hypervisor: [proxmox](https://proxmox.com/)
 | 
			
		||||
- storage: [garage](https://garagehq.deuxfleurs.fr/)
 | 
			
		||||
- backups / data portability: [borgmatic](https://github.com/borgmatic-collective/borgmatic)?
 | 
			
		||||
- data interoperability: [json-schema](https://json-schema.org/)
 | 
			
		||||
 | 
			
		||||
## component architecture
 | 
			
		||||
 | 
			
		||||
- orchestration module
 | 
			
		||||
  - application service modules (nixos): templates providing sane defaults and [unified interface](https://nlnet.nl/project/SelfHostBlocks/)
 | 
			
		||||
  - deployment module (opentofu)
 | 
			
		||||
- deployment UIs
 | 
			
		||||
  - [reference imlementation](https://git.fediversity.eu/Fediversity/Fediversity)
 | 
			
		||||
  - hosting panel: [fediversity integration](https://www.figma.com/proto/AZbFAac2Xjxs3q1H3orXzO/Fedi-Design-system?page-id=97%3A1682&node-id=97-2284) TODO
 | 
			
		||||
    - [front](https://git.fediversity.eu/Fediversity/protagio.nl-frontend)
 | 
			
		||||
    - back
 | 
			
		||||
      - [existing](https://git.fediversity.eu/Fediversity/myprotagio-api)
 | 
			
		||||
      - rewrite?
 | 
			
		||||
  - allow for alternate setups
 | 
			
		||||
    - e.g. client doing orchestration
 | 
			
		||||
- [infra](https://git.fediversity.eu/Fediversity/meta/media/branch/main/architecture-docs/architecture.png)
 | 
			
		||||
 | 
			
		||||
### feature-specific architectural notes
 | 
			
		||||
 | 
			
		||||
- [decouple version](https://git.fediversity.eu/Fediversity/Fediversity/issues/304)
 | 
			
		||||
- [validate component input](https://git.fediversity.eu/Fediversity/Fediversity/issues/195)
 | 
			
		||||
- [migrate to different host](https://git.fediversity.eu/Fediversity/Fediversity/issues/100) (+ sub-tickets)
 | 
			
		||||
- [breaking changes](https://git.fediversity.eu/Fediversity/Fediversity/issues/214)
 | 
			
		||||
		Loading…
	
	Add table
		
		Reference in a new issue