Automated builder for Freetz-NG. I use this setup to automate custom firmware builds for freetz-ng. This repo checks upstream changes, applies local configs, builds the firmware, renames artifacts with commit metadata, and notifies about build state updates either per telegram, mattermost or discord.
-
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 named asmy-box.config
- 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.
- Webhook Notifications: Optional real-time notifications integrated using POST hooks to services like:
This project is licensed under the MIT License - see LICENSE for more details.