Skip to content

Automation tool for building custom Freetz-NG firmware with CI/CD support.

License

Notifications You must be signed in to change notification settings

charming-byte/freetz-builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

freetz-builder

License: MIT GitHub Actions Workflow Status

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.

Table of Contents

🚀 How to Use

🛠️ Setup

  1. Fork or clone this repository to your own GitHub account.

  2. Configure GitHub Secrets for notifications (optional):

    • TELEGRAM_TOKEN and TELEGRAM_CHAT_ID: For Telegram notifications
    • DISCORD_WEBHOOK: For Discord notifications
    • MATTERMOST_WEBHOOK: For Mattermost notifications
  3. Configure Workflow permissions

    • Ensure that your Workflow permissions are set to Read and write permissions
  4. Add your custom configurations:

    • Place your Freetz-NG .config file in the configs/ directory

⚙️ Running Builds

The build process can be triggered in two ways:

  1. Scheduled Builds: The workflow runs automatically at 2:00 AM UTC daily, checking for upstream changes and building if necessary.

  2. Manual Builds: You can trigger a build manually through the GitHub Actions interface using the "workflow_dispatch" event.

🔄 Customization

  1. Modify build parameters in the build.sh script to adjust how the firmware is built.

  2. Self-hosted runners: The workflow is configured to run on self-hosted runners. Make sure your runner has sufficient resources for building firmware images.

📦 Accessing Build Artifacts

After a successful build:

  1. Navigate to the Actions tab in your GitHub repository
  2. Select the completed workflow run
  3. 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.

💻 Technologies and Tools

📁 Project Structure

.
├── configs/           # Custom configuration files for different devices
├── .github/
│   └── workflows/     # CI/CD workflow definitions

📄 License

This project is licensed under the MIT License - see LICENSE for more details.

About

Automation tool for building custom Freetz-NG firmware with CI/CD support.

Topics

Resources

License

Stars

Watchers

Forks

Languages