cleanup
Some checks failed
particle-os CI / Test particle-os (push) Failing after 1s
particle-os CI / Integration Test (push) Has been skipped
particle-os CI / Security & Quality (push) Failing after 1s
Test particle-os Basic Functionality / test-basic (push) Failing after 1s
particle-os CI / Build and Release (push) Has been skipped

This commit is contained in:
robojerk 2025-08-27 12:30:24 -07:00
parent d782a8a4fb
commit 126ee1a849
76 changed files with 1683 additions and 470 deletions

View file

@ -0,0 +1,52 @@
# Particle OS - Debian-based ublue-os system
FROM debian:trixie-slim
# Install core system packages
RUN apt-get update && apt-get install -y \
systemd \
systemd-sysv \
udev \
procps \
util-linux \
mount \
passwd \
login \
bash \
coreutils \
ostree \
ostree-boot \
linux-image-amd64 \
linux-headers-amd64 \
initramfs-tools \
curl \
wget \
vim \
less \
locales \
ca-certificates \
tzdata \
&& rm -rf /var/lib/apt/lists/*
# Configure locale
RUN locale-gen en_US.UTF-8
ENV LANG=en_US.UTF-8
# Configure timezone
ENV TZ=UTC
# Create user
RUN useradd -m -s /bin/bash particle
# Configure OSTree
RUN mkdir -p /usr/lib/ostree-boot
# Configure systemd
RUN systemctl enable systemd-networkd systemd-resolved
# Clean up
RUN rm -f /var/lib/dpkg/info/*.postinst \
&& rm -f /var/lib/dpkg/info/*.postrm \
&& rm -f /var/lib/dpkg/info/*.prerm
# Set default command
CMD ["/bin/bash"]

162
containerfiles/readme.md Normal file
View file

@ -0,0 +1,162 @@
# Containerfiles Directory
This directory contains container definitions for building different variants of **Particle OS** - a Debian-native immutable operating system built with OSTree and bootc.
## Overview
These containerfiles define the base images that will be processed by your `deb-bootc-image-builder` tool to create bootable disk images. Each containerfile represents a different system variant with specific characteristics and use cases.
## Container Variants
### 1. `Containerfile.debian-trixie-minimal`
**Purpose**: Minimal base system for server and embedded deployments
**Characteristics**:
- **Base**: Debian Trixie (testing)
- **Desktop**: None (headless)
- **Size**: Minimal footprint
- **Use Case**: Servers, containers, embedded systems, CI/CD runners
**Key Features**:
- Core system packages only
- OSTree integration for atomic updates
- Bootc compatibility
- Network management tools
- Essential system utilities
**Target Audience**: System administrators, DevOps engineers, embedded developers
---
### 2. `Containerfile.debian-trixie-kde`
**Purpose**: Full desktop environment with KDE Plasma
**Characteristics**:
- **Base**: Debian Trixie (testing)
- **Desktop**: KDE Plasma Desktop Environment
- **Size**: Full desktop installation
- **Use Case**: Desktop workstations, development machines, user-facing systems
**Key Features**:
- Complete KDE Plasma desktop
- Full application suite (Dolphin, Konsole, Kate, Firefox)
- Audio and graphics support
- Auto-login configuration for testing
- OSTree + bootc integration
**Target Audience**: Desktop users, developers, content creators, general users
---
### 3. `Containerfile.particle-os`
**Purpose**: Core Particle OS system (original reference implementation)
**Characteristics**:
- **Base**: Debian Trixie-slim
- **Desktop**: None (minimal)
- **Size**: Lightweight but complete
- **Use Case**: Reference implementation, base for other variants
**Key Features**:
- Core system components
- OSTree boot configuration
- Systemd services
- Basic user environment
- Clean, minimal approach
**Target Audience**: Developers, system integrators, reference implementation
---
## How They Work Together
### Build Process
1. **Container Build**: Each containerfile builds a specific system variant
2. **Image Processing**: Your `deb-bootc-image-builder` tool processes these containers
3. **Bootable Image**: Creates bootable disk images (raw, qcow2, vmdk, vdi)
4. **Deployment**: Images can be deployed to physical hardware or virtual machines
### Variant Selection
- **Minimal**: Choose for servers, embedded systems, or when you need a small footprint
- **KDE**: Choose for desktop workstations or when you need a full GUI environment
- **Core**: Choose as a base for custom variants or when you need the reference implementation
## Technical Details
### OSTree Integration
All variants include OSTree configuration for:
- Atomic system updates
- Rollback capability
- Immutable system design
- Bootc compatibility
### Bootc Compatibility
Each container is designed to work with the bootc system:
- Proper filesystem structure
- Bootloader configuration
- Kernel and initramfs setup
- Systemd service configuration
### Debian Foundation
All variants are built on Debian Trixie:
- Latest testing packages
- Debian package ecosystem
- Debian security updates
- Debian community support
## Usage Examples
### Building a Minimal Server
```bash
# Build the minimal container
podman build -f containerfiles/Containerfile.debian-trixie-minimal -t particle-os-minimal .
# Process with deb-bootc-image-builder
./bib/particle-os build --base-image particle-os-minimal recipes/server.yml
```
### Building a Desktop System
```bash
# Build the KDE desktop container
podman build -f containerfiles/Containerfile.debian-trixie-kde -t particle-os-kde .
# Process with deb-bootc-image-builder
./bib/particle-os build --base-image particle-os-kde recipes/desktop.yml
```
### Custom Variants
```bash
# Use the core container as a base
podman build -f containerfiles/Containerfile.particle-os -t particle-os-core .
# Add your custom packages and configuration
# Then process with deb-bootc-image-builder
```
## Development Workflow
1. **Modify Containerfiles**: Adjust package selection, configuration, or features
2. **Build Containers**: Test your changes with `podman build`
3. **Test Integration**: Verify OSTree and bootc compatibility
4. **Create Images**: Use deb-bootc-image-builder to create bootable images
5. **Test Boot**: Verify the images boot correctly in QEMU or on hardware
## Contributing
When adding new container variants:
- Follow the existing naming convention
- Include comprehensive documentation
- Test OSTree and bootc integration
- Update this readme with new variant information
- Ensure compatibility with deb-bootc-image-builder
## Related Documentation
- **Main README**: Project overview and getting started
- **HACKING.md**: Development guidelines
- **Recipes**: YAML configuration files for image building
- **OSTree Workspace**: OSTree development and testing tools
---
*These containerfiles represent the foundation of Particle OS - a Debian-native approach to immutable operating systems, built with the same principles as Fedora Atomic but adapted for the Debian ecosystem.*