Automated builder for Freetz-NG, built for continuous integration of custom firmware configurations for FRITZ!Box devices. This repo checks upstream changes, applies local configs, builds the firmware, renames artifacts with commit metadata, and pushes build state updates—all in a single CI pipeline.
-
Fork or clone this repository to your own GitHub account.
-
Configure GitHub Secrets for notifications (optional):
TELEGRAM_TOKEN
andTELEGRAM_CHAT_ID
: For Telegram notificationsDISCORD_WEBHOOK
: For Discord notificationsMATTERMOST_WEBHOOK
: For Mattermost notifications
-
Configure Workflow permissions
- Ensure that your Workflow permissions are set to
Read and write permissions
- Ensure that your Workflow permissions are set to
-
Add your custom configurations:
- Place your Freetz-NG
.config
file in theconfigs/
directory
- Place your Freetz-NG
The build process can be triggered in two ways:
-
Scheduled Builds: The workflow runs automatically at 2:00 AM UTC daily, checking for upstream changes and building if necessary.
-
Manual Builds: You can trigger a build manually through the GitHub Actions interface using the "workflow_dispatch" event.
-
Modify build parameters in the
build.sh
script to adjust how the firmware is built. -
Self-hosted runners: The workflow is configured to run on self-hosted runners. Make sure your runner has sufficient resources for building firmware images.
After a successful build:
- Navigate to the Actions tab in your GitHub repository
- Select the completed workflow run
- Download the firmware artifact which contains the
.image
files
The firmware files are automatically named with commit metadata, making them easy to identify and trace back to specific builds.
- Freetz-NG: Framework for building custom firmware images for AVM FRITZ!Box devices.
- GitHub Actions: Automates the pull, build, and push steps via CI.
- GNU Make: Used for invoking Freetz-NG builds via
make
. - Busybox: Used as part of the build toolchain inside Freetz.
- Webhook Notifications: Optional real-time notifications integrated using POST hooks to services like:
.
├── configs/ # Custom configuration files for different devices
├── .github/
│ └── workflows/ # CI/CD workflow definitions
This project is licensed under the MIT License - see LICENSE for more details.