Need an OpenWrt image tailored to your router but do not want to maintain a local build environment? Open the Wei.G Online Customizer, choose the source, target, packages, and firmware options you need, then send the request to GitHub Actions and let the cloud do the build.

JavaScript HTML CSS Node.js Bash YAML

Quick Start

⚠️ Flashing firmware carries risk. Confirm your router model, partition layout, and flashing method first. If you are unsure, do not flash.

Background

  • [A simpler starting point] If you want to learn what goes into a custom firmware image without first setting up a full local toolchain, this project gives you an easier place to begin.
  • [Packages and dependencies] Some plugins and dependencies must be compiled into the firmware before they can be used.
  • [Configuration] OpenWrt build configuration can be time-consuming, and network conditions in mainland China can make dependency downloads especially painful.
  • [Build time] A full build can take several hours and can still fail, so troubleshooting locally is costly.
  • [Where this is going] The long-term goal is to let anyone fork the project and run their own OpenWrt build site with GitHub Pages + Actions.
  • [Current stage] The project is still being tested. Bugs are expected, and heavy use of the shared public workflow may run into GitHub policy or quota limits.

Supported Devices

The following targets are currently supported. Other devices have not yet been verified. If you do not have a recovery method, do not use this tool.

Preparation

⚠️ Flashing firmware carries risk. Confirm your router model, partition layout, and flashing method first. If you are unsure, do not flash.

1. Choose Parameters

  • After choosing a source, search for the corresponding device model or environment. You can also load a config file.

  • Select Source → Branch → Target System → Subtarget → Target Profile.

    • Example for x86/64: ImmortalWrt → openwrt-24.10 → x86 → 64 → Generic x86/64
  • Under Advanced menuconfig › LuCI › 3. Applications, select the applications you want.

  • Explore other advanced settings under Advanced menuconfig as needed.

Then configure the time zone, firmware theme, NTP servers, and package mirror as required.

Existing Configuration

If you already have a .config, config.buildinfo, or a previously downloaded request file, click Load Configuration at the bottom. In the confirmation dialog, verify the source, branch, Target Profile, plugins, and firmware settings.

2. Submit a Build

Click Submit Cloud Build in the lower-right corner.

Choose Download Request and Open GitHub. The browser downloads a JSON file and automatically opens a new GitHub Issue page.

Move the downloaded file into the Issue dialog and click Create.

The bot replies in the Issue with the Actions link for the build.

3. Download the Firmware

A build usually takes 2–4 hours. When it is complete, open the Actions page and download the artifacts at the bottom:

  • FIRMWARE-ALL-XXX: all firmware files and checksums. For a first flash, you will usually look for files such as factory.
  • CONFIG-XXX: the submitted configuration, final configuration, and differences. Keeping this is recommended.
  • BUILD-LOGS-XXX: complete build logs for troubleshooting.

FAQ

  • What if the build fails? Download BUILD-LOGS-… and check the last Error. You can also report the problem in the Issue.
  • How do I cancel? Reply with /cancel in your build Issue.
  • How many builds can run at once? One account can run only two build jobs at the same time; additional jobs must wait.
  • Why is there no download button? GitHub usually requires you to sign in before downloading Actions artifacts.
  • Long queue in the public repository? A future workflow will let you fork this project and submit builds to your own repository by following the page instructions, avoiding the shared queue.

Project: WeiG-OpenWrt-AutoBuild

Acknowledgements