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
| Capability | Personal Free (Offline) | Personal Free (Registered) |
|---|---|---|
| Catalog Database Channels | Max 2,500 channels | Max 2,500 channels |
| “My List” Curated Channels | Max 25 channels | Max 25 channels |
| Failover Slots per Channel | 2 Slots (Slot 0 + Slot 1) | 2 Slots (Slot 0 + Slot 1) |
| Concurrent Local Client Views | Max 2 IP addresses | Max 2 IP addresses |
| Customer Portal Access | Disabled | Enabled (Portal) |
| E2EE Cloud Backup | None (Local only) | 1 Manual Slot (200 KB) |
| 14-Day Pro Trial Eligibility | No | Yes (1-Click On-Demand) |
| WebRTC Remote Access | Disabled | Disabled (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 againsttrial_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
/24IPv4 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.
- Layer 1 (Hardware Fingerprint): Client transmits
- 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.