• v0.0.3 eabc6b0930

    ric released this 2025-11-29 00:14:38 +00:00 | 41 commits to main since this release

    Release v0.0.3 - Custom Domain Support

    This release adds full custom domain support with a scalable, registration-based approach.

    Key Features

    Custom Domain Support

    • Users can specify custom domains in .pages file
    • Registration-based activation (visit pages URL to activate)
    • Automatic SSL certificate provisioning via Traefik
    • Cache-only lookups for infinite scalability

    Performance

    • Infinite scalability: Performance independent of user/repository count
    • Fast all requests: <5ms response time with cache-only lookups
    • Efficient caching: Only active custom domains consume cache space

    Configuration

    • enableCustomDomains (bool, default: true) - Enable/disable custom domains
    • customDomainCacheTTL (int, default: 600) - Cache TTL in seconds

    How Custom Domains Work

    1. Add custom_domain: www.example.com to repository's .pages file
    2. Visit https://username.pages.domain.com/repository to activate
    3. Configure DNS (A or CNAME record) pointing to Traefik server
    4. Access site at https://www.example.com

    What's Changed

    Added

    • registerCustomDomain method for automatic domain registration
    • resolveCustomDomain method with cache-only lookup
    • parseCustomDomainPath method for custom domain URL parsing
    • Comprehensive test suite in custom_domain_test.go
    • CUSTOM_DOMAINS.md technical documentation
    • Configuration options: enableCustomDomains, customDomainCacheTTL

    Changed

    • ServeHTTP automatically registers custom domains when serving pages
    • Custom domains require activation via pages URL visit
    • Enhanced Traefik router examples with priority-based routing

    Improved

    • Test coverage: 78.2% (up from 74.9%)
    • Simplified architecture: Registration-based approach
    • Better UX: Clear activation steps and helpful error messages

    Installation

    experimental:
      plugins:
        pages-server:
          moduleName: code.squarecows.com/SquareCows/pages-server
          version: v0.0.3
    

    Documentation

    Full Changelog: https://code.squarecows.com/SquareCows/pages-server/compare/v0.0.2...v0.0.3

    Downloads