From ac3b9c9c30332a71e7f9f0119bf13d6dd67412da Mon Sep 17 00:00:00 2001 From: Valentin Gagarin Date: Wed, 11 Jun 2025 17:05:25 +0200 Subject: [PATCH 1/7] build PDF with Nix --- .gitignore | 1 + README.md | 16 ++++++++-------- default.nix | 28 ++++++++++++++++++++++++++++ shell.nix | 14 +------------- 4 files changed, 38 insertions(+), 21 deletions(-) create mode 100644 default.nix diff --git a/.gitignore b/.gitignore index 5594b31..3e114b0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +result *.err *.odt *.html diff --git a/README.md b/README.md index 66d0271..7e39390 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ -# fediversity proposal +# Fediversity project proposal -## usage +Build a PDF: -```sh -nix-shell -pandoc architecture.md -o architecture.html -pandoc architecture.html -o architecture.pdf -pandoc --filter pandoc-include fediversity.md -o fediversity.html -pandoc fediversity.html -o fediversity.pdf +> **Note** +> +> It will take a while to download dependencies! + +```bash +nix-build -A pdf ``` diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..93f6af6 --- /dev/null +++ b/default.nix @@ -0,0 +1,28 @@ +{ + pkgs ? import { }, +}: +{ + shell = pkgs.mkShellNoCC { + packages = with pkgs; [ + pandoc + pandoc-include + texliveMedium + librsvg + ]; + }; + pdf = + pkgs.runCommand "fediversity" + { + buildInputs = with pkgs; [ + pandoc + pandoc-include + texliveMedium + librsvg + ]; + } + '' + mkdir -p $out + pandoc ${./architecture.md} -o $out/architecture.pdf + pandoc --filter pandoc-include ${./fediversity.md} -o $out/fediversity.pdf + ''; +} diff --git a/shell.nix b/shell.nix index bf1305a..a6bdf20 100644 --- a/shell.nix +++ b/shell.nix @@ -1,13 +1 @@ -{ - pkgs ? import { }, -}: -{ - shell = pkgs.mkShellNoCC { - packages = with pkgs; [ - pandoc - pandoc-include - texliveMedium - librsvg - ]; - }; -} +(import ./. { }).shell -- 2.48.1 From 030418ed0280e04442cfefefb1bd19009698f237 Mon Sep 17 00:00:00 2001 From: Valentin Gagarin Date: Wed, 11 Jun 2025 17:08:09 +0200 Subject: [PATCH 2/7] fix some formatting --- fediversity.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fediversity.md b/fediversity.md index 761e38a..f9dab5c 100644 --- a/fediversity.md +++ b/fediversity.md @@ -359,7 +359,7 @@ Animals Non-EU countries -- Will some of the activities be carried out in non-EU countries? **YES (potentially) **\ +- Will some of the activities be carried out in non-EU countries? **YES (potentially)**\ **\*Specify the countries involved\***: The countries from which beneficiaries operate are not yet known (open call involving financial support to third parties). - In case non-EU countries are involved, do the activities undertaken in these countries raise potential ethics issues? **NO** @@ -374,17 +374,17 @@ Non-EU countries Environment & health and safety -- Does this activity involve the use of substances or processes (or technologies) that may cause harm to the environment, to animals or plants (during the implementation of the activity or further to the use of the results, as a possible impact)?** NO** -- Does this activity deal with endangered fauna and/or flora / protected areas?** NO** -- Does this activity involve the use of substances or processes (or technologies) that may cause harm to humans, including those performing the activity (during the implementation of the activity or further to the use of the results, or the deployment of the technology as a possible impact)? ** NO** +- Does this activity involve the use of substances or processes (or technologies) that may cause harm to the environment, to animals or plants (during the implementation of the activity or further to the use of the results, as a possible impact)? **NO** +- Does this activity deal with endangered fauna and/or flora / protected areas? **NO** +- Does this activity involve the use of substances or processes (or technologies) that may cause harm to humans, including those performing the activity (during the implementation of the activity or further to the use of the results, or the deployment of the technology as a possible impact)? **NO** Artificial intelligence -- Does this activity involve the development, deployment and/or use of Artificial Intelligence-based systems?** NO**\ +- Does this activity involve the development, deployment and/or use of Artificial Intelligence-based systems? **NO**\ Other ethics issues -- Are there any other ethics issues that should be taken into consideration?** NO**\ +- Are there any other ethics issues that should be taken into consideration? **NO**\ \ \[x\] I confirm that I have taken into account all ethics issues above and that, if any ethics issues apply, I will complete the ethics self-assessment as described in the guidance 'How to complete your Ethics Self-Assessment'. (See Guide 4 section 5) -- 2.48.1 From 8e5c5d44cb80bd07996078af108ee27ca3bf3fd8 Mon Sep 17 00:00:00 2001 From: Valentin Gagarin Date: Wed, 11 Jun 2025 17:36:05 +0200 Subject: [PATCH 3/7] update date of last change --- fediversity.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fediversity.md b/fediversity.md index f9dab5c..838afba 100644 --- a/fediversity.md +++ b/fediversity.md @@ -18,7 +18,7 @@ | 2023-10-12 | Page 41 | Updated Gant Chart | | 2023-10-12 | Page 3 | Added Open Source, Open Standards, Open Dependencies | | 2023-10-12 | Page 15 | Added work package interdependencies and added a new page | -| 2025-05-xx | Page x | See https://git.fediversity.eu/kiara/fedi-goals/commits/branch/main | +| 2025-06-12 | Page x | See https://git.fediversity.eu/kiara/fedi-goals/commits/branch/main | # Preamble -- 2.48.1 From 02812f012239c8311593a0e74f5d18b3b4e03124 Mon Sep 17 00:00:00 2001 From: Valentin Gagarin Date: Wed, 11 Jun 2025 17:36:48 +0200 Subject: [PATCH 4/7] polish phrasing and add links --- fediversity.md | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/fediversity.md b/fediversity.md index 838afba..0f17aa9 100644 --- a/fediversity.md +++ b/fediversity.md @@ -40,36 +40,38 @@ No software specific for or usable by any single organisation will be created or *Fediversity: Privacy-friendly, sustainable, transparent fair.* -The Open Internet Discourse Foundation project Fediversity is an effort to bring individuals and institutions easy-to-use, portable digital services with personal freedom at their core. +The Open Internet Discourse Foundation's project **Fediversity** is an effort to bring individuals and institutions easy-to-use, portable digital services with personal freedom at their core. We want to help provide everyone with high-quality, secure IT systems for everyday use. Without tracking, without exploitation, in a way that makes sustainable use of the world. The goal of this project is offer an **alternative to centralised online services and companies that operate closed ecosystems**, thus creating a major impact on the future of the internet, our societies and economies — a unique and meaningful contribution to the *Next Generation Internet* initiative. This objective aligns with the work programme topic by advancing the development of alternative digital solutions that are more user-centric and transparent. -The key technical aspect of Fediversity is to provide the framework for applications to easily switch between different hosting providers, or to their own infrastructure, without losing their data. -This objective is important as it promotes user control and choice, without being locked into a particular platform or service. +The key technical aspect of Fediversity is to provide the framework for networked applications to easily migrate between different hosting providers, or to their own infrastructure, while retaining full control over user data. +This objective is important as it promotes technological sovereignity and choice, and offers an alternative to locking users into a particular platform or service. It would be a unique feature beyond what is currently available on the market. -Concretely, we aim to achieve this using the following sub-goals: +Concretely, we aim to achieve the following objectives[^1]: -1. Implement a way to run online services emphasising user autonomy and data portability; -1. Disseminate our results by engaging the open-source community to further expand on work in this direction; -1. Exploit our work by enabling reproducible deployments of an initial set of portable applications. +1. **Implement** a way to run online services emphasising user autonomy and data portability; +1. **Disseminate** our results by engaging the open-source community to further expand on work in this direction; +1. **Exploit** our work by enabling reproducible deployments of an initial set of portable applications. + +[^1]: [Disseminaton and exploitation of research results](https://research-and-innovation.ec.europa.eu/strategy/dissemination-and-exploitation-research-results) defines the terminology we use to frame our objectives. In addition, the team will ensure that all parts of our services use **open-source software**. This will promote transparency and gives users the freedom to use, modify, and distribute the software as they see fit, without artificial restrictions or limitations. ### Relevance -This proposal is highly relevant to the HORIZON EU Programme, specifically to the Human-centric Internet topic. +This proposal is highly relevant to the [Horizon Europe programme](https://commission.europa.eu/funding-tenders/find-funding/eu-funding-programmes/horizon-europe), specifically to the [Next Generation Internet](https://cordis.europa.eu/programme/id/HORIZON_HORIZON-CL4-2023-HUMAN-01-11) fund. The objective of this topic is to support research and innovation in creating a more human-centric internet that prioritises user privacy, security, and control, while also promoting the ethical use of technology. -The proposed work aligns with this objective by show-casing a way to run digital services that prioritises user control and privacy, and by using open-source software to promote transparency and ethical use. +The proposed work aligns with this objective by show-casing a way to run digital services that prioritises user control and data protection, and by using open-source software to promote transparency and ethical use. ### Measurability 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. +These tests can be run on any sufficiently powerful machine with [Nix](https://nixos.org) installed, and reliably validate that the use cases work as intended. The proposed work is realistically achievable. ## Application support -- 2.48.1 From 17fe081fa75cb6911284a747935508149c28a2bd Mon Sep 17 00:00:00 2001 From: Valentin Gagarin Date: Wed, 11 Jun 2025 17:37:01 +0200 Subject: [PATCH 5/7] don't specify applications for use this is an implementation detail since the project scope is adjusted to provide a framework. also too early to talk about that here, there's a section in the architecture document for sample applications. --- fediversity.md | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/fediversity.md b/fediversity.md index 0f17aa9..236db3f 100644 --- a/fediversity.md +++ b/fediversity.md @@ -74,25 +74,6 @@ Tests will concisely describe the abilities the Fediversity system provides. These tests can be run on any sufficiently powerful machine with [Nix](https://nixos.org) installed, and reliably validate that the use cases work as intended. The proposed work is realistically achievable. -## Application support - -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. - -At the time of writing, applications it supports include: - -- [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) - -The result of the work should be generic enough to support any NGI packages implementing such interfaces. - ## Methodology challenges One of the challenges we have identified is ensuring the security and privacy of our users' data, even if we will not collect this directly. -- 2.48.1 From 5034ce1265c98bf539ec542ac3e0b4b58f040649 Mon Sep 17 00:00:00 2001 From: Valentin Gagarin Date: Wed, 11 Jun 2025 17:38:04 +0200 Subject: [PATCH 6/7] collapse redundant outcomes --- fediversity.md | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/fediversity.md b/fediversity.md index 236db3f..6ba817f 100644 --- a/fediversity.md +++ b/fediversity.md @@ -104,38 +104,29 @@ This diagram graphically represents the relations: ## Project's pathways towards impact -Outcomes: - -- Freedom of choice in the tools to use and (possibly) even alter to your own liking. -- The democratic process may be safeguarded. - Target groups: - Hosting companies looking to offer open-source applications. - Developers looking to expand on the available applications respecting user autonomy. -General outcomes: +Societal outcomes: -The outcomes and impacts of your project may: - -- Give a better understanding of how to implement, maintain and run open-source managed applications respecting user autonomy. - Give companies and organizations that specialize in web hosting a better starting point in offering such applications. +- The proposed platform could contribute to the creation of a more open and democratic digital landscape, where users have more control over their data and online interactions. +- The platform's focus on privacy and data portability could lead to greater trust in open-source digital platforms, which in turn could lead to increased participation and innovation. Technological outcomes: +- Establish a better understanding of how to implement, maintain and run open-source managed applications respecting user autonomy. - An increase in solutions around autonomous managed applications as well as in number of software packages supported by such solutions. - Increased engagement with and innovation around open-source software, stemming from lowered barriers toward their adoption. Economic outcomes: - An uptake in the number of open-source managed applications offered by web hosts, as it becomes easier to offer these. +- Reduction in cost of running applications that preserve users' control over their data. - Increased adoption of privacy-respecting software, as it becomes easier to consume these through the above-mentioned hosts. -Societal outcomes: - -- The proposed platform could contribute to the creation of a more open and democratic digital landscape, where users have more control over their data and online interactions. -- The platform's focus on privacy and data portability could lead to greater trust in open-source digital platforms, which in turn could lead to increased participation and innovation. - Some specific possible quantitative estimates include: 1. Developer engagement: -- 2.48.1 From 76e4269a8b4245e4b3c9844401125284296cfda6 Mon Sep 17 00:00:00 2001 From: Valentin Gagarin Date: Wed, 11 Jun 2025 17:38:16 +0200 Subject: [PATCH 7/7] formatting nits --- fediversity.md | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/fediversity.md b/fediversity.md index 6ba817f..09cf658 100644 --- a/fediversity.md +++ b/fediversity.md @@ -130,14 +130,23 @@ Economic outcomes: Some specific possible quantitative estimates include: 1. Developer engagement: + Given that making portable services the default will need more of the open-source community to engage on this issue, we may measure for example developer engagement in social channels, support channels, issue trackers, as well as code forge metrics such as bookmarks, forks, merge requests, and third-party projects building upon our work or citing us as a source of inspiration. + 1. User adoption: + If our project is successful in providing a user-friendly and privacy-focused platform for digital autonomy, it could attract a significant number of users. + 1. Cost savings: + By promoting the use of open-source software and decentralised infrastructure, our project could lead to cost savings for public organisations. + 1. Data portability: + The focus on data portability could have significant benefits for users, allowing them to easily switch between online platforms and take their data with them. + 1. Market disruption: + If our project is successful, it could have far-reaching impacts. For example, if our software gains a significant share of the market, it could lead to more competition among online software services, potentially leading to improved user privacy and better options for data management. @@ -145,12 +154,17 @@ There are several requirements and potential barriers that may determine whether Some of them are: 1. Technical challenges: + As seen in our technology section, our project encompasses bridging numerous existing software packages, meaning project success depends on successfully integrating these. + 1. Funding and resources: + The project will require adequate funding and resources to achieve its desired outcomes and impacts. The project team will need to secure sufficient funding and resources to cover the costs of software development, partnerships, and promotion. Failure to secure adequate funding and resources may limit the project's ability to achieve its desired outcomes and impacts. + 1. Competition: + The project will face competition from other digital service offerings, including properietary ones and offerings oriented at self-hosting open-source projects. The project team will need to differentiate the platform and demonstrate its unique features and benefits. Failure to differentiate the platform from its competitors may limit the project's ability to achieve its desired outcomes and impacts. @@ -167,10 +181,15 @@ We've identified multiple dissemination measures we can apply to our project in 1. Offering automated dev-ops workflows. 1. Ensuring external developers empowered to contribute: + We want for external developers to feel empowered similar to core developers, which we aim to achieve using accessible documentation, reproducible project infrastructure, tests doubling as live documentation of our components, a module upstreamed to nixpkgs, as well as by offering a familiar interface by making our core abstraction a NixOS configuration. + 1. Developing key messages: - We'll develop clear, concise, and compelling messaging that highlight the benefits and unique features of our project, such as the focus on **user control**, **privacy**, and **data & service portability**. + + We'll develop clear, concise, and compelling messaging that highlight the benefits and unique features of our project, such as the focus on **user control**, **data protection**, and **service portability**. + 1. Using multiple channels: + We will be utilising a variety of channels to reach our target audiences outlined above, among which through online communities, social media, webinars, blog posts, tech conferences and press releases. Concrete examples of dissemination activities for our project will include: @@ -180,7 +199,7 @@ Concrete examples of dissemination activities for our project will include: - 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 software, and provides tips and best practices for using it effectively. - Participating in relevant conferences and events to raise awareness of our project and engage with potential users and partners, such as those focused on Nix, and showcasing our software in demos and presentations. - These will include developer events like [NixCon](https://nixcon.org), [FOSDEM](https://fosdem.org/) and [CCC Congress](https://events.ccc.de/) to inform a diverse audience of the benefits of our stack and the other NGI technology solutions we are promoting. + These will include developer events such as [NixCon](https://nixcon.org), [FOSDEM](https://fosdem.org/) and [CCC Congress](https://events.ccc.de/) to inform a diverse audience of the benefits of our stack and the other NGI technology solutions we are promoting. ### Communication @@ -191,10 +210,13 @@ Our communication strategies are already partially integrated in the disseminati There are several communication strategies and measures that we will utilise during the whole lifespan of the project: 1. Developing a project website: + A project website will serve as a central hub of information about our project. It will be used to share updates, news, publications, and other project-related information. The website will be designed to be accessible and user-friendly. + 1. Using social media: + We will reach out to Fediverse channels (e.g. Mastodon, Pixelfed, Peertube and Owncast) as well as commercial social media platforms such as BlueSky, Threads, and LinkedIn to reach a wider audience and share project-related news and updates. Social media are used to engage with stakeholders and respond to their queries and feedback. While our values may be closer aligned with the open-source social media, we will also still have use for the commercial ones to spread our message initially. @@ -369,7 +391,7 @@ Other ethics issues As detailed in Part B, Fediversity in addition to pursuing its goals directly, will further contribute 15% of its budget to the development of related digital commons through financial support in the form of grants awarded to third parties through bi-monthly open calls for proposals. -In this annexe we describe the following aspects of this financial support by detailing our approach to managing a dedicated fund supporting a series of open calls related to Fediversity: +In this annex we describe the following aspects of this financial support by detailing our approach to managing a dedicated fund supporting a series of open calls related to Fediversity: - Objectives and results obtained of third party financial support - Specifications of third party financial support -- 2.48.1