No description
Find a file
robojerk 2e4acff6de
Some checks failed
Comprehensive CI/CD Pipeline / Build and Test (push) Successful in 16m26s
Comprehensive CI/CD Pipeline / Security Audit (push) Failing after 7s
Comprehensive CI/CD Pipeline / Package Validation (push) Successful in 53s
Comprehensive CI/CD Pipeline / Status Report (push) Has been skipped
Fix apt-ostree container installation failure
- Enhanced check_systemd() function to properly detect container environments
- Added detection for Docker, Podman, and other container runtimes
- Verify systemd is running as PID 1 before attempting service operations
- Check systemd D-Bus availability before service configuration
- Gracefully skip systemd setup in containers with helpful messages
- Provide manual configuration instructions for real systems

Fixes container builds and CI/CD pipelines that install apt-ostree
while maintaining full functionality on real systems with systemd.
2025-09-08 12:06:23 -07:00
.cargo fix: resolve Rust compiler crash in CI environment 2025-09-01 23:35:31 -07:00
.forgejo feat: try FORGEJO_RUN_NUMBER for CI build identification 2025-08-19 12:08:36 -07:00
.github/workflows Fix YAML linting issues and update system requirements to Debian 13+ 2025-08-18 11:39:58 -07:00
benches feat: Implement comprehensive performance optimization system 2025-08-16 14:27:28 -07:00
daemon fix: Resolve compilation errors in parallel and cache modules 2025-08-16 15:10:00 -07:00
debian Fix apt-ostree container installation failure 2025-09-08 12:06:23 -07:00
docs 🎉 MAJOR MILESTONE: Bootc Lint Validation Now Passing! 2025-08-21 21:21:46 -07:00
examples docs: create comprehensive integration howto for external tools 2025-08-19 11:55:41 -07:00
scripts updated post commit to stop infinite loop 2025-08-21 17:17:58 -07:00
src Add bootc-compatible labels implementation and debugging improvements 2025-09-02 12:35:50 -07:00
target-ci Add bootc-compatible labels to container-encapsulate 2025-09-02 11:58:47 -07:00
tests Fix YAML linting issues and update system requirements to Debian 13+ 2025-08-18 11:39:58 -07:00
.gitignore improve: enhance rootfs command robustness and flexibility 2025-09-01 18:14:38 -07:00
.yamllint Fix YAML linting issues and update system requirements to Debian 13+ 2025-08-18 11:39:58 -07:00
build-ci.sh Add bootc-compatible labels to container-encapsulate 2025-09-02 11:58:47 -07:00
build-debian-trixie.sh feat: improve CI/CD package naming and build script functionality 2025-08-19 11:38:07 -07:00
Cargo.toml fix: resolve Rust compiler crash in CI environment 2025-09-01 23:35:31 -07:00
CHANGELOG.md Add bootc-compatible labels to container-encapsulate 2025-09-02 11:58:47 -07:00
clear-changelog.sh Major cleanup and optimization: Remove unused dependencies, clean build artifacts, and improve project structure 2025-08-19 10:51:37 -07:00
CONTAINER_FIX_IMPLEMENTATION.md Fix apt-ostree container installation failure 2025-09-08 12:06:23 -07:00
CONTAINER_FIX_SUMMARY.md Fix apt-ostree container installation failure 2025-09-08 10:41:11 -07:00
debian-treefile.yaml updated post commit to stop infinite loop 2025-08-21 17:17:58 -07:00
minimal-treefile-with-kernel.yaml improve: enhance rootfs command robustness and flexibility 2025-09-01 18:14:38 -07:00
minimal-treefile.yaml 🎉 MAJOR MILESTONE: Bootc Lint Validation Now Passing! 2025-08-21 21:21:46 -07:00
README.md 🎉 MAJOR MILESTONE: Bootc Lint Validation Now Passing! 2025-08-21 21:21:46 -07:00
test-debian-build.sh Getting ready to move out of heavy alpha development. Created ci/cd 2025-07-22 04:43:43 +00:00
todo 🎉 MAJOR MILESTONE: Bootc Lint Validation Now Passing! 2025-08-21 21:21:46 -07:00

apt-ostree

apt-ostree is a Debian/Ubuntu equivalent of rpm-ostree, providing atomic system updates, package management, and container image generation for Debian-based systems.

🎉 Major Milestone Achieved: Bootc Image Generation 100% Working!

The project has successfully implemented a complete bootc image generation system that creates OCI-compatible container images from OSTree trees. This feature enables users to generate container images that can be used with bootc and other container orchestration systems.

