6.3 KiB
Executable file
Debian Atomic
🎯 Overview
Debian Atomic is a 1:1 parallel to Fedora Atomic for the Debian ecosystem. This project implements the exact same architecture, principles, and techniques that make Fedora Atomic successful, but adapted for Debian.
🏗️ Architecture
Fedora Atomic 1:1 Parallel
Debian Atomic mirrors Fedora Atomic's architecture exactly:
- OSTree Integration: Same atomic update mechanism
- Filesystem Restructuring: Unified
/usrhierarchy implementation - Variant System: Inherit from base image (like Fedora variants)
- Package Management: Debian-native with atomic operations
- Boot Process: Same GRUB + systemd + initramfs approach
- Container Support: Native OCI container format
Variant Equivalents
| Debian Atomic | Fedora Atomic | Purpose |
|---|---|---|
| base | base-atomic | Foundation system |
| workstation | silverblue | GNOME desktop |
| kde | kinoite | KDE Plasma desktop |
| sway | sway-atomic | Sway/Wayland desktop |
| server | coreos | Server infrastructure |
🚀 How It Works
1. Build Base Image
just compose-base
2. Build Variants
# Build all variants
just compose-variants
# Build specific variant
just compose-legacy variant=workstation
just compose-image variant=kde
3. Create Bootable Images
# Create bootable ISO
just build-iso variant=workstation output=/tmp/output
📁 Directory Structure
debian-atomic/
├── treefiles/ # YAML treefile definitions (Fedora pattern)
│ ├── common.yaml # Common packages and configs
│ ├── base.yaml # Base variant definition
│ ├── workstation.yaml # GNOME desktop (Silverblue equivalent)
│ ├── kde.yaml # KDE desktop (Kinoite equivalent)
│ ├── sway.yaml # Sway desktop (Sway Atomic equivalent)
│ └── server.yaml # Server (CoreOS equivalent)
├── variants/ # Containerfile-based builds
│ ├── base/ # Base OSTree system
│ ├── workstation/ # GNOME variant
│ ├── kde/ # KDE variant
│ ├── sway/ # Sway variant
│ └── server/ # Server variant
├── scripts/ # Build and sync scripts
│ ├── comps-sync.py # Debian package group sync
│ └── bootc-image-builder.sh # ISO creation
├── justfile # Fedora-style build recipes
└── README.md # This file
🔧 Fedora Atomic Integration
1. Treefile System
Debian Atomic uses the exact same YAML treefile approach as Fedora:
# workstation.yaml (Silverblue equivalent)
include: common.yaml
ref: debian-atomic/workstation
packages:
- gnome
- gnome-shell
- gnome-session
# ... GNOME packages
2. Build System
The justfile provides Fedora-equivalent recipes:
compose-legacy: Classic OSTree commits (Fedora default)compose-image: OCI container images (Fedora's new approach)sync-comps: Debian package group sync (Fedora comps-sync equivalent)
3. Variant Inheritance
Variants inherit from base image, just like Fedora:
base → workstation (Silverblue equivalent)
base → kde (Kinoite equivalent)
base → sway (Sway Atomic equivalent)
base → server (CoreOS equivalent)
🎯 Benefits of Fedora Atomic 1:1 Parallel
1. Standards Compliance
- Follows established immutable OS patterns
- Same sophistication level as Fedora Atomic
- Compatible with Fedora Atomic tooling
2. Developer Familiarity
- Fedora Atomic developers can contribute easily
- Same workflow and concepts
- Familiar variant structure
3. Ecosystem Integration
- Can leverage Fedora Atomic documentation
- Compatible with existing tools and scripts
- Same deployment and management patterns
4. Quality Assurance
- Proven architecture from Fedora Atomic
- Same testing methodologies
- Established best practices
🚀 Quick Start
Prerequisites
# Install just command runner
sudo apt install just
# Install container tools
sudo apt install podman buildah
Build System
# Clone repository
git clone https://github.com/debian-atomic/debian-atomic
cd debian-atomic
# Show available commands
just
# Build base image
just compose-base
# Build all variants
just compose-variants
# Build specific variant
just compose-legacy variant=workstation
# Create bootable ISO
just build-iso variant=workstation output=/tmp/output
Testing
# Test specific variant
just test-variant variant=kde
# Test all variants
just test-all-variants
# Show build status
just status
🔍 Comparison: Fedora Atomic vs Debian Atomic
| Aspect | Fedora Atomic | Debian Atomic |
|---|---|---|
| Base System | Fedora + rpm-ostree | Debian + apt-ostree* |
| Package Manager | rpm-ostree | apt-ostree* |
| Architecture | OSTree + atomic layout | OSTree + atomic layout |
| Variant System | Inherit from base | Inherit from base |
| Build Process | Treefile + Pungi | Treefile + Container |
| Update Mechanism | OSTree commits | OSTree commits |
| Container Support | Native OCI | Native OCI |
*Note: apt-ostree is being developed to provide Debian package management with atomic operations, similar to rpm-ostree.
🎉 Conclusion
Debian Atomic provides a 1:1 parallel to Fedora Atomic for the Debian ecosystem. By implementing the exact same architecture, principles, and techniques, we achieve:
- Same sophistication level as Fedora Atomic
- Debian-native foundation for familiar package ecosystem
- Fedora Atomic compatibility for tooling and workflows
- Professional-grade immutable OS for Debian users
This puts Debian users on equal footing with Fedora Atomic users, providing the same advanced features, reliability, and user experience in a Debian-native way.