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

7.7 KiB

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.