Bouwer is a simple desktop interface for building customized OpenWrt firmware images using the official image builders and package repositories.
Bouwer means builder in Dutch.
- Allows easy configuration of installed packages, setting the size of the root filesystem, disabling unwanted services, and including a filesystem overlay with your custom files.
- Uses official OpenWrt image builder images (via Podman or Docker).
- Stores and loads your build configurations as presets, making it easy to reuse settings for newer OpenWrt versions.
- Caches OpenWrt profile metadata, packages, and image builders to speed up subsequent operations.
- Supports OpenWrt version 21.02 and above, including release candidates.
A working internet connection.
A working installation of Podman or
Docker. Bouwer uses these
container engines to run OpenWrt image builder containers. On Linux use your
package manager, on Windows - the official websites to install either of them.
Additionally, on Linux, Docker must be accessible without super user
privileges, by e.g. adding your user to the docker group.
1 to 3 gigabytes of free disk space for each target and free disk space for the firmware images.
Currently, modern Linux and Windows running on x86/64 are supported. macOS on aarch64 is doable, but there's no practical way for me to test this at the moment, although the basic macOS-specific hooks are there.
Download prebuilt binaries from the release page.
Important
Bouwer must not be run with super user or administrator privileges.
Note
Ensure Podman or Docker is running before starting Bouwer.
The UI is self-explanatory with some elements having tooltips on hover.
After you select a version and a profile, if the relevant image builder has not been cached yet, you can download it by clicking the Download image builder button.
Once an image builder is downloaded, you can customize the firmware and press Build firmware. When done, click Open build folder to locate your freshly-built firmware images.
You can save your customization using Save preset to be reused for later builds.
Important
When setting the build folder, use a new one, that's not shared with any other applications, to avoid permission errors when mounting volumes in a container.
You will need a Rust toolchain installed along with OS-specific Slint dependencies.
-
Clone the repository:
git clone https://github.com/georgesapkin/bouwer.git cd bouwer -
Build the application:
cargo build --release
The executable will be located in target/release/.
- After loading a preset, the profile text box loses the visual focus indicator, even though it's focused.
Copyright (C) 2026 George Sapkin
GNU General Public License v3.0 only
