meta/2024-01-mvp-demo-roadmap.md
Valentin Gagarin 0eee114523 sketch roadmap to an MVP demo
- goal as set by Bjorn on 2024-01-20
- proposal with input from Koen on 2025-01-22
2025-01-27 10:13:06 +01:00

55 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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. <code>demo.fediversity.eu</code>
* 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
* Wed ideally co-deploy an instance with the other front-end to enable smooth CI/CD; though thats 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