nebula-sync: Effortlessly Synchronize Your Pi-hole Configurations
Summary
nebula-sync is a powerful tool designed to synchronize configurations across multiple Pi-hole v6.x instances. Developed in Go, it offers both full and selective synchronization options, ensuring your ad-blocking setup remains consistent and up-to-date across your network. This project simplifies the management of distributed Pi-hole deployments.
Repository Info
Tags
Click on any tag to explore related repositories
Introduction
Managing multiple Pi-hole instances can be a challenge, especially when striving for consistent configurations across all your devices. nebula-sync addresses this by providing a robust solution to synchronize settings between your primary Pi-hole v6.x instance and its replicas. Built in Go, this community-maintained project offers flexible synchronization options, from full Teleporter imports to granular control over specific settings, making multi-Pi-hole management significantly easier.
Installation
nebula-sync offers several convenient installation methods to get you started:
Linux/OSX binary
Download the binary from the latest release or build from source:
go install github.com/lovelaze/nebula-sync@latest
Run the binary:
# run
nebula-sync run
# read envs from file
nebula-sync run --env-file .env
Docker Compose (recommended)
---
services:
nebula-sync:
image: ghcr.io/lovelaze/nebula-sync:latest
container_name: nebula-sync
environment:
- PRIMARY=http://ph1.example.com|password
- REPLICAS=http://ph2.example.com|password,http://ph3.example.com|password
- FULL_SYNC=true
- RUN_GRAVITY=true
- CRON=0 * * * *
Docker CLI
docker run --rm \
--name nebula-sync \
-e PRIMARY="http://ph1.example.com|password" \
-e REPLICAS="http://ph2.example.com|password" \
-e FULL_SYNC=true \
-e RUN_GRAVITY=true \
ghcr.io/lovelaze/nebula-sync:latest
Examples
For practical configuration examples, including environment variables and Docker Compose setups, refer to the examples directory within the repository. Additionally, nebula-sync supports webhooks, allowing you to integrate with services like healthcheck.io or Apprise for notifications on sync success or failure. Detailed webhook configuration examples are available in the project's README.
Why Use nebula-sync?
nebula-sync is an invaluable tool for anyone running multiple Pi-hole instances. It eliminates the tedious manual process of updating each Pi-hole individually, ensuring all your ad-blocking and DNS configurations are identical across your network. Key features include:
- Full Sync: Utilize Pi-hole's Teleporter for comprehensive synchronization of all settings.
- Selective Sync: Gain granular control by synchronizing only specific features, such as DNS settings, ad lists, or client configurations.
- Cron Schedule: Automate your synchronization tasks by setting up a cron schedule, ensuring your Pi-hole replicas are always up-to-date without manual intervention.
Links
- GitHub Repository: https://github.com/lovelaze/nebula-sync