Changeset cb4eda5 in Klonkt
- Timestamp:
- 06/25/2026 09:30:35 PM (3 months ago)
- Branches:
- main
- Children:
- 820bceb
- Parents:
- 2acdbc5
- Files:
-
- 2 edited
-
.env.example (modified) (1 diff)
-
src/services/PatreonService.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
.env.example
r2acdbc5 rcb4eda5 52 52 # External embeds (YouTube/SoundCloud/Spotify) keep working too. 53 53 KLONKT_AUDIO=on 54 55 # ── Premium extras (optional) ─────────────────────────────────────── 56 # The core app + all updates + Cirkels are always free. A handful of extras 57 # (newsletter, download-for-email, statistics, EPK, link-in-bio, embeddable 58 # player, show agenda, release planning) ask for a one-time Patreon supporter 59 # link (klonkt.com / patreon.com/c/roboburr) to unlock — that's how the project 60 # is funded. ON by default. Set to "off" to make every feature free on your own 61 # instance (it runs on your server, so the gate is a soft nudge, not hard DRM). 62 KLONKT_PREMIUM_ENABLED=on -
src/services/PatreonService.js
r2acdbc5 rcb4eda5 12 12 // (deliberately accepted: $16 < effort to crack). 13 13 // 14 // Premium is OFF by default (KLONKT_PREMIUM_ENABLED != 'on'): no premium UI 15 // is shown and nothing is gated. Self-hosters enable it once Patreon is set up. 14 // Premium gating is ON by default: the extras (newsletter, statistics, …) 15 // require a linked Patreon supporter ($16 lifetime). Set KLONKT_PREMIUM_ENABLED=off 16 // to make every feature free (e.g. an internal/demo instance, or a self-hoster who 17 // just wants the whole app). On self-host the flag is patchable — the gate is a soft 18 // nudge toward supporting the project, not hard DRM. 16 19 17 20 import crypto from 'node:crypto'; … … 22 25 23 26 export function premiumEnabled() { 24 return String(process.env.KLONKT_PREMIUM_ENABLED || '').toLowerCase() === 'on'; 27 // Default ON; only an explicit 'off' disables the premium layer. 28 return String(process.env.KLONKT_PREMIUM_ENABLED || 'on').toLowerCase() !== 'off'; 25 29 } 26 30 export function licenseBase() { return LICENSE_URL; }
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)