Repository navigation
Releases: vaheed/CDNLite
Release list
CDNLite v1.7.0
CDNLite — Release Notes
Changes since v1.6.0
This release focuses on making CDNLite more production-ready by improving reporting foundations, analytics scalability, edge hot-path performance, deployment configuration, CI validation, and project documentation.
Added
-
Added Phase 1 reporting foundation:
- Database workload budgets.
- Telemetry ingest batch diagnostics.
- Reporting watermarks.
- Reconciliation tables.
- Current summary read model.
- Reporting query budget support.
- New reporting foundation database migration.
- Contract tests for reporting boundaries.
-
Added Phase 2 analytics scalability:
- Asynchronous usage recalculation jobs.
- Job status API support.
- Idempotent aggregate upserts.
- Analytics cache schema.
- Bounded summary metadata.
- Dashboard feedback for queued analytics jobs.
-
Added Phase 3 edge hot-path performance improvements:
- Worker-local config caching.
- Last-known-good config reload behavior.
- Bounded shared-memory telemetry queues.
- Queue health visibility.
- Configurable edge capacity defaults.
- Telemetry queue implementation for OpenResty edge workers.
-
Added new CI and validation tooling:
- One-shot phase runner.
- Phase manifests for Phase 1, Phase 2, and Phase 3.
- Platform stress test script.
- Stress scenario definitions.
- Expanded smoke and end-to-end validation scripts.
-
Added new database migrations and schema updates:
- Reporting foundation tables and indexes.
- Async analytics aggregation tables.
- Shared-hosting origin defaults.
- Operations report audit/range indexes.
- Config snapshot report index.
- Usage aggregate range indexes.
-
Added operations documentation:
- Database architecture guide.
- Database migration guide updates.
- Phase 1 evidence documentation.
- Expanded setup and troubleshooting docs.
Changed
- Improved collector ingestion and reporting services for better usage processing, reporting accuracy, and operational diagnostics.
- Improved analytics dashboard behavior and API typing for usage data.
- Improved DataTable and horizontal scrolling UI components.
- Updated domain origins/rules UI behavior and tests.
- Improved origin health handling and origin selection logic.
- Updated edge config loading to reduce repeated filesystem reads and improve runtime stability.
- Updated deployment examples and generated deployment output with additional environment defaults.
- Updated Docker Compose and edge/starter deployment templates.
- Reorganized roadmap documentation into a single canonical roadmap under
docs/ROADMAP.md. - Removed old duplicate roadmap files from root/docs legacy paths.
- Updated OpenAPI/API documentation, architecture docs, setup docs, and troubleshooting docs.
Fixed
- Fixed config snapshot activation/auditing behavior.
- Fixed domain rule label wording around user-modified status.
- Fixed e2e validation around config version checks.
- Improved origin fixture behavior for HTTPS/SNI validation.
- Improved verify-mode self-signed origin checks.
- Removed reliance on transient metrics spool in e2e activity lookup.
- Adjusted regression and contract tests for DNS, SSL, reporting, origin health, edge, and analytics flows.
Security
-
Added and updated security guidance around:
- Local-only defaults.
- Secret handling.
- Edge token rotation.
- TLS configuration.
- External dashboard authentication.
- PowerDNS API exposure.
Notes
This release is primarily an infrastructure, reliability, and performance release. The biggest internal changes are the new reporting/analytics foundation and the edge hot-path telemetry/config improvements. Operators should review the new database migrations and deployment environment examples before upgrading.
Full Changelog: v1.6.0...v1.7.0
CDNLite v1.6.0
CDNLite v1.6.0
CDNLite v1.6.0 focuses on production operations, managed SSL onboarding, DNS correctness, and reliable edge configuration publishing.
Highlights
Automated data retention
A new retention scheduler keeps high-volume operational tables bounded without requiring external cron configuration.
-
Added the
retention-schedulerservice to the root, starter, and split deployment configurations. -
Extended
cdn:usage:prunewith--all,--dry-run, and configurable batch sizes. -
Added independent retention periods for:
- Usage rollups
- Security events
- Successful DNS synchronization events
- Completed or failed SSL jobs
- Usage-ingest idempotency keys
- Expired edge request nonces
-
Pruning runs in bounded batches to avoid large transactions and long-held table locks.
-
Added environment settings for enabling pruning, scheduling intervals, batch sizes, and per-table retention periods.
Review the output of the following command before enabling automatic pruning on an existing production database:
php artisan cdn:usage:prune --all --dry-runSafer managed SSL onboarding
Managed certificate issuance now follows the domain verification lifecycle more closely.
- Initial managed SSL issuance is queued only after nameserver verification.
- Initial certificates cover the domain apex and wildcard hostname.
- ACME issuance now requires both an active domain and verified nameservers.
- Domains without an apex DNS record can temporarily use a system-managed SSL bootstrap record during issuance.
- Bootstrap records are uniquely tracked through the new
managed_byfield and are removed after issuance, including failure paths. - Duplicate initial SSL jobs and leftover bootstrap records are prevented.
DNS and GeoDNS improvements
- Proxied customer apex records are documented and published using direct managed
A/AAAAanswers or PowerDNS Lua edge-pool records instead of ALIAS records. - Proxied subdomains continue to use stable CDN CNAME targets.
- Proxied records may include a default-only GeoDNS payload without being incorrectly rejected.
- Explicit country or continent GeoDNS routing remains mutually exclusive with proxy routing.
- Origin validation now accepts single-label service names such as Docker or internal service hostnames.
- DNS records now include ownership metadata through the
managed_bycolumn. - Added a partial unique index to ensure only one SSL bootstrap record can exist per domain.
Reliable configuration snapshot versioning
Configuration publishing has been hardened to distinguish no-op rebuilds from genuine republishes.
- No-op rebuilds reuse the currently active snapshot when its content is unchanged.
- Republishing content that matches an older, inactive snapshot now creates a new version instead of incorrectly reactivating the historical version.
- Removed the unique constraint on snapshot content hashes so identical content can appear in separate historical versions.
- Snapshot activation and publication auditing now occur only in the appropriate publishing paths.
- Rebuilds no longer clear
active_snapshot_versionbefore generating the replacement snapshot. - Conditional configuration requests continue to return
not_modifiedwhen the active version already matches.
Correct edge host publication
- Edge configuration no longer publishes the bare domain host unconditionally.
- Hosts are generated from the domain’s active proxied DNS records.
- Apex traffic is included when an active proxied apex record exists.
- This prevents DNS-only domains or unrelated hostnames from being unintentionally exposed through the edge configuration.
PowerDNS secondary-server preparation
Added deployment configuration for authoritative DNS replication and secondary-server notifications.
- Configurable AXFR allow lists through
PDNS_ALLOW_AXFR_IPS. - Configurable PowerDNS notifications through
PDNS_ALSO_NOTIFY. - PostgreSQL WAL sender, replication-slot, WAL-retention, and TLS certificate settings.
- Updated root, starter, split-deployment, and production environment examples.
Testing and diagnostics
-
Edge status checks now bypass cached responses during end-to-end validation.
-
Failed edge readiness checks report the final HTTP status and response body.
-
Added regression coverage for:
- SSL issuance after nameserver verification
- SSL bootstrap cleanup
- Default-only GeoDNS proxy records
- Single-label origin service names
- Snapshot version reuse and republishing
- Per-record edge host publication
- Retention and DNS replication deployment contracts
Upgrade notes
Database migrations
Apply all pending migrations before restarting application services. This release includes migrations that:
- Add
dns_records.managed_by. - Add the unique SSL-bootstrap ownership index.
- Remove the unique constraint from
config_snapshots.content_hash.
Retention configuration
Automatic retention remains opt-in in the general development and root configuration. The production example enables it with production-oriented defaults.
Run a dry-run and review the reported matching rows before enabling pruning:
php artisan cdn:usage:prune --all --dry-runRelevant environment variables include:
CDNLITE_RETENTION_PRUNE_ENABLED=false
CDNLITE_RETENTION_INTERVAL_SECONDS=86400
CDNLITE_RETENTION_BATCH_SIZE=5000
CDNLITE_ANALYTICS_RETENTION_DAYS=30
CDNLITE_SECURITY_EVENT_RETENTION_DAYS=90
CDNLITE_DNS_EVENT_RETENTION_DAYS=30
CDNLITE_SSL_JOB_RETENTION_DAYS=180
CDNLITE_INGEST_KEY_RETENTION_DAYS=7Edge host behavior
The domain apex is no longer automatically included in edge configuration merely because the domain is active. Deployments that expect apex traffic at the edge should ensure the domain has an active, proxied apex DNS record.
Secondary DNS
Operators using secondary authoritative servers should configure:
PDNS_ALLOW_AXFR_IPS=SECONDARY_DNS_IP
PDNS_ALSO_NOTIFY=SECONDARY_DNS_IP:53Do not expose AXFR to untrusted networks.
Included commits
71568a3— Add retention scheduler and related deployment configuration.6b14417— Correct snapshot activation and publication auditing.feaef13— Improve managed SSL and GeoDNS handling.5d6f45a— Clarify Lua-based apex DNS publication.7628470— Add DNS record ownership migration and SSL-bootstrap index.ca901f1— Support single-label origin service names.e067836— Refactor snapshot version management and remove content-hash uniqueness.f55ba25— Improve active snapshot reuse.d39dfe8— Improve edge status checks and failure diagnostics.d94ea9f— Publish edge hosts from proxied DNS records.52c01ed— Preserve the active snapshot while rebuilding.
Full Changelog: v1.5.0...v1.6.0
CDNLite v1.5.0
CDNLite 1.5.0
CDNLite 1.5.0 is a maintenance and documentation release focused on runtime schema reconciliation, config snapshot efficiency, project documentation, contributor workflow improvements, and dashboard dependency hygiene.
Added
-
Added a runtime schema reconciliation migration for existing development volumes.
- Restores the durable
powerdns_zone_serialstable when missing. - Adds the
usage_rollups.client_ipdiagnostics column when missing. - Adds an index for client-IP-based Activity diagnostics.
- Restores the durable
-
Added repository-level documentation assets:
CHANGELOG.mdCONTRIBUTING.mdSECURITY.mdROADMAP.md- issue templates for bugs, deployment help, documentation, feature requests, and security hardening
- an expanded pull request template
-
Added new VitePress documentation pages covering:
- private CDN concepts
- production hardening
- quickstart setup
- roadmap
- glossary
- “what is CDNLite”
- enterprise readiness
Changed
-
Optimized config snapshot refresh behavior so no-op publishes update snapshot metadata without rewriting the large snapshot JSON payload.
-
Improved hardening-contract test coverage around config snapshot reuse.
-
Refactored the edge sync config test database connection path to use explicit PDO configuration, improving error visibility during test runs.
-
Reorganized roadmap documentation:
- a shorter public roadmap is available in
docs/roadmap.md - detailed historical notes are preserved in
docs/legacy-roadmap.md - phase contract progress notes are tracked in
docs/ROADMAP.md
- a shorter public roadmap is available in
-
Included
ROADMAP.mdin the VitePress documentation configuration.
Security
- Updated the dashboard development dependency lockfile to use
form-data4.0.6. - Added security and hardening issue templates to guide responsible reporting and avoid accidental exposure of secrets, tokens, private hostnames, or sensitive logs.
- Added security documentation covering local-only defaults, secret handling, edge token rotation, TLS, external dashboard authentication, and PowerDNS API exposure.
Upgrade notes
Existing development volumes that were created before the latest runtime schema objects may need the new reconciliation migration.
Run:
docker compose exec core php artisan cdn:db:migrateThis is especially relevant if logs mention a missing powerdns_zone_serials table, or if Activity shows request country information but missing/unknown client IP diagnostics.
Breaking changes
No known breaking changes.
Full Changelog: v1.4.0...v1.5.0
CDNLite v1.4.0
CDNLite 1.4.0 Release Notes
Highlights
CDNLite 1.4.0 expands the platform’s DNS, reporting, and operational diagnostics capabilities. This release focuses on making CDNLite more useful for real self-hosted CDN operations: richer DNS publishing through PowerDNS, raw GeoDNS records, new dashboard reporting APIs, improved edge-pool routing behavior, stronger PowerDNS health checks, and more complete end-to-end validation.
Added
Raw GeoDNS A/AAAA Records
CDNLite now supports raw GeoDNS records for DNS-only A and AAAA records. Operators can configure a required default answer plus optional country and continent answers without writing Lua manually.
Raw GeoDNS routes are stored in the new dns_record_geo_routes table and published as PowerDNS LUA records. Generated Lua evaluates country routes first, then continent routes, then falls back to the default answer.
Dashboard Reporting API
A new reporting service adds authenticated endpoints under /api/v1/reports/* for:
- Executive summary and warning signals
- Traffic time series and top lists
- Cache reporting
- Edge health and traffic
- Security event reporting
- Reliability reporting
- Operations and job reporting
The dashboard overview now uses these reporting endpoints for CDN operations visibility.
Reporting Indexes
A new reporting migration adds time-range indexes for reporting-heavy tables, including usage rollups, audit logs, SSL jobs, cache purge requests, and SSL expiry lookups.
PowerDNS SOA Management
CDNLite now manages platform SOA authority defaults for PowerDNS zones. The PowerDNS doctor and dry-run commands report SOA validity and show repairs that would be applied.
PowerDNS Doctor Improvements
The cdn:powerdns:doctor command has been reintroduced and improved with stronger error handling and more detailed reporting for DNS zone and SOA diagnostics.
Edge DNS Pool Rendering
Edge DNS publishing has been refactored around a shared edge-pool renderer. Proxied apex records now publish directly as A/AAAA records when static anycast is configured, or as PowerDNS LUA records when dynamic edge-pool routing is used.
Changed
Proxied Apex DNS Publishing
Proxied apex records no longer rely on ALIAS or CNAME records. CDNLite now renders proxied apex records through the same canonical edge-pool logic used by the shared CDN proxy host.
DNS Reconciliation Behavior
DNS reconciliation and force-sync behavior were hardened. The e2e scripts now better handle queued DNS sync requests, retries, stale record deletion, and validation after unproxied record removal.
Raw GeoDNS and Proxy Mode Are Mutually Exclusive
Raw GeoDNS records cannot be proxied. Attempts to save a record with both proxy mode and raw GeoDNS routes are rejected with proxy_and_geodns_are_mutually_exclusive.
Dashboard DNS UX
The domain DNS UI has been updated to manage raw GeoDNS answers and better reflect the revised DNS routing model.
Metrics and Reporting Data
Edge metrics now carry client country details where available. Reporting groups unresolved country data as DEFAULT rather than fabricating geographic values.
Fixed
- Improved PowerDNS doctor command execution and error reporting.
- Improved DNS e2e failure recording and failure report output.
- Improved validation around queued DNS sync and force-sync behavior.
- Updated DNS acceptance tests for apex Lua record handling and edge health transitions.
- Expanded PowerDNS client contract tests.
- Updated DNS reconciler, routing model, edge health, settings, reports, and overview service tests.
Documentation
Documentation was updated for:
- Raw GeoDNS records
- PowerDNS and DNSGeo behavior
- Dashboard reporting
- API reference and OpenAPI schema
- Architecture notes
- Setup and deployment guidance
- DNS stress testing and usage guides
Database Migrations
This release adds:
000016_reporting_indexes.sql000017_raw_geodns_routes.sql
Run database migrations before using the new reporting and raw GeoDNS features.
Upgrade Notes
-
Apply the new migrations.
-
Rebuild/restart the stack so the core, dashboard, edge, and PowerDNS-related services use the new code.
-
Review PowerDNS authority settings:
CDNLITE_DNS_PRIMARY_NSCDNLITE_DNS_HOSTMASTERCDNLITE_DNS_SOA_REFRESHCDNLITE_DNS_SOA_RETRYCDNLITE_DNS_SOA_EXPIRECDNLITE_DNS_SOA_MINIMUMCDNLITE_DNS_SOA_TTL
-
Run:
docker compose exec core php artisan cdn:powerdns:doctor docker compose exec core php artisan cdn:powerdns:dry-run docker compose exec core php artisan cdn:powerdns:force-sync
-
Validate DNS behavior with the updated e2e checks before production rollout.
Notable Internal Changes
- Added
ReportService - Added
PowerDnsSoaService - Added
EdgeDnsPoolRenderer - Added
RawGeoDnsRecordBuilder - Added dashboard reports API client
- Added reporting and raw GeoDNS migrations
- Expanded DNS, PowerDNS, edge health, reporting, settings, and overview test coverage
Full Changelog: v1.3.0...v1.4.0
CDNLite v1.3.0
CDNLite 1.3.0 — Smarter Protection, Guided Setup, and Better Edge Visibility
CDNLite 1.3.0 adds guided domain onboarding, proactive recommendations, smarter traffic protection, clearer Activity views, and stronger operational visibility for edge deployments.
Highlights
Guided protection setup
New guided onboarding helps operators choose the right starter profile by answering simple site questions. CDNLite can recommend, preview, and apply profiles such as Basic Website, WordPress, API, SaaS App, E-commerce, and Emergency Protection.
Proactive recommendations
A new recommendation engine detects useful next actions from traffic, cache, SSL, origin, and security signals. Recommendations include confidence, risk, impact, explanation, preview data, and one-click actions where safe.
Smarter security controls
This release expands protection with Smart Rate Limiting templates, API Shield rules, bot protection, verified bot handling, WAF metadata, challenge actions, and header-aware API rate limits.
Better Activity views
Domain Activity now has Simple and Advanced views. Simple view explains events in plain language, while Advanced view keeps request-id lookup, filters, pagination, export, and raw JSON diagnostics.
Improved edge visibility
Edges now report applied config versions, last config pull time, and config apply errors. Country-aware routing and WAF decisions can use GeoIP/MMDB fallback when trusted country headers are unavailable.
Admin and deployment improvements
New admin CLI commands help list admins, change passwords, and delete users while revoking sessions safely. Deployment docs now emphasize backups, migration dry-runs, immutable image tags, and smoke/e2e/DNS validation before production rollout.
Database migrations
This release adds migrations for rate-limit header keys, edge config visibility, performance starter settings, bot protection, verified bot sources, recommendations, domain onboarding, and admin-session indexes.
Before upgrading production:
docker compose exec core php artisan cdn:db:migrate --dry-run
docker compose exec core php artisan cdn:db:statusUpgrade notes
Back up PostgreSQL and PowerDNS before upgrading. If production uses CDNLITE_AUTO_MIGRATE=false, apply migrations manually after reviewing the dry-run output. Keep Core, dashboard, edge, and edge-agent on the same release SHA.
Full Changelog: v1.2.0...v1.3.0
CDNLite v1.2.0
CDNLite v1.2.0
CDNLite v1.2.0 focuses on easier security operations, improved managed SSL automation, safer DNS reconciliation, and a cleaner origin routing model.
What’s New
Security Center
- Added a new Security Center tab in the domain dashboard.
- Added protection intents for common security outcomes.
- Added protection profiles for applying grouped security presets.
- Added preview, apply, disable, and undo workflows before changing generated rules.
- Added managed rule metadata so WAF, rate-limit, cache, header, and IP rules can track whether they were generated by a profile or manually changed.
- Added support for detaching managed WAF and rate-limit rules so operators can take manual control of generated rules.
Managed SSL Improvements
- Added automatic managed SSL handling for apex and wildcard hostnames.
- Improved SSL job scheduling, status reporting, and dashboard feedback.
- Added DNS visibility checks before ACME validation.
- Added stale SSL job retry configuration.
- Improved validation errors when SSL is requested before nameserver verification or without proxied DNS records.
- Added an explicit SSL request CLI command to the documented workflow.
DNS And PowerDNS Reliability
- Added per-record DNS reconciliation retry support from the dashboard/API.
- Improved PowerDNS reconciliation behavior and failure diagnostics.
- Added authority-only PowerDNS zones for pending domains, keeping platform NS/SOA records visible before nameserver verification while avoiding premature publication of customer records.
- Improved DNS e2e coverage for readonly platform nameserver records and managed DNS behavior.
Origin Routing Refactor
- Refactored origin handling away from primary/backup terminology toward a pool of enabled origins.
- Updated edge routing to select from the healthy origin pool.
- Simplified OpenResty backup-origin handling and improved error reporting when no healthy origin is available.
- Updated origin-related docs, tests, dashboard text, and routing defaults.
Dashboard And UX
- Added a domain deletion confirmation dialog requiring the domain name before destructive deletion.
- Improved Security Center layout, preview screens, and profile-specific intent presentation.
- Improved SSL job queue messages, scheduler hints, and active job progress display.
- Added clearer DNS reconciliation and SSL error messages.
Edge Agent And Metrics Reliability
- Improved metrics push behavior with queue locking.
- Preserved collector responses for failed metrics pushes.
- Added quarantine handling for invalid metric lines.
- Added recovery logic for invalid preserved metrics payloads.
- Updated troubleshooting documentation for these edge-agent flows.
Documentation And API
- Updated API documentation and OpenAPI definitions for Security Center, protection profiles, protection intents, DNS reconciliation, managed rule detaching, and SSL workflows.
- Updated setup, runbook, DNS, troubleshooting, and dashboard usage docs.
- Added new environment options for ACME DNS precheck and stale SSL job retry behavior.
Upgrade Notes
-
Review any automation that depends on
primary/backuporigin terminology. v1.2.0 moves toward a unified enabled-origin pool model. -
Review managed SSL settings and new environment variables:
CDNLITE_ACME_PUBLIC_DNS_PRECHECKCDNLITE_SSL_JOB_STALE_RETRY_SECONDS
-
If using generated protection rules, review Security Center previews before applying profiles in production.
-
If you have custom DNS publishing assumptions, note that pending domains now keep authority records visible while withholding customer records until nameserver verification.
Full Changelog: v1.1.0...v1.2.0
CDNLite v1.1.0
CDNLite v1.1.0
This release improves Anycast IP handling and adds support for static Anycast IP configuration in Edge DNS.
What’s New
- Added support for handling Anycast IPs as lists, making configuration more flexible for deployments with multiple Anycast addresses.
- Added static Anycast IP support for Edge DNS configuration.
- Improved related update logic for Anycast IP handling and Edge DNS setup.
Related Changes
- Feature: update Anycast IP handling to support lists and enhance related logic.
- Feature: add static Anycast IP support for Edge DNS configuration.
See PR #37.
Full Changelog: v1.0.0...v1.1.0
CDNLite v1.0.0
CDNLite v1.0.0
CDNLite has reached its first stable release.
Version 1.0.0 marks an important milestone for the project, bringing together the improvements, fixes, and refinements made throughout the 0.x release series.
Highlights
- First stable
v1.0.0release - General stability and reliability improvements
- Cleanup and refinements from the previous
v0.1.xversions - Ready for broader usage and continued development
Upgrade Notes
Users currently on v0.1.9 are encouraged to upgrade to v1.0.0.
Please review the full changelog for the complete list of changes included in this release.
Full Changelog: v0.1.9...v1.0.0
CDNLite v0.1.9 — Pre-1.0 CDN control-plane and edge-runtime
CDNLite v0.1.9 Release Notes
Full Changelog: v0.1.5...v0.1.9
Overview
v0.1.9 continues the rapid development of the domain-first architecture. This release focuses on polishing the dashboard UX, strengthening security & audit capabilities, improving operational readiness, and significantly enhancing documentation.
It delivers numerous quality-of-life improvements, bug fixes, and new features across the control plane, edge nodes, dashboard, and documentation.
Highlights
- Enhanced Domain Management Dashboard – Horizontal scrollable tabs, improved layouts, contextual help, better status handling, and refined domain detail views.
- Security & Audit Logging – Full audit logging for domain and settings changes with expanded security events UI and filtering.
- Improved Readiness & Config Management – Better snapshot handling, timestamp refresh on no-op syncs, enhanced diff views, PowerDNS checks, and core/edge health integration.
- Rate Limits & Traffic Rules – Snapshot invalidation on rule changes for faster propagation.
- UI/UX Polish – Refined component styles, accessibility improvements, session handling, and better login/troubleshooting flows.
- Documentation Overhaul – Added “CDN In A Minute” quickstart guide plus major updates to operations, setup, admin, user guides, and use cases.
- Testing & Reliability – Multiple test fixes, deadlock retry utilities, migration retry logic, and CI improvements.
New & Improved Features
Dashboard
- Horizontal scrollable domain tabs with improved styling
- Contextual help and descriptions throughout domain sections
- Enhanced
StatusBadgeand component accessibility - Better organization of header rules, IP rules, SSL settings, WAF, and Geo routing
Core & Operations
- Comprehensive audit logging for key mutations
- Enhanced readiness checks (snapshot freshness, PowerDNS, core/edge health)
- Improved snapshot activation logic and visual diff display
- Origin management commands and health checks
- Retry logic for database migrations
Edge & Config
- Consistent config snapshot handling and freshness tracking
- Faster rule propagation through snapshot invalidation
Documentation
- New “CDN In A Minute” quickstart guide
- Comprehensive updates to setup, operations, admin, and user guides
- Expanded use cases and architecture documentation
Thank you to everyone who contributed to this release!
CDNLite v0.1.5
CDNLite v0.1.5 Release Notes
Overview
CDNLite v0.1.5 is a major pre-1.0 platform update after v0.0.9.
This release moves CDNLite from the earlier site-based model to a domain-first CDN control plane. It adds cleaner domain onboarding, nameserver verification, per-domain routing modes, improved DNS publishing, database-backed settings, better analytics, readiness checks, report exports, and a more complete domain management dashboard.
Because this is still pre-1.0, this release includes breaking changes.
Highlights
- Replaced the old
sitemodel with the newdomainmodel across API, database, dashboard, edge config, usage ingest, and documentation. - Added Cloudflare-style domain onboarding with nameserver verification and activation flow.
- Added per-domain routing modes: geo, anycast, and DNS-only.
- Improved proxied DNS record publishing logic for apex and non-apex records.
- Added database-backed platform settings with dashboard editing, secret masking, validation, and PowerDNS connection testing.
- Added domain-scoped feature tabs for DNS, SSL, Cache, Redirects, Page Rules, WAF, Rate Limits, Analytics, and Overview.
- Added a new operational overview dashboard with aggregate metrics, warnings, and Markdown report export.
- Improved cache analytics with real cache status tracking and
X-CDNLITE-Cachevisibility. - Added full CRUD support for rate-limit rules.
- Added structured readiness checks for core, edge, PostgreSQL, PowerDNS, edge heartbeat, edge identity, and config freshness.
- Fixed edge identity handling so runtime responses and metrics use the configured edge ID.
- Improved analytics filtering by domain.
- Updated CI, tests, documentation, and local development workflows.
Breaking Changes
Site API renamed to Domain API
The old site terminology has been removed.
Use:
/api/v1/domainsinstead of:
/api/v1/sitesRemoved or replaced concepts include:
site_idSiteServiceSiteControllerSiteRepositorySitesView/api/v1/sites
Database reset recommended
This release performs a domain-first schema reset. For local development, the recommended upgrade path is a clean rebuild:
docker compose down -v
docker compose up --buildFor any existing non-local data, migrate manually before upgrading.
Domain creation flow changed
Domain creation no longer requires a full origin configuration immediately.
The new flow is:
- Create domain.
- Review assigned nameservers.
- Verify delegation.
- Activate the domain.
- Configure DNS, routing, SSL, cache, WAF, redirects, page rules, and analytics from domain tabs.
New Features
Domain-first control plane
CDNLite now uses domains as the primary resource. Domain APIs, CLI behavior, config snapshots, usage ingest, analytics, DNS records, dashboard routes, and documentation were updated around this model.
Nameserver verification and onboarding
New domain onboarding supports:
- Pending nameserver state.
- Assigned expected nameservers.
- Nameserver verification checks.
- Activation after successful verification.
- Lazy PowerDNS zone provisioning.
DNS routing modes
Each domain can now use one of the following routing modes:
geoanycastdns_only
The dashboard includes routing controls, proxy toggles, and generated record previews.
Improved DNS publishing
DNS publishing has been updated for proxied records, including better handling for apex and non-apex records.
Database-backed settings dashboard
Operational settings can now be managed from the dashboard instead of relying only on environment variables.
Settings include:
- PowerDNS
- Nameservers
- Edge DNS
- Cache defaults
- Analytics
- Security
Secret values are masked in API responses and the dashboard.
Domain feature tabs
Domain management now happens from a single domain detail page with dedicated tabs:
- Overview
- DNS
- SSL
- Cache
- Redirects
- Page Rules
- WAF
- Rate Limits
- Analytics
These tabs include shared CRUD flows, tables, enable/disable controls, empty states, and dashboard feedback.
Overview dashboard and Markdown reports
The main dashboard now includes operational metrics such as:
- Domain counts
- Active domains
- Requests in the last 24 hours
- Bandwidth in the last 24 hours
- Cache hit ratio
- Online/offline edge count
- Security events
- Expiring SSL certificates
Markdown report export was added for operational views.
Cache analytics improvements
Cache metrics now track real cache statuses instead of defaulting missing values incorrectly.
This improves visibility for:
- HIT
- MISS
- BYPASS
- STALE
- EXPIRED
- UNKNOWN
The edge also exposes cache status through:
X-CDNLITE-CacheDomain analytics
Analytics endpoints now support domain filtering.
The dashboard includes:
- Global analytics
- Per-domain analytics
- Domain detail analytics tab
- Cache analytics by domain
Rate limit CRUD
Rate-limit rules now support full dashboard and API management:
- Create
- List
- Edit
- Enable / disable
- Delete
Config snapshots are regenerated when rules change.
Readiness API
A structured readiness API was added for operational diagnostics.
It checks areas such as:
- PostgreSQL reachability
- PowerDNS configuration
- PowerDNS connectivity
- Edge heartbeat freshness
- Edge identity
- Config snapshot freshness
The dashboard now shows clickable readiness badges with detailed warnings and fix links.
Edge identity fixes
Edge identity handling was improved so the configured EDGE_ID is used consistently in:
- Response headers
- Usage metrics
- Security events
- Dashboard edge node identity display
The edge agent now rejects empty edge identity unless development mode allows it.
Fixes and Improvements
- Improved dashboard session restoration.
- Improved admin session handling.
- Improved readiness and troubleshooting views.
- Improved migration command error handling.
- Improved E2E seed behavior and PostgreSQL readiness waiting.
- Improved test coverage for migrations, usage analytics, cache analytics, rate limits, readiness, settings, and domain flows.
- Updated CI configuration and removed unstable frontend E2E workflow pieces.
- Updated README badges and project screenshot.
- Updated documentation for the domain-first model, testing, settings, routing, and dashboard workflows.
Upgrade Notes
For local development:
git pull
docker compose down -v
cp .env.dev.example .env
docker compose up --buildThen open:
Core API: http://localhost:8080
Edge: http://localhost:8081
Dashboard: http://localhost:8082
Default local dashboard credentials remain:
Username: admin
Password: admin
Only use the default credentials for local development.
Validation
This release includes updates across backend, frontend, edge runtime, edge agent, documentation, and CI.
Validation coverage includes:
- PHP lint checks
- Shell syntax checks
- Core Python tests
- Dashboard unit tests
- Dashboard typecheck/build
- Smoke tests
- E2E workflow updates
- Focused API tests for domains, analytics, readiness, settings, routing, and rate limits
Known Limitations
CDNLite is still pre-1.0.
The project remains focused on small CDN learning, development, and local/operator workflows. Production deployments should still place the dashboard and API behind proper external authentication and use strong secrets.
Not yet fully implemented:
- Multi-user RBAC
- Billing
- Advanced production certificate automation
- Full push-based edge config distribution
- Advanced cache policy engine
- Production-grade account management
Summary
CDNLite v0.1.1 is a major step toward a cleaner CDN control plane.
The most important change is the move from site-based management to domain-first operations, with stronger onboarding, routing, analytics, dashboard workflows, readiness checks, and operational reporting.