particle-os/roadmap.md
robojerk f9fb8d3bd0 Fix critical PATH issues and add related projects to README
- Fixed sfdisk PATH issue in Containerfile.base (sfdisk is in /usr/sbin)
- Updated Containerfile.minimal to use full path for grub-install
- Enhanced test-bootc-deployment.sh to properly check utility locations
- Added comprehensive section about related projects (apt-ostree, deb-bootupd, debian-bootc-corrected)
- Updated validation script to handle Debian-specific utility locations
- Improved error messages with specific solutions for PATH and utility issues

This addresses the critical requirements from scope.md regarding disk utilities
and PATH environment variables for bootc deployment.
2025-08-10 18:15:04 -07:00

229 lines
No EOL
7.7 KiB
Markdown

# Particle-OS Development Roadmap
This roadmap outlines the development path for creating a Debian-based immutable operating system following the ublue-os pattern. The goal is to build a complete Debian immutable ecosystem from the ground up.
## Project Vision
**Create the Debian equivalent of the ublue-os ecosystem:**
- **Debian CoreOS** (immutable server OS using `apt-ostree`)
- **Debian Desktop variants** (immutable desktop OS using `apt-ostree`)
- **Complete bootc integration** for Debian systems
- **Modern immutable workflow** following established best practices
## Phase 1: Foundation & Core Technologies 🔄 **IN PROGRESS**
**Goal:** Establish the foundational Debian immutable technologies and create a minimal bootable image.
**Current Status:**
**Completed:**
- `apt-ostree` package - Debian equivalent to `rpm-ostree`
- `deb-bootupd` package - Debian equivalent to `bootupd`
- `debian-bootc-corrected` container - Working bootc image builder
- Basic project infrastructure and testing environment
🔄 **In Progress:**
- Testing `deb-bootupd` functionality
- Validating `apt-ostree` integration
- Building first minimal bootable image
**Tasks:**
1. **Test Core Components** 🔄 **IN PROGRESS**
- Validate `deb-bootupd` in particle-os VM environment
- Test `apt-ostree` basic functionality
- Verify bootc compatibility with Debian base
2. **Create Minimal Bootable Image** 📋 **PLANNED**
- Start with `debian:trixie-slim` container
- Install `bootc`, `apt-ostree`, `deb-bootupd`
- Use `deb-bootupd` to write bootloader
- Convert to bootable image format (ISO/VHD/raw)
3. **Validate Boot Process** 📋 **PLANNED**
- Test image boots in VM environment
- Verify OSTree integration works correctly
- Confirm rollback capabilities function
**Deliverable:** Working Debian bootc image that can be installed and booted.
---
## Phase 2: Debian CoreOS Foundation
**Goal:** Create a minimal, server-focused Debian immutable OS (equivalent to Fedora CoreOS).
**Approach:** Build on Phase 1 foundation to create a minimal server image.
**Tasks:**
1. **Minimal Server Image**
- Start with Phase 1 bootable image
- Add essential server packages (SSH, basic networking)
- Configure for headless operation
- Add systemd services for server workloads
2. **Server-Specific Features**
- Cockpit integration for web-based management
- Tailscale for secure networking
- Optional NVIDIA driver support
- Container runtime (Podman) integration
3. **Testing & Validation**
- VM deployment testing
- Server workload validation
- Performance benchmarking
**Deliverable:** Debian CoreOS equivalent - minimal, immutable server OS.
---
## Phase 3: Desktop Variants (Debian Aurora/Bazzite)
**Goal:** Create specialized desktop images following ublue-os pattern.
**Approach:** Build desktop variants on top of the CoreOS foundation.
**Tasks:**
1. **General Purpose Desktop (Debian Aurora)**
- KDE Plasma desktop environment
- Essential productivity applications
- Light customization and branding
- Flatpak integration
2. **Gaming Desktop (Debian Bazzite)**
- Gaming-focused software stack
- Steam, Lutris, and gaming tools
- Enhanced hardware support
- NVIDIA driver integration
3. **Developer Desktop (Debian Bluefin)**
- Development tools and IDEs
- Container development environment
- Git and version control tools
- Programming language support
**Deliverable:** Multiple specialized desktop images ready for distribution.
---
## Phase 4: Distribution & Ecosystem
**Goal:** Establish the complete Debian immutable ecosystem and distribution pipeline.
**Tasks:**
1. **Container Registry**
- Host all images in container registry
- Automated builds and testing
- Version management and tagging
2. **Installation Media**
- Bootable ISO creation
- Calamares installer integration
- Automated deployment tools
3. **Documentation & Community**
- User guides and tutorials
- Developer documentation
- Community contribution guidelines
- Troubleshooting resources
**Deliverable:** Complete, distributable Debian immutable ecosystem.
---
## Technical Architecture
### Base Image Strategy
```
debian:trixie-slim → bootc image → bootable OS
```
### Technology Stack
- **Base:** `debian:trixie-slim`
- **Immutable Layer:** `apt-ostree` (your project)
- **Bootloader Management:** `deb-bootupd` (your project)
- **Container Integration:** `bootc`
- **Image Building:** `bootc-image-builder`
### Key Differences from ublue-os
- **Base:** Debian instead of Fedora
- **Package System:** APT/DPKG instead of RPM
- **OSTree:** `apt-ostree` instead of `rpm-ostree`
- **Bootloader:** `deb-bootupd` instead of `bootupd`
---
## Success Metrics
### Phase 1 Success
- [ ] `deb-bootupd` successfully manages bootloaders
- [ ] `apt-ostree` provides immutable Debian base
- [ ] Minimal image boots and functions correctly
- [ ] OSTree rollback works as expected
### Phase 2 Success
- [ ] Server image deploys successfully
- [ ] Basic server workloads run correctly
- [ ] Management tools (Cockpit, etc.) function
- [ ] Performance meets or exceeds traditional Debian
### Phase 3 Success
- [ ] Desktop variants boot and function
- [ ] User experience matches or exceeds traditional desktops
- [ ] Gaming and development workflows work smoothly
- [ ] Customization and branding are consistent
### Phase 4 Success
- [ ] Complete ecosystem is distributable
- [ ] Installation process is user-friendly
- [ ] Documentation is comprehensive
- [ ] Community can contribute and build
---
## Current Focus
**Immediate Priority:** Complete Phase 1 by testing `deb-bootupd` and creating the first minimal bootable image.
**Next Steps:**
1. Test `deb-bootupd` in particle-os VM
2. Build minimal `debian:trixie-slim` → bootc image
3. Validate boot process and OSTree functionality
4. Document the process for future phases
---
## Key Questions to Investigate
As we build the Debian immutable ecosystem, these questions need answers to ensure we have all necessary tools:
### **1. Update Management Strategy**
- **Question:** Does `apt-ostree` handle updates like `rpm-ostree` does?
- **Why Important:** Determines if we need additional update management tools
- **Investigation Needed:** Test `apt-ostree` update capabilities vs. `rpm-ostree`
### **2. First-Boot Provisioning**
- **Question:** Do you need a Debian equivalent to `ignition` for first-boot setup?
- **Why Important:** Fedora CoreOS uses `ignition` for declarative configuration
- **Investigation Needed:** Determine how Debian systems handle initial configuration
### **3. Image Building Tools**
- **Question:** Is `bootc-image-builder` sufficient, or do you need something like `cosa`?
- **Why Important:** ublue-os uses `cosa` (CoreOS Assembler) for building images
- **Investigation Needed:** Compare capabilities of both tools
### **4. Application Delivery**
- **Question:** How will applications be delivered? Flatpak integration like ublue-os?
- **Why Important:** ublue-os heavily integrates Flatpak for application management
- **Investigation Needed:** Plan Flatpak integration strategy for Debian
### **5. Container Runtime Integration**
- **Question:** How deeply should `podman` be integrated into the base system?
- **Why Important:** ublue-os integrates container tools heavily
- **Investigation Needed:** Determine optimal level of container integration
**Status:** These questions will be answered incrementally as we progress through Phase 1 and begin building the minimal image.
This roadmap represents a fundamental shift from building complex custom packages to using established tools and following proven patterns. The result will be a cleaner, more maintainable, and more aligned Debian immutable ecosystem.