Add comprehensive documentation, live-build configuration, and testing framework
Some checks failed
Build Simple CLI / build (push) Failing after 1s

- Add community release and integration documentation
- Add production deployment and testing framework guides
- Add live-build configuration with hooks and package lists
- Add VM management and testing scripts
- Update .gitignore to block build artifacts and large files
- Remove old bootc package file
- Add comprehensive project completion summary
This commit is contained in:
joe 2025-08-19 20:54:58 -07:00
parent 9e9d4ea8d2
commit d0d29139e5
52 changed files with 2994 additions and 162 deletions

267
README.md
View file

@ -1,182 +1,149 @@
# Simple CLI - Particle-OS Development System
# Particle-OS Simple-CLI
Simple CLI is a Debian-based Particle-OS system focused on providing a clean, CLI-oriented development environment with container-based development tools.
## Overview
Particle-OS Simple-CLI is a development and testing environment that demonstrates the core Particle-OS concepts working together. It inherits directly from the Debian Atomic foundation and integrates all three core Particle-OS tools:
- **apt-ostree**: Atomic package management
- **bootupd**: Bootloader update management
- **bootc**: Container deployment and management
## Architecture
```
Debian Atomic (proven foundation)
Particle-OS Simple-CLI
Integrated tools: apt-ostree + bootupd + bootc
```
## Features
- **Base System**: Debian Trixie with OSTree
- **Container Runtime**: Podman with full container support
- **Development Tools**: Both Toolbox and Distrobox for development environments
- **Build System**: Just-based automation with comprehensive recipes
- **Immutable Design**: Atomic updates with rollback capability
- **Clean Architecture**: Direct inheritance from Debian Atomic
- **Tool Integration**: All three Particle-OS tools working together
- **Concept Proofing**: Atomic update workflow demonstrated
- **SSH Access**: Remote access configured and ready
- **OSTree Foundation**: Full OSTree system with all features
## Development Environments
## Quick Start
Simple CLI provides two powerful development environment tools:
### Build the Container
### 1. Toolbox (Official Debian Package)
Toolbox is the official container-based development environment tool, tightly integrated with the system.
#### Quick Start
```bash
# Create a development environment
toolbox create dev
# Enter the development environment
toolbox enter dev
# Install development tools
apt update
apt install gcc make git python3-pip
# Work on projects without affecting the immutable host
just build-with-tools-ssh
```
#### Features
- **Native Debian integration** - Uses Debian Trixie containers
- **Host filesystem access** - Full access to your home directory
- **Package management** - Use APT to install any tools
- **System integration** - Access to host network, USB devices, display
### 2. Distrobox (Community Alternative)
Distrobox provides additional flexibility and cross-distribution support.
#### Quick Start
```bash
# Create a development environment
distrobox create dev --image debian:trixie
# Enter the development environment
distrobox enter dev
# Install development tools
apt update
apt install build-essential git python3-pip
# Work on projects with full flexibility
```
#### Features
- **Cross-distribution support** - Can use Ubuntu, Fedora, or other images
- **Advanced container management** - More flexible than Toolbox
- **Multiple backends** - Supports both Docker and Podman
- **Custom configurations** - Highly configurable for specific needs
## Using Just Commands
Simple CLI includes comprehensive Just-based automation:
### Test the Integration
```bash
# Setup development environment
just setup-dev
# Create development environments
just create-dev-toolbox # Create Toolbox environment
just create-dev-distrobox # Create Distrobox environment
# Enter environments
just dev-toolbox # Enter Toolbox environment
just dev-distrobox # Enter Distrobox environment
# Test functionality
just test-toolbox # Test Toolbox
just test-distrobox # Test Distrobox
# List all environments
just list-envs # Show all development environments
# Clean up
just cleanup-envs # Remove all development environments
```
## When to Use Which Tool?
### Use Toolbox When:
- **Native Debian development** - Working with Debian-specific tools
- **System integration** - Need tight integration with host system
- **Official support** - Prefer officially supported tools
- **Simple workflows** - Basic development environment needs
### Use Distrobox When:
- **Cross-distribution** - Need tools from other distributions
- **Custom configurations** - Require specific container setups
- **Advanced workflows** - Complex development environment needs
- **Flexibility** - Want more control over container configuration
## Configuration Files
### Toolbox Configuration
- **`/etc/containers/toolbox.conf`** - Main Toolbox configuration
- **`/etc/profile.d/toolbox.sh`** - Shell integration and welcome messages
- **`/usr/lib/tmpfiles.d/toolbox.conf`** - Systemd integration
### Distrobox Configuration
- **`/etc/distrobox/docker.ini`** - Docker backend configuration
- **`/etc/distrobox/podman.ini`** - Podman backend configuration
## Building and Testing
```bash
# Build the container image
just build
# Test the image
just test
# Generate bootable image
just generate-bootable
# Full pipeline
just pipeline
```
## System Requirements
### Run the Demo
- **Container Runtime**: Podman or Docker
- **Storage**: 10GB+ for development environments
- **Memory**: 4GB+ RAM recommended
- **Architecture**: x86_64 (amd64)
```bash
./demo-concepts.sh
```
## Available Commands
- `verify-tools` - Verify all Particle-OS tools are available
- `simple-cli-welcome` - Show welcome message and available commands
- `demo-concepts.sh` - Demonstrate all tools working together
## Tool Status
| Tool | Status | Version | Notes |
|------|--------|---------|-------|
| apt-ostree | ✅ Working | 0.1.0 | 1,470 packages available |
| bootupd | ✅ Working | 0.2.28 | EFI components detected |
| bootc | ✅ Working | 1.6.0 | Container deployment ready |
| OSTree | ✅ Working | 2025.2 | Full feature set |
## Testing
### Basic Functionality Test
```bash
podman run --rm simple-cli:latest /usr/local/bin/verify-tools
```
### Concept Demonstration
```bash
podman run --rm simple-cli:latest bash -c "apt-ostree list | head -5"
podman run --rm simple-cli:latest bash -c "bootupctl status"
podman run --rm simple-clI:latest bash -c "bootc --help"
```
## Development
### Project Structure
```
simple-cli/
├── Containerfile # Container definition
├── justfile # Build automation
├── tools/ # Integrated .deb packages
├── demo-concepts.sh # Concept demonstration
├── README.md # This file
└── output/ # Generated outputs
```
### Build Recipes
- `just build-with-tools-ssh` - Build with SSH and tools
- `just test` - Test the built container
- `just clean` - Clean build artifacts
## Integration Status
### What's Working
- ✅ All three Particle-OS tools integrated
- ✅ Tools can communicate and work together
- ✅ OSTree foundation fully functional
- ✅ SSH server configured and ready
- ✅ Clean architecture proven
### What's Next
- 🚧 Bootable image creation (technical challenges)
- 🚧 QEMU testing and validation
- 🚧 End-to-end atomic update workflow
- 🚧 Production deployment
## Troubleshooting
### Common Issues
1. **Permission Denied**: Ensure your user is in the appropriate groups
```bash
sudo usermod -a -G podman $USER
newgrp podman
```
1. **Container registry issues**: Use full image IDs instead of short names
2. **Permission issues**: Run with `--privileged` flag when needed
3. **Storage access**: Mount volumes explicitly for file access
2. **Container Creation Fails**: Check container runtime status
```bash
podman system info
systemctl status podman.socket
```
### Debug Commands
3. **Network Issues**: Verify host networking
```bash
ip addr show
toolbox enter dev -- ip addr show
```
```bash
# Check tool availability
podman run --rm simple-cli:latest which bootc
### Getting Help
# Verify OSTree status
podman run --rm simple-cli:latest ostree --version
- **Toolbox**: [containertoolbx.org](https://containertoolbox.org/)
- **Distrobox**: [github.com/89luca89/distrobox](https://github.com/89luca89/distrobox)
- **Particle-OS**: Project documentation and community
# Test package management
podman run --rm simple-cli:latest apt-ostree list | head -10
```
## Contributing
Simple CLI is part of the Particle-OS project. Contributions are welcome!
This project demonstrates the core Particle-OS concepts. To contribute:
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Test with `just test`
5. Submit a pull request
1. Test the integration with different tool combinations
2. Improve the demonstration scripts
3. Add new testing scenarios
4. Document any discovered issues or solutions
## License
This project is part of Particle-OS and follows the same licensing terms.
Part of the Particle-OS project - Debian-based immutable operating system.