What's Working Now

  • Complete bootc image generation with OCI/Docker export
  • Full OSTree integration for atomic deployments
  • Real APT package management with dependency resolution
  • System management commands (status, upgrade, rollback)
  • Tree composition from YAML treefiles
  • Multi-format container export (Docker archive, OCI)

🔄 In Progress

  • D-Bus infrastructure for client-daemon communication
  • Real-time transaction management
  • Enhanced system monitoring

Features

🐳 Container Image Generation

# Generate a bootc-compatible container image
apt-ostree compose tree treefile.yaml --container --verbose

# The generated image includes:
# - Complete Debian system with APT tools
# - Bash shell and core utilities  
# - Systemd init system
# - All requested packages and dependencies
# - OCI-compatible metadata

📦 Package Management

# Install packages
apt-ostree install firefox-esr

# Search for packages
apt-ostree search "web browser"

# Uninstall packages
apt-ostree uninstall firefox-esr

🖥️ System Management

# Check system status
apt-ostree status

# Perform system upgrade
apt-ostree upgrade

# Rollback to previous deployment
apt-ostree rollback

🌳 Tree Composition

# Example treefile.yaml
ref: debian/13/x86_64
repos:
  - name: debian
    url: http://deb.debian.org/debian
packages:
  include:
    - bash
    - systemd
    - firefox-esr

Quick Start

Prerequisites

  • Debian 13+ or Ubuntu 24.04+
  • OSTree installed and configured
  • Podman or Docker for container operations

Installation

# Clone the repository
git clone https://github.com/your-org/apt-ostree.git
cd apt-ostree

# Build the project
cargo build --release

# Test bootc image generation
./test-compose-container.sh

Generate Your First Image

# Create a minimal system
apt-ostree compose tree minimal-treefile.yaml --container --verbose

# Load and test the image
podman load -i output/test_minimal.tar
podman run --rm localhost/test/minimal:latest echo "Hello from bootc!"

Architecture

┌─────────────────┐    D-Bus    ┌─────────────────┐
│   CLI Client   │ ←────────→   │  apt-ostreed   │
│  (apt-ostree)  │              │    Daemon      │
└─────────────────┘              └─────────────────┘
        │                                │
        │                                │
        ▼                                ▼
┌─────────────────┐              ┌─────────────────┐
│  OSTree Tree   │              │  APT Package    │
│  Composition   │              │  Management     │
└─────────────────┘              └─────────────────┘
        │                                │
        │                                │
        ▼                                ▼
┌─────────────────────────────────────────────────┐
│            Container Generation                │
│         (OCI/Docker Export)                   │
└─────────────────────────────────────────────────┘

Documentation

Development

Containerized Development Environment

# Build development container
podman build -f Dockerfile.test -t apt-ostree-test .

# Interactive development
podman run --rm -it --privileged -v $(pwd):/workspace:z apt-ostree-test bash

# Run tests
cargo test
cargo check

Testing

# Run the comprehensive test suite
./test-compose-container.sh

# Individual component tests
cargo test --package apt-ostree

# Performance benchmarks
cargo bench

Performance

Build Performance

  • Minimal system: 2-3 minutes
  • Full desktop: 10-15 minutes
  • Memory usage: 2-4GB during builds
  • Disk usage: 5-10GB temporary space

Generated Images

  • Minimal system: ~358MB
  • Startup time: <5 seconds
  • Memory footprint: 50-100MB base
  • Full OCI compliance: Compatible with all OCI tools

Status

Completed (100%)

  • Bootc image generation
  • OSTree tree composition
  • APT package management
  • System management commands
  • Container export formats
  • End-to-end testing

🔄 In Progress

  • D-Bus daemon communication
  • Real-time transaction management
  • Enhanced error handling

Planned

  • Multi-architecture support
  • Performance monitoring
  • CI/CD integration
  • Registry push capabilities

Contributing

We welcome contributions! Please see our Development Guide for details on:

  • Setting up the development environment
  • Code style and standards
  • Testing requirements
  • Pull request process

Areas of Focus

  • Core functionality: Command implementations
  • Testing: Test coverage and validation
  • Documentation: User and developer guides
  • Performance: Optimization and benchmarking

License

This project is licensed under the GPL-3.0-or-later License - see the LICENSE file for details.

Acknowledgments

  • rpm-ostree: Inspiration and reference implementation
  • OSTree: Core atomic update system
  • Debian/Ubuntu: Target platform and package ecosystem
  • Rust community: Language and ecosystem support

Support


apt-ostree - Bringing atomic updates and container generation to Debian systems! 🚀