tweak project proposal #1

Open
kiara wants to merge 95 commits from rewrite into main
2 changed files with 12 additions and 17 deletions
Showing only changes of commit 1778f8716a - Show all commits

Binary file not shown.

View file

@ -204,14 +204,13 @@ Our consideration to limit the initial list of supported applications is to keep
- handling application upgrades
- creating schemas of (identified relevant) settings
- documentation
- security
- hardening
- post-MVP:
- handling backward-incompatible setting interface changes
- coordinate with end-users to improve the user experience
- scaling/redundancy
- if missing first-class Nix support:
- package for Nix
- create Nix service module
- create NixOS service module
- integrate with identified contracts (see SelfHostBlocks)
- maintain the above on version updates
- coordinate with upstream developers on immutable-friendly development
@ -333,7 +332,7 @@ Concrete examples of dissemination activities for our project will include:
- Properly document our work, so that potentials users may more easily understand when and how they might use it, whether directly or tweaked to their particular use-case.
- Maintain and highlight instant messaging channels where developers might ask questions and discuss potential improvements to the software.
- Creating a comprehensive user guide and knowledge base that provides detailed instructions and answers to common questions about the software, and making this guide available on the platform's website and social media channels.
- Hosting a webinar series that showcases the features and functionalities of our deployment module, and provides tips and best practices for using it effectively.
- Hosting a webinar series that showcases the features and functionalities of our software, and provides tips and best practices for using it effectively.
- Partnering with industry associations and advocacy groups that promote open-source software and digital rights, and working with them to promote our platform to their members and followers.
Such organizations include [SDEPS](https://www.sdeps.eu/), [PublicSpaces](https://publicspaces.net/), [Internet Society](https://www.internetsociety.org/), [EDRi](https://edri.org/), [GÉANT](https://geant.org/), [RIPE](https://www.ripe.net/), [ECO](https://www.eco.de/), [APELL](https://www.apell.info/) [CENTR](https://www.centr.org/), [DINL](https://www.dinl.nl/), [EuroISPA](https://www.euroispa.org/) and [EFF](https://eff.org/).
- Participating in relevant conferences and events to raise awareness of our project and engage with potential users and partners, such as those focused on hosting, open-source software, digital rights, and public sector innovation, and showcasing our software in demos and presentations.
@ -434,9 +433,14 @@ We will integrate that aspect into the high level process on a best effort basis
# Quality and efficiency of the implementation
## Interactions
## Architecture
To reach these 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).
At the core of Fediversity lies a NixOS configuration template containing selected applications.
We use this to deploy to selected run-time environments, so far targeting hypervisor ProxmoX.
We further provide a reference front-end to configure our template.
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).
```mermaid
flowchart
@ -567,15 +571,6 @@ flowchart
Configuration logic specific to a runtime backend, e.g. how to deploy, how to access object storage.
## Architecture
At the core of Fediversity lies a Terraform module for setting up NixOS instances on a hypervisor, so far targeting ProxmoX.
We use this to deploy selected applications, while allocating necessary resources and configuring relevant DNS settings.
Fediversity Core may be used from different front-ends, including the OpenTofu CLI and a reference web UI (embedding said CLI).
To ensure reproducibility, we further offer Nix packaging for these, including relevant OpenTofu providers.
![](./Pictures/architecture.png)
## Break-down of project milestones
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:
@ -597,7 +592,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)
- [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)
- [decoupled versioning of deployment module versus front-end](https://git.fediversity.eu/Fediversity/Fediversity/issues/304)
- [allow control over version of module deployed](https://git.fediversity.eu/Fediversity/Fediversity/issues/304)
- [security audit](https://git.fediversity.eu/Fediversity/Fediversity/issues/291)
- [automate dependency updates](https://git.fediversity.eu/Fediversity/Fediversity/issues/65)
- Features to improve user experience and increase host adoption:
@ -620,7 +615,7 @@ Whereas details of the implementation may need to be decided as the technical ch
- [facilitate user signup](https://git.fediversity.eu/Fediversity/Fediversity/issues/335)
- [facilitate code reviews](https://git.fediversity.eu/Fediversity/Fediversity/issues/302)
- [get documentation ready](https://git.fediversity.eu/Fediversity/Fediversity/issues/288)
- [upstream deployment module to NixOS](https://git.fediversity.eu/Fediversity/Fediversity/issues/333)
- [upstream to NixOS](https://git.fediversity.eu/Fediversity/Fediversity/issues/333)
## Work plan and resources