Compare commits

...

3 commits

Author SHA1 Message Date
Valentin Gagarin 5362af9df3 update roadmap following team meeting 2025-01-27 10:13:06 +01:00
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
BjornW 654dbe55ea Add meeting-notes/2025-01-21 standup notes.md
Standup notes of the 21th. Forgot to add these.
2025-01-23 09:24:38 +01:00
2 changed files with 147 additions and 0 deletions

View file

@ -0,0 +1,37 @@
**Date and Time:** 2025-01-21 09:30
**Attendees**
**Present:** Björn, Gheorghe, Ronny, Koen, Richard, Kevin
**Absent:** Nicolas(known), Hans (known), Robert(unknown)
* Koen
* Constructive discussion with Hans on the Matrix setup, using Ansible & Docker for now.
* Videoconf in Matrix is based on Element videocall & Jitsi. Older Matrix clients cannot us Element videocall & vice versa. So we need to make a choice & explain which clients to use related which videoconf backend. Something to keep in mind and to communicate.
* Element the company is focussing on very large installs with their own Element Pro server (closed-source)
* Support on Matrix is probably left to us for small Matrix instances since Element has the focus on Enterprise.
* So we need to gather more info on the usage of Matrix so that we can offer proper support.
* Will pair Hans to finish up the last parts
* Will share MyProtagio docs with Ronny, could be helpful for the data model.
* Would like to discuss the proposed roadmap with Valentin.
* With regards to the prototype: a form should be sent to a person that has the right protocols to follow, but it should not lead to a decision process.
* Kevin
* Continued a bit with the pixelfed server (loadbalancer) yesterday & will work on this today as well
* Richard
* Worked on other projects yesterday
* Ronny
* Had a chat with Valentin on the roadmap
* Wondering about SSH keys; do we want to allow people access to machines? To be discussed.
* Looking forward to myProtagio
* Gheorghe
* Had too many other obligations so could not join this standup yesterday.
* Will have a chat with Ronny today
* No blockers
* Bjorn
* Is not available on Wednesday
* Will take Thursday off after roadmap meeting
* Mostly worked on other obligations

View 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
- ...