meta/meeting-notes/2025-01-24-mvp-demo-roadmap.md
2025-01-27 10:13:42 +01:00

4.5 KiB

Target: Demo at Fediforum online conference 2025-04-01

This is a result of the team discussion on 2025-01-23.

Goal

Demo the key aspects of Fediversity:

  1. One-click deployment of Fediverse services
  2. (stretch goal) One-click portability between hosting providers

The point of the demo is to communicate:

  • That the project extists, what it is about, how it's special, and that it's progressing towards its goals
  • That this is the infrastructure you can use to provide a micro-cloud to end users
  • The ultimate goal is infrastructure portability
  • That we care about technological and economic sustainability
  • For organisations that want to participate in the Fediverse, we may be a good partner

Target audiences:

  • Peers, potential clients, policymakers
  • Hosting providers, organisations with sysadmins

Assumptions

  • There are ~47 (~9weeks) workdays between 27-01-2025 and 01-04-2025.

  • Demo users will use the Fediversity infrastructure.

    There are a few things we have to hard-code for now, so the backend setup won't be easily adopted by others, and this isn't the goal for the demo. Eventually we'll also need to describe the infrastructure one needs to run the whole thing.

  • At this point it's not clear if we'll manage to enable service portability.

    Services ready to run on top of Garage: PeerTube, Mastodon, Pixelfed. Making them portable is fairly involved though.

    Galene doesn't have any state and only needs configuration files to be ported over. But it doesn't have a NixOS service yet. Likely we we'll only need the Nix expression once we have it.

User story 1: Deployment

  • Log in with NixPanel
  • Configure a DNS domain and select services to deploy
  • Observe a progress indicator
  • (optional) Get a notification when the process finishes
  • Check that the services are accessible under the configured domain

User story 2: Migration

  • Log in on a different instance of NixPanel
  • Create a migration token (e.g. callback URL)
  • Paste the token in the first instance and start migration
  • Observe a progress indicator
  • (optional) Get a notification when the process finishes
  • Check that the services run on the new instance

Roadmap

  • Set up a Django CRM service (as discussed 2024-11-06)
  • Trigger NixOps4 on form submission:
  • Requires a provider for the NixPanel to store deployment state and send progress updates
  • Requires a Passbolt provider for dynamic secrets (as discussed regarding secrets handling 2024-12-10)
  • First step: assume a fixed provisioned setup
  • For (optional) migratio: VM provisioning will be handled via Ansible for now:
    • A NixOps4 Terraform provider is currently planned but will not be ready in time
  • Rebrand MyProtagio to Fediversity
    • Remove the intermediate registrar and register DNS domains ourselves
    • Demo users will register an actual domain (and a bulk service package) using a voucher token

Next steps

  • Define:
    • Detailed scope

      Which components need which capabilities to fulfill the user stories?

      Example:

      • We need a Passbolt provider for NixOps4
      • We need a CRM to be set up and running, ready for triggering deployments
    • Specific division of labor

      Who exactly is responsible for which compononents? Which time capcities are available for each contributor?

      Example:

      • Tweag: Valentin will do the data modeling, Nicolas will wire up deployment-related Nix code
      • Procolix: Hans will help integrate the existing Ansible script to spin up VMs on demand
      • Robert will develop a provider for NixOps4 to interact with the CRM
    • Milestones (scheduled delivery of capabilities)

      What are the component capabilities we can test together? When can we provide these aggregate capabilities?

      Example:

      • Week 1: Spin up the CRM and configure a rudimentary data model
      • Week 2: Let a fixed CRM user trigger NixOps to deploy a fixed config to a fixed existing VM
      • Week 3: Configure SSH keys in the CRM, deploy to a fixed VM a NixOS config accessible with these keys
      • ...
    • Issues (granular tasks)

      What exactly needs to be done to reach the milestones?

      Example:

      • Deploy CRM
      • Add UI for selecting a service
      • ...