From 0eee11452338d720e7c1f71d4ad640dcb979ca75 Mon Sep 17 00:00:00 2001 From: Valentin Gagarin Date: Wed, 22 Jan 2025 11:42:17 +0100 Subject: [PATCH] sketch roadmap to an MVP demo - goal as set by Bjorn on 2024-01-20 - proposal with input from Koen on 2025-01-22 --- 2024-01-mvp-demo-roadmap.md | 54 +++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 2024-01-mvp-demo-roadmap.md diff --git a/2024-01-mvp-demo-roadmap.md b/2024-01-mvp-demo-roadmap.md new file mode 100644 index 0000000..319b16b --- /dev/null +++ b/2024-01-mvp-demo-roadmap.md @@ -0,0 +1,54 @@ +# Target: Demo at Fediforum online conference 2025-04-01 + +Goal: Demo Fediversity and make this demo available for download for others to use. +Focus on 1 or 2 Fediverse applications that can be 'automagically' installed aka a minimal viable product. + +To determine: + +- What are the minimal requirements to make this happen? +- What components are needed? +- Which Fediverse services are we going to offer? +- There are ~47 (~9weeks) workdays between 27-01-2025 and 01-04-2025. How will we divide the work among the team? + +# Roadmap + +* As a first measure, set up a new site with a simple email form: "set up your Fediverse services" + * Initial form fields: + * text field: subdomain to use under e.g. demo.fediversity.eu + * multi-select: services to deploy (start with one or two) + * text fields: ssh public keys + * freeform: additional requests + * Simply send an email to the project team for manual processing + * Figure out the rest as we go, automate time-consuming repetitive tasks incrementally + * Systematically keep procedural notes from which we can later derive code +* Split test environment into staging and production deployment +* Start preparing a Django service ([as discussed 2024-11-06](../meeting-notes/2024-11-06%20standup%20notes.md#working-session-architecture-discussion)) that will eventually replace the manually processed form + * It will take about a work week to make the development cycle smooth (maybe 2 weeks on the wall clock), enough to refine the initial data model + * It could trigger NixOps4 asynchronously on form submission + * Requires figuring out the exact interaction model on the backend. Especially how deployment state gets stored, retrieved, and updated + * Requires a Passbolt provider for dynamic secrets ([as discussed regarding secrets handling 2024-12-10](meeting-notes/2024-12-10-decision-making-meeting-dealing-with-secrets.md)) + * We probably don't want to mess with Git-backed storage there + * Requires a proper deployment provider + * Terraform is currently planned + * For single NixOS machines something more robust than a shellscript would already be nice, but that would require talking to Proxmox via API anyway +* Rebrand MyProtagio to Fediversity + * It currently interfaces with an intermediate registrar, need to remove that + * Demo users could register an actual domain using a voucher token +* Interfacing with MyProtagio for leveraging its DNS setup capabilities may need more time to study the code + * We’d ideally co-deploy an instance with the other front-end to enable smooth CI/CD; though that’s more up-front work + * MyProtagio doesn't have metering or billing yet + * If we hand out exactly one credit, it would include one domain name and some bulk service package for some period of time + +# TODO + +* Division of labor + * Tweag can do the domain-specific data types and transformations, as well as the the backend wiring + * Ronny asked to get involved in the domain modeling + * Waiting for Koen to contact their UI expert + * Robert needed for NixOps4 providers +* Selection of initial services + * Also have to resolve friction around versions being up to date in Nixpkgs + +# Next steps + +* Define detailed scope, integration points, schedule