市面上的主流CDN平台功能强大,但大多封闭、托管,运行在你掌控之外的基础设施上。CDNLite反其道而行,它是一个开源、可自托管的私有CDN控制平面与边缘平台,专为那些希望在CDN、DNS、WAF、缓存、SSL及边缘节点运营上获得更多控制权的团队而设计。

它的定位很明确:不是要替代Cloudflare、Fastly或Akamai这样的商业巨头,而是为那些想跑自己私有CDN风格平台的团队,提供一个可落地的基础框架。这个出发点本身就很有意思——它瞄准的不是通用市场,而是一个特定需求:当你需要更高可见度和可审计性来管理私有CDN、DNS、WAF、SSL、缓存及边缘基础设施时,你有什么选择?

CDNLite把私有CDN平台的核心组件打包到了一起:域名生命周期管理、纯DNS与代理模式、PowerDNS和DNSGeo发布、基于OpenResty/Lua的边缘代理、缓存规则与清理流程、WAF规则与速率限制、IP访问控制、ACME DNS-01 SSL自动化流程、边缘节点注册与心跳检测、签名边缘代理同步、安全事件与审计日志、健康检查与运营报告。前端是Vue仪表板,控制平面用PHP编写,后端数据库是PostgreSQL。

这套技术栈的选择透露了设计者的务实思路——OpenResty/Lua处理边缘代理的高性能需求,PowerDNS搞定DNS层面的灵活发布,PostgreSQL则保证审计日志和配置数据的可靠性。没有引入额外的复杂中间件,组件之间的职责切分清晰。自建CDN最让人头疼的往往不是单个功能,而是把这些分散的模块拼成一个可运维的整体,CDNLite试图解决的正是这个集成问题。

谁适合用这套工具?目标用户画像很具体:正在构建私有CDN或边缘服务的主机提供商、想要拥有自己CDN层的企业、管理内部边缘基础设施的DevOps和平台团队、进行受控生产实验的实验室,以及正在学习CDN、DNS、WAF、PowerDNS、DNSGeo和OpenResty架构的工程师。最后这类用户值得注意——CDNLite不仅是生产工具,也是一个学习上述技术栈实际运作方式的参考实现。

创造者为什么要做这个项目?他的观察是:很多团队从NGINX起步,配合几个脚本和手动DNS修改,初期确实能跑起来。但过了某个阶段,你会发现自己需要的远不止一个反向代理——域名管理、DNS发布、边缘健康检查、缓存策略、WAF规则、SSL自动化、审计历史、安全事件追踪、运营可视性,这些需求会逐一浮现。CDNLite就是要把这些分散的组件整合到一个自托管平台里。

这个观察其实反映了私有CDN建设中的普遍痛点:功能需求是渐进式涌现的,团队往往在没有统一控制平面之前,靠各种脚本和手工操作硬撑。等到规模上来,碎片化管理的代价开始显现,但那时候再整合已经比一开始就做架构规划要难得多。CDNLite提供的是一套预集成的方案,让团队可以跳过从零拼装的过程。

上手方式也很直接:复制.env.example到.env,然后执行docker compose up -d --build启动服务。分别访问http://localhost:8080/health和http://localhost:8081/health确认健康状态后,打开http://localhost:8082就能看到仪表板。本地开发环境预设的凭证是admin/admin,不过这个凭证仅限本地开发使用,绝对不要用在共享或生产环境里。

项目目前的状态被定义为适合实验室、演示、私有部署和受控生产实验。对于严肃的生产环境,创建者明确建议运营者自行审查加固、TLS配置、密钥轮换、备份、监控、认证和网络隔离等方面。这种坦诚的定位反而让人放心——它不假装自己是开箱即用的生产级方案,而是诚实地告诉你还需要做哪些功课。

路线图上规划的功能包括:基于角色的访问控制、OIDC/SAML单点登录、更强的租户隔离、Prometheus和Grafana监控改进、Kubernetes和Helm部署支持、Terraform示例、高可用控制平面文档,以及更多的WAF、缓存和部署策略模板。这些计划中的功能指向了企业级部署的实际需求,尤其是SSO和租户隔离这两项,对于多团队共享的平台来说几乎是刚需。

CDNLite采用MIT许可证发布,代码仓库在github.com/vaheed/CDNLite。创建者表示期待来自CDN基础设施、DNS自动化、WAF规则、OpenResty、托管平台或自托管边缘基础设施领域从业者的反馈。对于一个正在演进中的开源项目而言,社区的实际使用场景和痛点反馈,往往比代码本身更能决定它未来的方向。