Skip to content

Business Source License 1.1 (BSL)

Pluvira operates under the Business Source License 1.1 (BSL 1.1), combining open source visibility and personal self-hosting freedom with sustainable commercial licensing.


1. The BSL 1.1 Model & 5-Year Apache 2.0 Conversion

  • Personal Free Use: Pluvira is 100% free for personal, non-commercial home use under generous resource limits.
  • Automatic Open Source Conversion: Every release distributed under BSL 1.1 converts automatically to the Apache License 2.0 exactly 60 months (5 years) after its release date.
  • No Vendor Lock-in: All data, playlists, and configurations remain locally in standard SQLite databases and YAML files.

2. Personal Free Tier Parameters

CapabilityPersonal Free (Offline)Personal Free (Registered)
Catalog Database ChannelsMax 2,500 channelsMax 2,500 channels
“My List” Curated ChannelsMax 25 channelsMax 25 channels
Failover Slots per Channel2 Slots (Slot 0 + Slot 1)2 Slots (Slot 0 + Slot 1)
Concurrent Local Client ViewsMax 2 IP addressesMax 2 IP addresses
Customer Portal AccessDisabledEnabled (Portal)
E2EE Cloud BackupNone (Local only)1 Manual Slot (200 KB)
14-Day Pro Trial EligibilityNoYes (1-Click On-Demand)
WebRTC Remote AccessDisabledDisabled (Requires Pro)

3. Pluvira Pro & Ultra Capabilities

  • 100% Recurring Model: Sustainable monthly and annual subscriptions with zero lifetime licenses.
  • Pluvira Pro: Unlocks unlimited catalog channels, unlimited curated channels in “My List”, full 7-slot failover pool, native Rust high-speed deduplication/scanner, WebRTC E2EE remote access, and 5 automated E2EE cloud backup slots (500 KB).
  • Pluvira Ultra: Includes all Pro features plus managed Cloud AI Copilot assistance.

4. 14-Day On-Demand Pro Trial

  • Voluntary Activation: Claim your trial whenever you choose directly from the local WebUI.
  • Zero Credit Card Required: Authenticate with a biometric Passkey or OAuth provider.
  • 4-Layer Anti-Abuse Defense:
    • Layer 1 (Hardware Fingerprint): Client transmits device_hash = HMAC-SHA256(machine_id, LOCAL_SALT) verified against trial_devices. Duplicate machine IDs are rejected with HTTP 403 (DEVICE_TRIAL_ALREADY_CLAIMED).
    • Layer 2 (User Account Trial State): SaaS checks User.has_claimed_trial. If already true, request is rejected with HTTP 403 (USER_TRIAL_ALREADY_CLAIMED).
    • Layer 3 (Network Subnet Rate Limit): Sliding-window rate limit restricting trial claims to maximum 1 per /24 IPv4 subnet every 30 days via Redis, blocking hosting and cloud provider datacenters.
    • Layer 4 (Non-Destructive UX Disincentive): Upon expiration, custom channels beyond position 25 in “My List” remain intact in SQLite WAL storage but locked in WebUI and excluded from M3U exports. Reinstalling the container destroys custom channel configurations without yielding new trials.
  • Non-Destructive Expiration: When the trial ends, channels beyond position 25 in “My List” remain safely in your database, locked in the WebUI and omitted from exports. Upgrading to Pro re-activates your full channel lineup immediately without re-configuration.