158 lines
No EOL
5.1 KiB
Markdown
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. |