Cloudflare Gateway Pi-hole Scripts (CGPS) 使用指南
一、项目目录结构及介绍
此开源项目位于 GitHub,其目录结构精心设计以支持其核心功能——将Cloudflare Gateway用于广告、恶意软件和追踪域名的拦截,作为一种轻便且免费的Pi-hole替代方案。以下是主要的目录结构及其简介:
.gitignore
: 控制哪些文件或目录不被Git版本控制系统跟踪。LICENSE
: 项目使用的许可协议,说明了如何合法地使用此代码。README.md
: 项目的主要读我文件,提供了快速入门和概览信息。env.example
: 提供环境变量示例,帮助用户配置自己的环境。lib
: 包含项目的核心JavaScript脚本,如处理DNS规则创建、删除和列表管理等逻辑。cf_gateway_rule_create.js
: 创建Cloudflare Gateway防火墙规则的脚本。cf_gateway_rule_delete.js
: 删除规则的脚本。cf_list_create.js
: 创建Cloudflare列表的脚本。
auto_update_github_action.yml
: 可能是用于自动化更新操作的GitHub Actions配置文件。devcontainer
: 相关配置,用于设置开发容器,便于开发者在统一的环境中工作。
二、项目的启动文件介绍
本项目并没有传统意义上的“启动文件”,因为它的运行更多依赖于脚本执行而非持续运行的服务。关键在于使用提供的JavaScript脚本来管理和配置Cloudflare Gateway。例如,若要导入和应用过滤规则,用户需执行类似cf_gateway_rule_create.js
的脚本,之前可能需要通过环境变量或配置文件来设定必要的API密钥和目标域名列表。
三、项目的配置文件介绍
配置主要是通过环境变量和可能的自定义列表进行。尽管直接的配置文件(如特定的.cfg
或.yml
)不在明确列出的内容中,但项目利用env.example
文件作为指导,让用户了解需要设置哪些环境变量。重要变量通常包括:
- CLOUDFLARE_API_TOKEN: 访问Cloudflare API所需的令牌。
- GATEWAY_ZONE: 指定Cloudflare网关相关的域名区域。
- RULE_NAME: 防火墙规则的名称,用于识别和管理。
- 其他潜在变量根据实际需求可能还会涉及列表文件路径等。
用户应当复制env.example
为.env
(或按项目文档指定的方式),并填入真实值以启用脚本的功能。对于更细粒度的配置,如黑白名单的具体内容,可能直接通过脚本参数或外部数据文件进行管理。
请注意,操作前应详细阅读GitHub仓库中的README.md
文件,以获取最新的指令和最佳实践。