Skip to content
/ iona Public

An image builder for Debian/Ubuntu-based distributions.

License

Notifications You must be signed in to change notification settings

RudraSwat/iona

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Iona

An image builder for Ubuntu remixes (currently supports building ISOs, squashfses and tarballs).

Requirements

You must run Debian, Ubuntu, or a derivative of either distribution. Alternatively, you could install Ubuntu on WSL2 if you're on Windows by following the guide here.

Install the required packages by running the following commands:

sudo apt update
sudo apt install mmdebstrap systemd-container arch-install-scripts cd-boot-images-amd64

Usage

sudo ./iona <PATH_TO_YAML_FILE>

Configuration format

Taking the example of an installable Ubuntu 24.04 remix with GNOME, openssh-server, and nginx:

name: 'Ubuntu Sample' # Name of remix

codename: 'noble' # Ubuntu release codename

repos: # Repositories
    - url: 'http://archive.ubuntu.com/ubuntu' # Repository URL
      components: # Repository components
        - 'main'
        - 'universe'
        - 'multiverse'
        - 'restricted'
      suites: # Repository suits
        - 'noble'
        - 'noble-updates'
      deb-src: false # true if this were a deb-src repo entry (for pulling source packages with APT)

    - url: 'http://security.ubuntu.com/ubuntu'
      components:
        - 'main'
        - 'universe'
        - 'multiverse'
        - 'restricted'
      suites:
        - 'noble-security'
      deb-src: false

pre-workarounds:
    - name: 'command' # to run commands before the packages in the next section are installed
      command: 'apt-get update; apt-get install -y wget; wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc'

    - name: 'command'
      command: 'echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee -a /etc/apt/sources.list.d/mozilla.list'

    - name: 'command'
      command: 'echo -e "Package: *\nPin: origin packages.mozilla.org\nPin-Priority: 1000" | sudo tee /etc/apt/preferences.d/mozilla'

packages:
    - type: 'deb'
      list: # list of packages
        - 'gnome-core'
        - 'nginx'
        - 'openssh-server'
        - 'ubiquity-casper' # installer package (Ubiquity)
        - 'ubiquity-frontend-gtk' # installer package (Ubiquity)
        - 'ubiquity-slideshow-ubuntu' # installer package (Ubiquity)

post-workarounds: # similar to pre-workarounds, you can add commands here too (like in pre-workarounds)
    - name: 'ubuntu-network' # to fix certain networking issues
    - name: 'ubiquity-remove' # to remove Ubiquity (installer) packages after the system is installed

artifacts:
    - type: 'iso' # replace with 'squashfs' to generate a squashfs or 'tarball' for a tarball
      name: 'ubuntu-gnome.iso' # name of ISO/squashfs/tarball

About

An image builder for Debian/Ubuntu-based distributions.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages