diff --git a/fediversity.md b/fediversity.md index e5badfa..6df5ad2 100644 --- a/fediversity.md +++ b/fediversity.md @@ -72,38 +72,24 @@ Tests will concisely describe the abilities the Fediversity system provides. these tests can be run on any sufficiently powerful machine with Nix installed, and reliably validate that the use cases work as intended. The proposed work is realistically achievable. -## Identified applications +## Application support -As the initial application to be supported, we have selected [Forgejo](https://forgejo.org/), given it: +To demonstrate our functionality, we integrate our work with NGI Zero project [SelfHostBlocks](https://github.com/ibizaman/selfhostblocks), which offers the interfaces for applications to indicate their needs, for our purpose of data portability notably including back-up and restore, and is in the process of [preparing an RFC](https://discourse.nixos.org/t/pre-rfc-decouple-services-using-structured-typing/58257) to get these practices upstreamed to nixpkgs. -1. is supported in [SelfHostBlocks](https://github.com/ibizaman/selfhostblocks), facilitating implementation -1. is part of our own infrastructure, allowing us to bootstrap -1. given the above, makes our development team self-sufficient for the purpose of its initial user feedback cycle -1. relevant features are merged upstream -1. uses a language featuring static typing, offering it a baseline level of robustness +At the time of writing, applications it supports include: -Our consideration to limit the initially supported applications is to keep focus on our core innovation, as properly adding support for applications may involve: +- [Arr](https://wiki.servarr.com/) +- [Audiobookshelf](https://www.audiobookshelf.org/) +- [Deluge](https://deluge-torrent.org/) +- [Forgejo](https://forgejo.org/) +- [Grocy](https://grocy.info/) +- [Hledger](https://hledger.org/) +- [Home Assistant](https://www.home-assistant.io/) +- [Jellyfin](https://jellyfin.org/) +- [Nextcloud](https://nextcloud.com/) +- [Vaultwarden](https://github.com/dani-garcia/vaultwarden) -- PoC: - - compartmentalising state for backups/portability/redundancy - - migration actions such as rewrites of connections/URLs - - integration with single sign-on and LDAP for user management (or as a stop-gap, provisioning of initial user) -- MVP: - - handling application upgrades - - creating schemas of (identified relevant) settings - - documentation - - hardening -- post-MVP: - - handling backward-incompatible setting interface changes - - coordinating with end-users to improve the user experience -- if missing first-class Nix support: - - packaging for Nix - - creating NixOS service module - - integrating with identified contracts (see SelfHostBlocks) - - maintaining the above on version updates - - coordinating with upstream developers on immutable-friendly development - -The result of the work in the hosting vertical should be generic enough to support all NGI packages sufficiently documented and packaged in NixOS. +The result of the work should be generic enough to support any NGI packages implementing such interfaces. ## Methodology challenges