Nebula-Sync安装与配置指南
1. 项目基础介绍
Nebula-Sync 是一个开源项目,用于同步 Pi-hole v6.x 实例的配置。该项目并不是官方 Pi-hole 项目的一部分,但它使用了 Pi-hole 实例提供的 API 来执行同步操作。Nebula-Sync 支持完全同步和选择性同步功能,并且可以通过 cron 计划任务来执行。
主要编程语言
该项目主要使用 Go 语言编写。
2. 项目使用的关键技术和框架
- Go 语言: 项目的主要编程语言,用于实现同步逻辑和 HTTP 请求。
- Pi-hole API: 使用 Pi-hole 提供的 API 进行配置的同步。
- 环境变量: 通过环境变量配置项目运行参数,支持灵活的配置管理。
- Cron 作业: 支持通过 cron 调度同步任务。
3. 项目安装和配置的准备工作
在开始安装之前,请确保您的系统中已安装以下工具:
- Go 编程环境(至少1.16版本)
- Docker(推荐,但非必须)
- Git
详细安装步骤
步骤 1: 克隆项目
首先,您需要从 GitHub 克隆项目到本地:
git clone https://github.com/lovelaze/nebula-sync.git
cd nebula-sync
步骤 2: 安装依赖
在项目目录中,使用 go mod
命令安装依赖:
go mod tidy
步骤 3: 构建项目
使用以下命令构建项目:
go build -o nebula-sync main.go
构建完成后,您将在当前目录下得到一个名为 nebula-sync
的可执行文件。
步骤 4: 配置环境变量
在开始同步之前,您需要设置一些环境变量。这些变量可以在 .env
文件中设置,或者直接在命令行中指定。
以下是一些必须的环境变量:
PRIMARY
: 指定主 Pi-hole 实例的地址和密码。REPLICAS
: 指定副本 Pi-hole 实例的地址和密码,以逗号分隔。
例如,您的 .env
文件可能如下所示:
PRIMARY=http://ph1.example.com|password
REPLICAS=http://ph2.example.com|password,http://ph3.example.com|password
FULL_SYNC=true
CRON=0 * * * *
步骤 5: 运行同步
使用以下命令运行同步:
./nebula-sync run
或者,如果您设置了 .env
文件,可以省略 --env-file
参数:
./nebula-sync run --env-file .env
使用 Docker
如果您希望使用 Docker,可以创建一个 docker-compose.yml
文件,如下所示:
version: '3.8'
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 * * * *
restart: always
然后,使用以下命令启动服务:
docker-compose up -d
以上步骤将帮助您成功安装和配置 Nebula-Sync,以同步您的 Pi-hole 实例配置。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考