Compare commits
3 commits
27f1d6119d
...
82ac18de69
Author | SHA1 | Date | |
---|---|---|---|
82ac18de69 | |||
5bee8171bb | |||
0edb62611b |
110
meeting-notes/2025-01-24-mvp-demo-roadmap.md
Normal file
110
meeting-notes/2025-01-24-mvp-demo-roadmap.md
Normal file
|
@ -0,0 +1,110 @@
|
|||
# Target: Demo at Fediforum online conference 2025-04-01
|
||||
|
||||
This is a result of the [team discussion on 2025-01-23](https://git.fediversity.eu/Fediversity/intra/src/branch/main/2025-01-23-roadmap-discussion-fediforum.md).
|
||||
|
||||
# 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](https://github.com/jech/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](https://en.wikipedia.org/wiki/Customer_relationship_management) service ([as discussed 2024-11-06](./2024-11-06%20standup%20notes.md#working-session-architecture-discussion))
|
||||
* 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](meeting-notes/2024-12-10-decision-making-meeting-dealing-with-secrets.md))
|
||||
* 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
|
||||
- ...
|
||||
|
Loading…
Reference in a new issue