Index: src/views/pages/admin-settings.ejs
===================================================================
--- src/views/pages/admin-settings.ejs	(revision 0b7ebbf536d348524f3dd4438dc3096a9055aac5)
+++ src/views/pages/admin-settings.ejs	(revision f63cbc22ee20c4ac230e3564c560021a8e7fdec4)
@@ -4,4 +4,5 @@
 
   <% if (success) { %><div class="alert alert-success"><%= success %></div><% } %>
+  <% if (typeof error !== 'undefined' && error) { %><div class="alert alert-error"><%= error %></div><% } %>
 
   <section class="set-card">
@@ -37,4 +38,26 @@
     </form>
   </section>
+
+  <%# Premium (Patreon) — alleen zichtbaar als de self-hoster de premium-laag aanzet
+      (env KLONKT_PREMIUM_ENABLED=on). Standaard onzichtbaar; niets gegate. %>
+  <% if (premium && premium.enabled) { %>
+  <section class="set-card" style="margin-top:1rem">
+    <h2>Premium (Patreon)</h2>
+    <p class="set-help">Ontgrendel de premium-modules (Hub-modus, Statistieken, Fan-login)
+      met je <strong>$10-lifetime</strong> Patreon-steun. De app en alle updates blijven gratis.</p>
+    <% if (premium.premium) { %>
+      <p class="set-help"><strong>✓ Premium actief.</strong>
+        <% if (premium.supportCents) { %>Lifetime-steun: $<%= (premium.supportCents/100).toFixed(2) %>.<% } %></p>
+      <a href="/admin/patreon/disconnect" class="btn">Patreon ontkoppelen</a>
+    <% } else if (premium.connected) { %>
+      <p class="set-help">Patreon gekoppeld, maar nog geen $10 lifetime<% if (premium.supportCents) { %>
+        (nu $<%= (premium.supportCents/100).toFixed(2) %>)<% } %>. Steun de campagne en koppel opnieuw.</p>
+      <a href="/admin/patreon/connect" class="btn btn-primary">Opnieuw koppelen</a>
+    <% } else { %>
+      <p class="set-help">Nog niet gekoppeld.</p>
+      <a href="/admin/patreon/connect" class="btn btn-primary">Koppel Patreon</a>
+    <% } %>
+  </section>
+  <% } %>
 
   <% if (tenancy === 'hub') { %>
