- 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.
229 lines
No EOL
7.7 KiB
Markdown
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. |