Skip to content

OpenWRT Image Builder — is an automated builder that produces slightly customized x86-64 images containing extra packages necessary for homelab purposes, ready to bootstrap a local network without internet access.

License

Notifications You must be signed in to change notification settings

frkd-dev/openwrt-image-builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Personal customizable OpenWRT x86/64 Image Builder

This repository hosts GitHub Actions for on-demand builds of customised OpenWRT x86/64 images. This is an unofficial companion to the official OpenWRT Firmware Selector with additional features targeting only x86/64 architecture.

Want a OpenWRT x86/64 image with your packages/files/scripts?

It’s easy as 1-2-3:

  1. Fork this repo.

  2. Run Build Image action with your options.

  3. Download the image from the Action’s Artifacts section.

Bonus: GitHub has a configurable retention period for artifacts, so you can always re-download your images during this period.

Read details below.

Motivation

While the official OpenWRT Firmware Selector provides a good (for most cases) customizable image builder, it has a limitation (as of v24.10) on a rootfs partition size which is 104 MByte. Also, it doesn’t support building QEMU images in a qcow2 format.

In essence, the official builder is often a "no-go" solution for x86/64 images since such hardware is usually picked to run a bunch of resource-demanding apps. This often implies that the initial image may need a bunch of heavyweight preinstalled packages, like Docker, so images easily exceed the default rootfs size.

This image builder removes these limitations and allows you to build truly customised images, while GitHub provides on-demand build runners and temporary storage for built images.

Goals:

  1. Provide on-demand builds of customized and ready-to-use OpenWRT x86/64 images in .img and .qcow2 formats.

  2. Provide an offsite place for downloads of customized images based on stable OpenWRT releases.

  3. Provide a forkable repository (template) for building personalized OpenWRT x86/64 images.

Not goals:

  1. Support architectures other than x86/64. Custom images for embedded devices with heavily constrained resources can be easily built using the official OpenWRT Firmware Selector.

  2. Support of unstable release builds.

  3. Create a replacement for the official OpenWRT image builder.

Instructions

After forking the repository:

run action instruction
  1. Go to the "Actions" of your forked repo.

  2. Select "Build Image" action.

  3. Click "Run workflow" button.

  4. Fill required fields.

  5. Run the workflow.

  6. Once the action finished running, open the last "Build image" run to view and download artifacts.

Images

The builder produces only images of the following type:

Partition format

ext4

Image type

combined EFI .img and .qcow2

Architecture

Generic x86/64

ℹ️
For image type details and "how to install", check the official documentation.

Adding files/scripts to the image

If you need files/scripts built into the image, you can place them in files/ directory of your forked repository. The builder will copy them to the root of the image.

A good example would be a UCI defaults, a first-boot scripts. For instance, adding a files/etc/uci-defaults/99-mynetwork script to this repo containing a custom network configuration, the file will appear in /etc/uci-defaults/99-mynetwork of a rootfs, and as such it will be executed on a first boot.

New features

There are no plans to add new features, as all goals are already met so far. Features may be added once the official image builder adds new capabilities.

License

MIT License.

About

OpenWRT Image Builder — is an automated builder that produces slightly customized x86-64 images containing extra packages necessary for homelab purposes, ready to bootstrap a local network without internet access.

Resources

License

Stars

Watchers

Forks