Skip to content

Extensions And Integrations

This page lists the external libraries, runtime extensions, and integrations used by CDNLite.

Backend

ExtensionPurpose
PHP 8.3Core runtime and CLI command execution.
pdo_pgsqlPostgreSQL access from PHP.
PostgreSQL 16Persistent control-plane data.
OpenSSLHMAC signing and certificate workflows.
ACME directory APIAutomated certificate issuance through DNS-01 flows.
PowerDNS APIOptional authoritative DNS publishing integration.

Frontend

PackagePurpose
Vue 3Dashboard UI framework.
TypeScriptTyped dashboard application code.
ViteDevelopment server and production build.
Vue RouterDashboard routes.
PiniaClient state stores.
TanStack Query for VueAPI query caching and refresh.
Tailwind CSSStyling primitives.
Headless UI VueAccessible UI component patterns.
ECharts and Vue EChartsAnalytics charts.
Vee Validate and ZodForm validation.
Lucide Vue NextDashboard icons.
Vitest, Testing Library, PlaywrightUnit and e2e test tooling.

Edge Runtime

ExtensionPurpose
OpenRestyNginx plus Lua runtime.
Lua modules in edge/openresty/luaConfig loading, routing, proxying, TLS, metrics, WAF/rules, error pages.
Nginx cacheEdge cache behavior and purge logic.
POSIX shell agentPortable edge sync loop.
curl and opensslAgent HTTP calls and HMAC signatures.

CI And Local Mocks

ToolPurpose
Docker ComposeProduct stack and CI smoke/e2e substrate.
Bash CI scriptsSmoke, e2e, release, DNS, and edge flow checks.
Python pytestCore contract tests.
Python PowerDNS mockLocal PowerDNS-compatible endpoint for DNS publishing tests.
Nginx origin mocksHTTP and TLS origin behavior for proxy tests.

Configuration

PowerDNS settings are stored as platform settings and can be tested through:

bash
docker compose exec core php artisan cdn:settings:test-powerdns

ACME settings come from CDNLITE_ACME_* environment variables. Dashboard extensions are controlled with VITE_ENABLE_* flags at build time.

Adding New Integrations

  1. Add configuration to .env.example and docker-compose.yml.
  2. Add service code and tests.
  3. Add dashboard controls only when operators need to change or inspect the integration.
  4. Update this page, Setup, Security, and API Reference when the integration changes behavior.

Released under the MIT License.