particleos-installer/readme.md

158 lines
No EOL
5.1 KiB
Markdown

# ParticleOS Installer
A bootable ISO installer for ParticleOS, a Debian/Ubuntu-based atomic desktop system using apt-ostree.
## 🎯 **Project Overview**
ParticleOS is an atomic, immutable desktop system built on Debian/Ubuntu using apt-ostree (the Debian equivalent of rpm-ostree). This installer creates a bootable ISO that allows users to:
1. **Live Boot**: Try ParticleOS without installation
2. **Install**: Install ParticleOS to disk with atomic updates
3. **Experience**: See apt-ostree in action on a real desktop system
## 🏗️ **Architecture**
### **Core Components:**
- **Base System**: Ubuntu 24.04 LTS with apt-ostree
- **Desktop Environment**: KDE Plasma (similar to Aurora)
- **Package Manager**: apt-ostree for atomic updates
- **Boot System**: GRUB with ParticleOS branding
- **Installer**: Custom installer for apt-ostree systems
### **Key Features:**
- **Atomic Updates**: Transactional system updates with rollback
- **Immutable by Default**: System files protected, user data in /var
- **Package Management**: apt-ostree for system packages, Flatpak for applications
- **Live Environment**: Boot and test without installation
## 📁 **Project Structure**
```
particleos-installer/
├── README.md # This file
├── aurora-systems.yml # apt-ostree system definition
├── build-iso-podman.sh # Main ISO build script (Podman containerized)
├── build-iso-mmdebstrap-safe.sh # Alternative build script (chroot-based)
├── test-build.sh # Test build environment
├── test-podman-environment.sh # Test Podman build environment
├── scripts/
│ └── install-system.sh # Installer script for bootc
├── .archive/ # Archived build scripts (for reference)
├── .gitignore # Git ignore rules
├── todo.md # Project TODO list
└── output/ # Generated ISO files
```
## 🚀 **Quick Start**
### **Build ParticleOS ISO:**
```bash
# Clone the repository
git clone <your-repo> particleos-installer
cd particleos-installer
# Test the build environment
./test-podman-environment.sh
# Build the ISO (Podman containerized - SAFEST METHOD)
./build-iso-podman.sh
# Result: output/particleos-1.0.0.iso
```
### **Test in VM:**
```bash
# Create VM with the ISO
qemu-system-x86_64 -m 4G -enable-kvm \
-cdrom output/particleos-1.0.0.iso \
-boot d
```
## 🎨 **ParticleOS Features**
### **System Management:**
```bash
# Check system status
apt-ostree status
# List installed packages
apt-ostree list
# Install packages
sudo apt-ostree install nginx
# System updates
sudo apt-ostree upgrade
# Rollback if needed
sudo apt-ostree rollback
```
### **Application Management:**
```bash
# Install applications via Flatpak
flatpak install flathub org.kde.discover
# Firefox is pre-installed as DEB package (no snap)
# Additional packages can be installed via apt-ostree
sudo apt-ostree install package-name
```
## 🔧 **Development**
### **Prerequisites:**
- Ubuntu 24.04 LTS or Debian 12
- Podman (for containerized builds)
- 15GB+ free space for building
- Internet connection for package downloads
### **Build Process:**
1. **Container Setup**: Create isolated Podman container with build tools
2. **Base System**: Create Ubuntu base using mmdebstrap
3. **Package Installation**: Install apt-ostree, bootc, and KDE Plasma packages
4. **System Configuration**: Configure services, users, and apt-ostree
5. **Live Environment**: Create bootable live system with casper
6. **ISO Creation**: Package into bootable ISO with GRUB/ISOLINUX
7. **Testing**: Test in VM environment
## 🎯 **Goals**
- [x] **apt-ostree Integration**: Working atomic package management
- [x] **Containerized Build**: Safe Podman-based ISO creation
- [x] **Desktop Environment**: KDE Plasma with ParticleOS branding
- [x] **Snap Blocking**: Complete snapd removal and prevention
- [x] **Firefox DEB**: Firefox installed as DEB package (no snap)
- [ ] **Advanced ISO Build**: Full apt-ostree compose integration
- [ ] **Installer**: User-friendly bootc-based installation process
- [ ] **Documentation**: User and developer guides
## 🚀 **Current Status**
### **✅ Working:**
- Podman containerized ISO build system (ULTRA SAFE)
- apt-ostree integration in built system
- KDE Plasma desktop environment
- Live boot environment with casper
- Complete snapd removal and blocking
- Firefox installed as DEB package (no snap)
- bootc and ostree from Forgejo repository
### **🔄 In Progress:**
- Advanced apt-ostree compose commands
- Full system definition support
- ParticleOS branding and customization
### **📋 Next Steps:**
1. Test the Podman ISO build
2. Implement apt-ostree compose commands
3. Add ParticleOS branding
4. Create user-friendly bootc installer
5. Document user workflow
## 🤝 **Contributing**
This project follows the same principles as uBlue Aurora but adapted for Debian/Ubuntu with apt-ostree. Contributions are welcome!
## 📄 **License**
Same license as apt-ostree project.