incus-contrib/README.md

82 lines
3.2 KiB
Markdown

# incu-contrib
Peripheral tools, snippets, and scripts for working with [Incus](https://linuxcontainers.org/incus/),
[IncusOS](https://linuxcontainers.org/incus-os/), and the broader ecosystem.
Primarily aimed at home lab environments but useful in production as well.
## Contents
### [`incusos/`](incusos/)
Scripts for building IncusOS installation media and seed configurations:
- **`incusos-iso`** -- Build customized IncusOS ISO/IMG images using the official flasher-tool.
Supports both architectures (x86_64, aarch64), multiple applications (Incus, Operations Center),
automatic client certificate injection, and batch generation.
- **`incusos-seed`** -- Generate IncusOS seed archives (tar or FAT image) for installation
customization. Covers all seed file types: install, applications, Incus preseed,
Operations Center, network, and update configuration.
- **`incusos-proxmox`** -- Declarative IncusOS deployment on Proxmox VE. Define VMs in
YAML, and the script handles seed generation, ISO upload, VM creation with correct
settings (UEFI, TPM 2.0, VirtIO-SCSI), and automated installation.
See [`incusos/README.md`](incusos/README.md) for full documentation.
### [`notes/`](notes/)
Research notes and reference material:
- [`incus-version-compatibility.md`](notes/incus-version-compatibility.md) --
Incus package versions across platforms (macOS, Debian/Ubuntu, Arch),
install instructions, and certificate management notes.
- [`iso-download-methods.md`](notes/iso-download-methods.md) --
Original research on ISO download/customization approaches.
- [`clustering-guide.md`](notes/clustering-guide.md) --
Detailed Incus clustering walkthrough (manual cluster formation via remotes).
- [`operations-center-guide.md`](notes/operations-center-guide.md) --
Operations Center provisioning, cluster management, and tested limitations.
- [`migration-guide.md`](notes/migration-guide.md) --
Migration paths into Incus from Proxmox, UTM, VMware Fusion, and Docker.
- [`utm-support.md`](notes/utm-support.md) --
Design document for future UTM support on macOS.
## Quick Start
```bash
# Install the flasher-tool (requires Go 1.22+)
go install github.com/lxc/incus-os/incus-osd/cmd/flasher-tool@latest
# Build a default IncusOS ISO with your client cert injected
./incusos/incusos-iso
# Build for a specific architecture and application
./incusos/incusos-iso --arch aarch64 --app operations-center --defaults
# Generate all common ISO variants at once
./incusos/incusos-iso --batch
# Generate a standalone seed archive
./incusos/incusos-seed --app incus --defaults --output my-seed.tar
# Generate a SEED_DATA FAT image for external boot media
./incusos/incusos-seed --format fat --app incus --defaults --output seed.img
```
## Requirements
- **Go 1.22+** -- for installing the flasher-tool
- **curl** -- for downloading images from the CDN
- **tar**, **gzip** -- for seed archive creation and image decompression
- **Incus client** (recommended) -- for automatic client certificate detection.
Works with any version; certificates are read directly from disk.
See [version compatibility notes](notes/incus-version-compatibility.md)
for install instructions per platform (macOS, Debian/Ubuntu, Arch).
- **mtools** (optional) -- for creating FAT seed images
## License
MIT