108 lines
2.7 KiB
Markdown
108 lines
2.7 KiB
Markdown
# Simple CLI
|
|
|
|
A simple, CLI-focused Debian-based particle-os system built on Universal Blue's framework. Simple CLI provides a minimal, immutable Linux distribution optimized for command-line usage and server workloads.
|
|
|
|
## Features
|
|
|
|
- **Immutable Filesystem**: Built on OSTree for reliable, atomic updates
|
|
- **Container-Native**: Built as a container image, deployed with bootc
|
|
- **Minimal Footprint**: Focused on essential CLI tools and system utilities
|
|
- **Modern Boot**: Uses bootupd for modern bootloader management
|
|
- **Debian Base**: Built on Debian Trixie for stability and package availability
|
|
|
|
## Quick Start
|
|
|
|
### Building the Image
|
|
|
|
```bash
|
|
# Clone the repository
|
|
git clone https://github.com/your-username/simple-cli.git
|
|
cd simple-cli
|
|
|
|
# Build the container image
|
|
just build
|
|
|
|
# Test the image
|
|
just test
|
|
|
|
# Generate bootable images
|
|
just generate-bootable
|
|
```
|
|
|
|
### Using the System
|
|
|
|
```bash
|
|
# Show system information
|
|
ujust info
|
|
|
|
# Check OSTree status
|
|
ujust ostree-status
|
|
|
|
# Update the system
|
|
ujust update
|
|
|
|
# View system services
|
|
ujust services
|
|
```
|
|
|
|
## Architecture
|
|
|
|
Simple CLI follows the particle-os architecture:
|
|
|
|
1. **Container Image**: The OS is built as a container image using the Containerfile
|
|
2. **OSTree Deployment**: Container images are converted to OSTree commits
|
|
3. **Bootable Images**: bootc-image-builder creates bootable disk images
|
|
4. **System Management**: bootupd handles bootloader updates and management
|
|
|
|
## Directory Structure
|
|
|
|
```
|
|
simple-cli/
|
|
├── Containerfile # Main container build definition
|
|
├── recipe.yml # particle-os recipe configuration
|
|
├── justfile # Build automation commands
|
|
├── config/ # System configuration files
|
|
├── usr/ # User space configurations
|
|
├── etc/ # System-wide configuration
|
|
├── build_files/ # Build-time specifications
|
|
└── .github/workflows/ # CI/CD automation
|
|
```
|
|
|
|
## Development
|
|
|
|
### Prerequisites
|
|
|
|
- Podman or Docker
|
|
- Just command runner
|
|
- bootc-image-builder (for bootable image generation)
|
|
|
|
### Setup Development Environment
|
|
|
|
```bash
|
|
just setup-dev
|
|
```
|
|
|
|
### Available Commands
|
|
|
|
```bash
|
|
just --list
|
|
```
|
|
|
|
## Contributing
|
|
|
|
1. Fork the repository
|
|
2. Create a feature branch
|
|
3. Make your changes
|
|
4. Test with `just test`
|
|
5. Submit a pull request
|
|
|
|
## License
|
|
|
|
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
|
|
|
|
## Acknowledgments
|
|
|
|
- Built on [particle-os](https://github.com/particle-os) framework
|
|
- Inspired by [Aurora](https://github.com/particle-os/aurora) and other particle-os projects
|
|
- Uses [bootc](https://github.com/containers/bootc) for container-native boot
|
|
- Powered by [OSTree](https://ostreedev.github.io/ostree/) for immutable filesystems
|