Skip to content

OpenOS-Project-OSP/incus-image-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 

Repository files navigation

incus-image-server

A unified simplestreams image server for LXC/LXD/Incus, with a multi-distro build pipeline and live-ISO remastering support.

Structure

incus-image-server/
├── server/              # Elixir/Phoenix simplestreams server (polar base)
├── manifests/           # Distrobuilder YAMLs + wrapper scripts
├── chromiumos-stage3/   # Arch-agnostic ChromiumOS stage3 builder
├── penguins-eggs/       # ChromiumOS family support for penguins-eggs
└── demo-server/         # Deployment wrapper for incus-demo-server
    ├── config/          # Site-local configuration template
    ├── systemd/         # systemd service unit
    ├── scripts/         # install.sh and setup-incus.sh
    └── README.md

Components

server/

Phoenix application serving the simplestreams protocol for LXC, LXD, and Incus.

  • Multi-tenant spaces with per-space credential generation
  • Storage-backend agnostic: S3/S3-compatible or local filesystem
  • Direct multipart upload endpoint alongside CI/CD publish pipeline
  • No architecture or distro constraints in the data model

manifests/

Distrobuilder YAML manifests and wrapper scripts covering:

  • Debian, Ubuntu, Devuan, Alpine, Arch Linux
  • Fedora, AlmaLinux, Rocky Linux, openSUSE
  • Gentoo (OpenRC + systemd, container + VM)
  • ChromiumOS (via stage3 wrapper script)
  • Talos Linux (VM only, via wrapper script)

chromiumos-stage3/

Parameterized ChromiumOS stage3 builder derived from sebanc/chromiumos-stage3. Supports amd64 (reven board) and arm64 (generic + hardware-specific boards from openFyde). Board configurations are in boards/.

penguins-eggs/

ChromiumOS family backend for penguins-eggs live-ISO remastering tool. Covers package management via Portage + Chromebrew, derivative detection, and browser flavour selection.

demo-server/

Deployment wrapper for incus-demo-server, the backend powering the Incus online try-it service. Provides a config template, systemd unit, and install/setup scripts.

See demo-server/README.md for setup instructions.

Build & Publish CI

The build-and-publish.yml workflow builds images for all supported distros and boards on a weekly schedule (Sunday 02:00 UTC) and on pushes to main.

ChromiumOS / reven board notes:

  • The reven (amd64) board sources its stage3 tarball from sebanc/chromiumos-stage3. The build will skip gracefully if no release exists yet rather than failing.
  • The arm64-generic board sources its tarball from releases published by this repo's own CI. Until the first release is published, that build is skipped automatically.

Talos board notes:

  • Talos image builds require loop device access. GitHub-hosted runners do not provide this; the Talos matrix entry will fail on standard runners and requires a self-hosted runner with the appropriate kernel capabilities.

Sources

Component Upstream
server upmaru/polar
server upload Hye-Ararat/Image-Server
manifests/ubuntu.yml f-bn/incus-images
manifests/gentoo/ liangyongxiang/my-gentoo-incus-scripts
chromiumos-stage3 (amd64) sebanc/chromiumos-stage3
chromiumos-stage3 (arm64) openFyde overlays
penguins-eggs distro matrix Interested-Deving-1896/penguins-eggs

About

Mirrored from Interested-Deving-1896/incus-image-server

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors